Skip to content

Commit 2aa199f

Browse files
committed
[AArch64][ELF] Updated the synthax and fixed the lld test
As a result of review feedback, updated the synthax for the change and first attempt to fix lld test that was failing due to missalignment
1 parent 18fbf0a commit 2aa199f

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

lld/test/ELF/aarch64-relocs.s

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ mystr:
4242
# CHECK: Disassembly of section .R_AARCH64_ADD_ABS_LO12_NC:
4343
# CHECK-EMPTY:
4444
# CHECK-NEXT: <.R_AARCH64_ADD_ABS_LO12_NC>:
45-
# CHECK-NEXT: 21013b: 9104fc00 add x0, x0, #319
45+
# CHECK-NEXT: 210140: 91051000 add x0, x0, #324
4646

4747
.section .R_AARCH64_LDST64_ABS_LO12_NC,"ax",@progbits
4848
ldr x28, [x27, :lo12:foo]
@@ -56,7 +56,7 @@ foo:
5656
# CHECK: Disassembly of section .R_AARCH64_LDST64_ABS_LO12_NC:
5757
# CHECK-EMPTY:
5858
# CHECK-NEXT: <.R_AARCH64_LDST64_ABS_LO12_NC>:
59-
# CHECK-NEXT: 210144: f940a77c ldr x28, [x27, #328]
59+
# CHECK-NEXT: 21014c: f940ab7c ldr x28, [x27, #336]
6060

6161
.section .SUB,"ax",@progbits
6262
nop
@@ -86,7 +86,7 @@ foo32:
8686
# CHECK: Disassembly of section .R_AARCH64_LDST32_ABS_LO12_NC:
8787
# CHECK-EMPTY:
8888
# CHECK-NEXT: <ldst32>:
89-
# CHECK-NEXT: 21015c: bd4160a4 ldr s4, [x5, #352]
89+
# CHECK-NEXT: 210164: bd4168a4 ldr s4, [x5, #360]
9090

9191
.section .R_AARCH64_LDST8_ABS_LO12_NC,"ax",@progbits
9292
ldst8:
@@ -101,11 +101,12 @@ foo8:
101101
# CHECK: Disassembly of section .R_AARCH64_LDST8_ABS_LO12_NC:
102102
# CHECK-EMPTY:
103103
# CHECK-NEXT: <ldst8>:
104-
# CHECK-NEXT: 210164: 3985a1ab ldrsb x11, [x13, #360]
104+
# CHECK-NEXT: 21016c: 3985c1ab ldrsb x11, [x13, #368]
105105

106106
.section .R_AARCH64_LDST128_ABS_LO12_NC,"ax",@progbits
107107
ldst128:
108108
ldr q20, [x19, #:lo12:foo128]
109+
.balign 16
109110
foo128:
110111
.asciz "foo"
111112
.size mystr, 3
@@ -116,7 +117,7 @@ foo128:
116117
# CHECK: Disassembly of section .R_AARCH64_LDST128_ABS_LO12_NC:
117118
# CHECK-EMPTY:
118119
# CHECK: <ldst128>:
119-
# CHECK: 21016c: 3dc05e74 ldr q20, [x19, #368]
120+
# CHECK: 210180: 3dc06674 ldr q20, [x19, #400]
120121
#foo128:
121122
# 210170: 66 6f 6f 00 .word
122123

@@ -135,9 +136,9 @@ foo16:
135136
# CHECK: Disassembly of section .R_AARCH64_LDST16_ABS_LO12_NC:
136137
# CHECK-EMPTY:
137138
# CHECK-NEXT: <ldst16>:
138-
# CHECK-NEXT: 210174: 7d430271 ldr h17, [x19, #384]
139-
# CHECK-NEXT: 210178: 79430261 ldrh w1, [x19, #384]
140-
# CHECK-NEXT: 21017c: 79430662 ldrh w2, [x19, #386]
139+
# CHECK-NEXT: 210194: 7d434271 ldr h17, [x19, #416]
140+
# CHECK-NEXT: 210198: 79434261 ldrh w1, [x19, #416]
141+
# CHECK-NEXT: 21019c: 79434662 ldrh w2, [x19, #418]
141142

142143
.section .R_AARCH64_MOVW_UABS,"ax",@progbits
143144
movz1:

llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,8 +327,8 @@ class AArch64ELFStreamer : public MCELFStreamer {
327327
MCELFStreamer::changeSection(Section, Subsection);
328328

329329
// Section alignment of 4 to match GNU Assembler
330-
if ((Section->getAlign() < 4) && Section->isText())
331-
Section->setAlignment(Align(4));
330+
if (Section->isText())
331+
Section->ensureMinAlignment(Align(4));
332332
}
333333

334334
// Reset state between object emissions
Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj -o %t.obj %s
22
// RUN: llvm-readobj -S --sd %t.obj | FileCheck %s
3-
43
.section sec00, "ax"
54
.byte 1
65
.section sec01, "ax"
@@ -11,18 +10,23 @@ nop
1110
nop
1211
nop
1312
.section sec03, "ax"
13+
.balign 8
14+
nop
15+
nop
16+
.section sec04, "ax"
1417
.byte 0
15-
.section sec04, "aw"
18+
.section sec05, "aw"
1619
nop
1720
nop
18-
1921
// CHECK: Name: sec00
2022
// CHECK: AddressAlignment: 4
2123
// CHECK: Name: sec01
2224
// CHECK: AddressAlignment: 4
2325
// CHECK: Name: sec02
2426
// CHECK: AddressAlignment: 4
2527
// CHECK: Name: sec03
26-
// CHECK: AddressAlignment: 4
28+
// CHECK: AddressAlignment: 8
2729
// CHECK: Name: sec04
30+
// CHECK: AddressAlignment: 4
31+
// CHECK: Name: sec05
2832
// CHECK: AddressAlignment: 1

0 commit comments

Comments
 (0)