Skip to content

Commit b3874cc

Browse files
committed
asm: make all text section labels .L local
To help with backtraces if we ever fix them due to the lkmc_asm_main_after_prologue debacle.
1 parent 4d4b82f commit b3874cc

File tree

14 files changed

+43
-46
lines changed

14 files changed

+43
-46
lines changed

baremetal/arch/aarch64/multicore.S

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ LKMC_PROLOGUE
1515
mrs x1, mpidr_el1
1616
ands x1, x1, 3
1717
beq cpu0_only
18-
cpu1_only:
18+
.Lcpu1_only:
1919
/* Only CPU 1 reaches this point and sets the spinlock. */
2020
mov x0, 1
2121
ldr x1, =spinlock
@@ -28,12 +28,12 @@ cpu1_only:
2828
* Optional, but could save power on a real system.
2929
*/
3030
sev
31-
cpu1_sleep_forever:
31+
.Lcpu1_sleep_forever:
3232
/* Hint CPU 1 to enter low power mode.
3333
* Optional, but could save power on a real system.
3434
*/
3535
wfe
36-
b cpu1_sleep_forever
36+
b .Lcpu1_sleep_forever
3737
cpu0_only:
3838
/* Only CPU 0 reaches this point. */
3939

@@ -46,7 +46,7 @@ cpu0_only:
4646
/* Argument 1: target_cpu */
4747
mov x1, 1
4848
/* Argument 2: entry_point_address */
49-
ldr x2, =cpu1_only
49+
ldr x2, =.Lcpu1_only
5050
/* Argument 3: context_id */
5151
mov x3, 0
5252
/* Unused hvc args: the Linux kernel zeroes them,

baremetal/arch/arm/multicore.S

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@ LKMC_PROLOGUE
1010
mrc p15, 0, r1, c0, c0, 5
1111
ands r1, r1, 3
1212
beq cpu0_only
13-
cpu1_only:
13+
.Lcpu1_only:
1414
mov r0, 1
1515
ldr r1, =spinlock
1616
str r0, [r1]
1717
dmb sy
1818
sev
19-
cpu1_sleep_forever:
19+
.Lcpu1_sleep_forever:
2020
wfe
21-
b cpu1_sleep_forever
21+
b .Lcpu1_sleep_forever
2222
cpu0_only:
2323
#if !LKMC_GEM5
2424
/* PSCI CPU_ON. */
2525
ldr r0, =0x84000003
2626
mov r1, 1
27-
ldr r2, =cpu1_only
27+
ldr r2, =.Lcpu1_only
2828
mov r3, 0
2929
hvc 0
3030
#endif

userland/arch/aarch64/adr.S

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,5 @@ LKMC_PROLOGUE
1616
*/
1717
adr x0, data_label
1818
ldr x1, =data_label
19-
label:
2019
LKMC_ASSERT_EQ_REG(x0, x1)
2120
LKMC_EPILOGUE

userland/arch/aarch64/adrp.S

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
#include <lkmc.h>
44

55
LKMC_PROLOGUE
6-
adrp x0, label
7-
adr x1, label
8-
label:
6+
adrp x0, .Llabel
7+
adr x1, .Llabel
8+
.Llabel:
99
/* Clear the lower 12 bits. */
1010
bic x1, x1, 0xFF
1111
bic x1, x1, 0xF00

userland/arch/aarch64/cbz.S

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@ LKMC_PROLOGUE
66

77
/* Branch. */
88
mov x0, 0x0
9-
cbz x0, ok
9+
cbz x0, .Lok
1010
LKMC_ASSERT_FAIL
11-
ok:
11+
.Lok:
1212

1313
/* Don't branch. */
1414
mov x0, 0x1
15-
cbz x0, ko
16-
15+
cbz x0, .Lko
1716
LKMC_EPILOGUE
18-
ko:
17+
.Lko:
1918
LKMC_ASSERT_FAIL

userland/arch/aarch64/movk.S

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ LKMC_PROLOGUE
1717
* This could be used if the label is too far away for
1818
* adr relative addressing.
1919
*/
20-
movz x0, :abs_g2:label /* bits 32-47, overflow check */
21-
movk x0, :abs_g1_nc:label /* bits 16-31, no overflow check */
22-
movk x0, :abs_g0_nc:label /* bits 0-15, no overflow check */
23-
adr x1, label
24-
label:
20+
movz x0, :abs_g2:.Llabel /* bits 32-47, overflow check */
21+
movk x0, :abs_g1_nc:.Llabel /* bits 16-31, no overflow check */
22+
movk x0, :abs_g0_nc:.Llabel /* bits 0-15, no overflow check */
23+
adr x1, .Llabel
24+
.Llabel:
2525
LKMC_ASSERT_EQ_REG(x0, x1)
2626
LKMC_EPILOGUE

userland/arch/aarch64/pc.S

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ LKMC_PROLOGUE
2727
* "LDR (literal)" instead of "LDR (immediate)":
2828
* https://stackoverflow.com/questions/28638981/howto-write-pc-relative-adressing-on-arm-asm/54480999#54480999
2929
*/
30-
ldr x0, pc_relative_ldr
31-
b 1f
32-
pc_relative_ldr:
30+
ldr x0, .Lpc_relative_ldr
31+
b 2f
32+
.Lpc_relative_ldr:
3333
.quad 0x123456789ABCDEF0
34-
1:
34+
2:
3535
LKMC_ASSERT_EQ(x0, =0x123456789ABCDEF0)
3636

3737
/* Just for fun, we can also use relative numbers instead of labels.
@@ -68,7 +68,7 @@ pc_relative_ldr:
6868
ldr x0, pc_relative_str
6969
LKMC_ASSERT_EQ(x0, =0x0)
7070
adr x1, pc_relative_str
71-
ldr x0, pc_relative_ldr
71+
ldr x0, .Lpc_relative_ldr
7272
str x0, [x1]
7373
ldr x0, pc_relative_str
7474
LKMC_ASSERT_EQ(x0, =0x123456789ABCDEF0)

userland/arch/arm/adr.S

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
data_label:
77
.word 0x1234678
88
LKMC_PROLOGUE
9-
adr r4, label
9+
adr r4, .Llabel
1010
/* objdump tells us that this uses the literal pool,
1111
* it does not get converted to adr, which is the better
1212
* alternative here.
1313
*/
14-
ldr r5, =label
15-
adrl r6, label
16-
label:
14+
ldr r5, =.Llabel
15+
adrl r6, .Llabel
16+
.Llabel:
1717
LKMC_ASSERT_EQ_REG(r4, r5)
1818
LKMC_ASSERT_EQ_REG(r4, r6)
1919

userland/arch/arm/b.S

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <lkmc.h>
44
LKMC_PROLOGUE
55
/* Jump over the fail. 26-bit PC-relative. */
6-
b ok
6+
b .Lok
77
LKMC_ASSERT_FAIL
8-
ok:
8+
.Lok:
99
LKMC_EPILOGUE

userland/arch/arm/registers.S

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ LKMC_PROLOGUE
4848
10:
4949

5050
/* Another example with mov reading from pc. */
51-
pc_addr:
5251
mov r0, pc
5352
/* Why sub 8:
5453
* https://stackoverflow.com/questions/24091566/why-does-the-arm-pc-register-point-to-the-instruction-after-the-next-one-to-be-e

0 commit comments

Comments
 (0)