binutils-gdb/ld/testsuite/ld-arm/ifunc-2.dd
Andrew Burgess 8cb6e17571 opcodes/arm: use '@' consistently for the comment character
Looking at the ARM disassembler output, every comment seems to start
with a ';' character, so I assumed this was the correct character to
start an assembler comment.

I then spotted a couple of places where there was no ';', but instead,
just a '@' character.  I thought that this was a case of a missing
';', and proposed a patch to add the missing ';' characters.

Turns out I was wrong, '@' is actually the ARM assembler comment
character, while ';' is the statement separator.  Thus this:

    nop    ;@ comment

is two statements, the first is the 'nop' instruction, while the
second contains no instructions, just the '@ comment' comment text.

This:

    nop    @ comment

is a single 'nop' instruction followed by a comment.  And finally,
this:

    nop    ; comment

is two statements, the first contains the 'nop' instruction, while the
second contains the instruction 'comment', which obviously isn't
actually an instruction at all.

Why this matters is that, in the next commit, I would like to add
libopcodes syntax styling support for ARM.

The question then is how should the disassembler style the three cases
above?

As '@' is the actual comment start character then clearly the '@' and
anything after it can be styled as a comment.  But what about ';' in
the second example?  Style as text?  Style as a comment?

And the third example is even harder, what about the 'comment' text?
Style as an instruction mnemonic?  Style as text?  Style as a comment?

I think the only sensible answer is to move the disassembler to use
'@' consistently as its comment character, and remove all the uses of
';'.

Then, in the next commit, it's obvious what to do.

There's obviously a *lot* of tests that get updated by this commit,
the only actual code changes are in opcodes/arm-dis.c.
2022-11-01 09:32:13 +00:00

446 lines
23 KiB
Plaintext

.*
Disassembly of section \.iplt:
00009000 <f7-0x3c>:
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
9000: e28fc600 add ip, pc, #0, 12
9004: e28cca08 add ip, ip, #8, 20 @ 0x8000
9008: e5bcf004 ldr pc, \[ip, #4\]!
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
900c: e28fc600 add ip, pc, #0, 12
9010: e28cca07 add ip, ip, #28672 @ 0x7000
9014: e5bcfffc ldr pc, \[ip, #4092\]! @ 0xffc
#------------------------------------------------------------------------------
#------ thumb entry to f3's .iplt entry
#------------------------------------------------------------------------------
9018: 4778 bx pc
901a: e7fd b.n .+ <.+>
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
901c: e28fc600 add ip, pc, #0, 12
9020: e28cca07 add ip, ip, #28672 @ 0x7000
9024: e5bcfff0 ldr pc, \[ip, #4080\]! @ 0xff0
#------------------------------------------------------------------------------
#------ thumb entry to f4's .iplt entry
#------------------------------------------------------------------------------
9028: 4778 bx pc
902a: e7fd b.n .+ <.+>
#------------------------------------------------------------------------------
#------ f4's .iplt entry
#------------------------------------------------------------------------------
902c: e28fc600 add ip, pc, #0, 12
9030: e28cca07 add ip, ip, #28672 @ 0x7000
9034: e5bcffe4 ldr pc, \[ip, #4068\]! @ 0xfe4
#------------------------------------------------------------------------------
#------ thumb entry to f7
#------------------------------------------------------------------------------
9038: 4778 bx pc
903a: e7fd b.n .+ <.+>
0000903c <f7>:
903c: e28fc600 add ip, pc, #0, 12
9040: e28cca07 add ip, ip, #28672 @ 0x7000
9044: e5bcffd8 ldr pc, \[ip, #4056\]! @ 0xfd8
00009048 <f5>:
9048: e28fc600 add ip, pc, #0, 12
904c: e28cca07 add ip, ip, #28672 @ 0x7000
9050: e5bcffd0 ldr pc, \[ip, #4048\]! @ 0xfd0
#------------------------------------------------------------------------------
#------ thumb entry to f8
#------------------------------------------------------------------------------
9054: 4778 bx pc
9056: e7fd b.n .+ <.+>
00009058 <f8>:
9058: e28fc600 add ip, pc, #0, 12
905c: e28cca07 add ip, ip, #28672 @ 0x7000
9060: e5bcffc4 ldr pc, \[ip, #4036\]! @ 0xfc4
00009064 <f6>:
9064: e28fc600 add ip, pc, #0, 12
9068: e28cca07 add ip, ip, #28672 @ 0x7000
906c: e5bcffbc ldr pc, \[ip, #4028\]! @ 0xfbc
Disassembly of section \.text:
0000a000 <f1>:
a000: e1a0f00e mov pc, lr
0000a004 <f2>:
a004: 46f7 mov pc, lr
\.\.\.
0000a008 <f3>:
a008: e1a0f00e mov pc, lr
0000a00c <f4>:
a00c: 46f7 mov pc, lr
a00e: 0000 .short 0x0000
a010: e1a0f00e mov pc, lr
a014: 46f7 mov pc, lr
a016: 0000 .short 0x0000
a018: e1a0f00e mov pc, lr
a01c: 46f7 mov pc, lr
\.\.\.
0000a020 <_start>:
a020: eb0017f6 bl 10000 <foo>
a024: ea0017f5 b 10000 <foo>
a028: 0a0017f4 beq 10000 <foo>
a02c: e59f4014 ldr r4, \[pc, #20\] @ a048 <_start\+0x28>
a030: e59f4014 ldr r4, \[pc, #20\] @ a04c <_start\+0x2c>
a034: e59f4014 ldr r4, \[pc, #20\] @ a050 <_start\+0x30>
a038: e59f4014 ldr r4, \[pc, #20\] @ a054 <_start\+0x34>
a03c: e59f5014 ldr r5, \[pc, #20\] @ a058 <_start\+0x38>
a040: e3004000 movw r4, #0
a044: e3404001 movt r4, #1
#------------------------------------------------------------------------------
#------ foo
#------------------------------------------------------------------------------
a048: 00010000 \.word 0x00010000
#------------------------------------------------------------------------------
#------ PC-relative offset of foo
#------------------------------------------------------------------------------
a04c: 00005fb4 \.word 0x00005fb4
#------------------------------------------------------------------------------
#------ GP-relative offset of foo
#------------------------------------------------------------------------------
a050: fffff000 \.word 0xfffff000
#------------------------------------------------------------------------------
#------ .got offset for foo
#------------------------------------------------------------------------------
a054: 00000040 \.word 0x00000040
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for foo
#------------------------------------------------------------------------------
a058: 00006fd4 \.word 0x00006fd4
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a05c: ebfffbe7 bl 9000 <f7-0x3c>
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a060: eafffbe6 b 9000 <f7-0x3c>
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a064: 0afffbe5 beq 9000 <f7-0x3c>
a068: e59f4014 ldr r4, \[pc, #20\] @ a084 <_start\+0x64>
a06c: e59f4014 ldr r4, \[pc, #20\] @ a088 <_start\+0x68>
a070: e59f4014 ldr r4, \[pc, #20\] @ a08c <_start\+0x6c>
a074: e59f4014 ldr r4, \[pc, #20\] @ a090 <_start\+0x70>
a078: e59f5014 ldr r5, \[pc, #20\] @ a094 <_start\+0x74>
a07c: e3094000 movw r4, #36864 @ 0x9000
a080: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a084: 00009000 \.word 0x00009000
#------------------------------------------------------------------------------
#------ PC-relative offset of f1's .iplt entry
#------------------------------------------------------------------------------
a088: ffffef78 \.word 0xffffef78
#------------------------------------------------------------------------------
#------ GP-relative offset of f1's .iplt entry
#------------------------------------------------------------------------------
a08c: ffff8000 \.word 0xffff8000
#------------------------------------------------------------------------------
#------ .got offset for f1's .iplt entry
#------------------------------------------------------------------------------
a090: 00000030 \.word 0x00000030
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f1's .iplt entry
#------------------------------------------------------------------------------
a094: 00006f9c \.word 0x00006f9c
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a098: ebfffbdb bl 900c <f7-0x30>
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a09c: eafffbda b 900c <f7-0x30>
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a0a0: 0afffbd9 beq 900c <f7-0x30>
a0a4: e59f4014 ldr r4, \[pc, #20\] @ a0c0 <_start\+0xa0>
a0a8: e59f4014 ldr r4, \[pc, #20\] @ a0c4 <_start\+0xa4>
a0ac: e59f4014 ldr r4, \[pc, #20\] @ a0c8 <_start\+0xa8>
a0b0: e59f4014 ldr r4, \[pc, #20\] @ a0cc <_start\+0xac>
a0b4: e59f5014 ldr r5, \[pc, #20\] @ a0d0 <_start\+0xb0>
a0b8: e309400c movw r4, #36876 @ 0x900c
a0bc: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f2's .iplt entry
#------------------------------------------------------------------------------
a0c0: 0000900c \.word 0x0000900c
#------------------------------------------------------------------------------
#------ PC-relative offset of f2's .iplt entry
#------------------------------------------------------------------------------
a0c4: ffffef48 \.word 0xffffef48
#------------------------------------------------------------------------------
#------ GP-relative offset of f2's .iplt entry
#------------------------------------------------------------------------------
a0c8: ffff800c \.word 0xffff800c
#------------------------------------------------------------------------------
#------ .got offset for f2's .iplt entry
#------------------------------------------------------------------------------
a0cc: 00000034 \.word 0x00000034
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f2's .iplt entry
#------------------------------------------------------------------------------
a0d0: 00006f64 \.word 0x00006f64
a0d4: ebfffbdb bl 9048 <f5>
a0d8: eafffbda b 9048 <f5>
a0dc: 0afffbd9 beq 9048 <f5>
a0e0: e59f4014 ldr r4, \[pc, #20\] @ a0fc <_start\+0xdc>
a0e4: e59f4014 ldr r4, \[pc, #20\] @ a100 <_start\+0xe0>
a0e8: e59f4014 ldr r4, \[pc, #20\] @ a104 <_start\+0xe4>
a0ec: e59f4014 ldr r4, \[pc, #20\] @ a108 <_start\+0xe8>
a0f0: e59f5014 ldr r5, \[pc, #20\] @ a10c <_start\+0xec>
a0f4: e3094048 movw r4, #36936 @ 0x9048
a0f8: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f5
#------------------------------------------------------------------------------
a0fc: 00009048 \.word 0x00009048
#------------------------------------------------------------------------------
#------ PC-relative offset of f5
#------------------------------------------------------------------------------
a100: ffffef48 \.word 0xffffef48
#------------------------------------------------------------------------------
#------ GP-relative offset of f5
#------------------------------------------------------------------------------
a104: ffff8048 \.word 0xffff8048
#------------------------------------------------------------------------------
#------ .got offset for f5
#------------------------------------------------------------------------------
a108: 00000048 \.word 0x00000048
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f5
#------------------------------------------------------------------------------
a10c: 00006f3c \.word 0x00006f3c
a110: ebfffbd3 bl 9064 <f6>
a114: eafffbd2 b 9064 <f6>
a118: 0afffbd1 beq 9064 <f6>
a11c: e59f4014 ldr r4, \[pc, #20\] @ a138 <_start\+0x118>
a120: e59f4014 ldr r4, \[pc, #20\] @ a13c <_start\+0x11c>
a124: e59f4014 ldr r4, \[pc, #20\] @ a140 <_start\+0x120>
a128: e59f4014 ldr r4, \[pc, #20\] @ a144 <_start\+0x124>
a12c: e59f5014 ldr r5, \[pc, #20\] @ a148 <_start\+0x128>
a130: e3094064 movw r4, #36964 @ 0x9064
a134: e3404000 movt r4, #0
#------------------------------------------------------------------------------
#------ f6
#------------------------------------------------------------------------------
a138: 00009064 \.word 0x00009064
#------------------------------------------------------------------------------
#------ PC-relative offset of f6
#------------------------------------------------------------------------------
a13c: ffffef28 \.word 0xffffef28
#------------------------------------------------------------------------------
#------ GP-relative offset of f6
#------------------------------------------------------------------------------
a140: ffff8064 \.word 0xffff8064
#------------------------------------------------------------------------------
#------ .got offset for f6
#------------------------------------------------------------------------------
a144: 00000050 \.word 0x00000050
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f6
#------------------------------------------------------------------------------
a148: 00006f08 \.word 0x00006f08
0000a14c <_thumb>:
a14c: f005 ff58 bl 10000 <foo>
a150: f005 bf56 b\.w 10000 <foo>
a154: f005 8754 beq\.w 10000 <foo>
a158: 4c04 ldr r4, \[pc, #16\] @ \(a16c <_thumb\+0x20>\)
a15a: f8df 4014 ldr\.w r4, \[pc, #20\] @ a170 <_thumb\+0x24>
a15e: 4c05 ldr r4, \[pc, #20\] @ \(a174 <_thumb\+0x28>\)
a160: 4c05 ldr r4, \[pc, #20\] @ \(a178 <_thumb\+0x2c>\)
a162: 4d06 ldr r5, \[pc, #24\] @ \(a17c <_thumb\+0x30>\)
a164: f240 0400 movw r4, #0
a168: f2c0 0401 movt r4, #1
#------------------------------------------------------------------------------
#------ foo
#------------------------------------------------------------------------------
a16c: 00010000 \.word 0x00010000
#------------------------------------------------------------------------------
#------ PC-relative offset of foo
#------------------------------------------------------------------------------
a170: 00005e90 \.word 0x00005e90
#------------------------------------------------------------------------------
#------ GP-relative offset of foo
#------------------------------------------------------------------------------
a174: fffff000 \.word 0xfffff000
#------------------------------------------------------------------------------
#------ .got offset for foo
#------------------------------------------------------------------------------
a178: 00000040 \.word 0x00000040
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for foo
#------------------------------------------------------------------------------
a17c: 00006eb0 \.word 0x00006eb0
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
a180: f7fe ef4c blx 901c <f7-0x20>
#------------------------------------------------------------------------------
#------ thumb entry to f3's .iplt entry
#------------------------------------------------------------------------------
a184: f7fe bf48 b\.w 9018 <f7-0x24>
#------------------------------------------------------------------------------
#------ thumb entry to f3's .iplt entry
#------------------------------------------------------------------------------
a188: f43e af46 beq\.w 9018 <f7-0x24>
a18c: 4c04 ldr r4, \[pc, #16\] @ \(a1a0 <_thumb\+0x54>\)
a18e: f8df 4014 ldr\.w r4, \[pc, #20\] @ a1a4 <_thumb\+0x58>
a192: 4c05 ldr r4, \[pc, #20\] @ \(a1a8 <_thumb\+0x5c>\)
a194: 4c05 ldr r4, \[pc, #20\] @ \(a1ac <_thumb\+0x60>\)
a196: 4d06 ldr r5, \[pc, #24\] @ \(a1b0 <_thumb\+0x64>\)
a198: f249 041c movw r4, #36892 @ 0x901c
a19c: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f3's .iplt entry
#------------------------------------------------------------------------------
a1a0: 0000901c \.word 0x0000901c
#------------------------------------------------------------------------------
#------ PC-relative offset of f3's .iplt entry
#------------------------------------------------------------------------------
a1a4: ffffee78 \.word 0xffffee78
#------------------------------------------------------------------------------
#------ GP-relative offset of f3's .iplt entry
#------------------------------------------------------------------------------
a1a8: ffff801c \.word 0xffff801c
#------------------------------------------------------------------------------
#------ .got offset for f3's .iplt entry
#------------------------------------------------------------------------------
a1ac: 00000038 \.word 0x00000038
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f3's .iplt entry
#------------------------------------------------------------------------------
a1b0: 00006e88 \.word 0x00006e88
#------------------------------------------------------------------------------
#------ f4's .iplt entry
#------------------------------------------------------------------------------
a1b4: f7fe ef3a blx 902c <f7-0x10>
#------------------------------------------------------------------------------
#------ thumb entry to f4's .iplt entry
#------------------------------------------------------------------------------
a1b8: f7fe bf36 b\.w 9028 <f7-0x14>
#------------------------------------------------------------------------------
#------ thumb entry to f4's .iplt entry
#------------------------------------------------------------------------------
a1bc: f43e af34 beq\.w 9028 <f7-0x14>
a1c0: 4c04 ldr r4, \[pc, #16\] @ \(a1d4 <_thumb\+0x88>\)
a1c2: f8df 4014 ldr\.w r4, \[pc, #20\] @ a1d8 <_thumb\+0x8c>
a1c6: 4c05 ldr r4, \[pc, #20\] @ \(a1dc <_thumb\+0x90>\)
a1c8: 4c05 ldr r4, \[pc, #20\] @ \(a1e0 <_thumb\+0x94>\)
a1ca: 4d06 ldr r5, \[pc, #24\] @ \(a1e4 <_thumb\+0x98>\)
a1cc: f249 042c movw r4, #36908 @ 0x902c
a1d0: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f4's .iplt entry
#------------------------------------------------------------------------------
a1d4: 0000902c \.word 0x0000902c
#------------------------------------------------------------------------------
#------ PC-relative offset of f4's .iplt entry
#------------------------------------------------------------------------------
a1d8: ffffee54 \.word 0xffffee54
#------------------------------------------------------------------------------
#------ GP-relative offset of f4's .iplt entry
#------------------------------------------------------------------------------
a1dc: ffff802c \.word 0xffff802c
#------------------------------------------------------------------------------
#------ .got offset for f4's .iplt entry
#------------------------------------------------------------------------------
a1e0: 0000003c \.word 0x0000003c
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f4's .iplt entry
#------------------------------------------------------------------------------
a1e4: 00006e58 \.word 0x00006e58
a1e8: f7fe ef28 blx 903c <f7>
#------------------------------------------------------------------------------
#------ thumb entry to f7
#------------------------------------------------------------------------------
a1ec: f7fe bf24 b\.w 9038 <f7-0x4>
#------------------------------------------------------------------------------
#------ thumb entry to f7
#------------------------------------------------------------------------------
a1f0: f43e af22 beq\.w 9038 <f7-0x4>
a1f4: 4c04 ldr r4, \[pc, #16\] @ \(a208 <_thumb\+0xbc>\)
a1f6: f8df 4014 ldr\.w r4, \[pc, #20\] @ a20c <_thumb\+0xc0>
a1fa: 4c05 ldr r4, \[pc, #20\] @ \(a210 <_thumb\+0xc4>\)
a1fc: 4c05 ldr r4, \[pc, #20\] @ \(a214 <_thumb\+0xc8>\)
a1fe: 4d06 ldr r5, \[pc, #24\] @ \(a218 <_thumb\+0xcc>\)
a200: f249 043c movw r4, #36924 @ 0x903c
a204: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f7
#------------------------------------------------------------------------------
a208: 0000903c \.word 0x0000903c
#------------------------------------------------------------------------------
#------ PC-relative offset of f7
#------------------------------------------------------------------------------
a20c: ffffee30 \.word 0xffffee30
#------------------------------------------------------------------------------
#------ GP-relative offset of f7
#------------------------------------------------------------------------------
a210: ffff803c \.word 0xffff803c
#------------------------------------------------------------------------------
#------ .got offset for f7
#------------------------------------------------------------------------------
a214: 00000044 \.word 0x00000044
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f7
#------------------------------------------------------------------------------
a218: 00006e2c \.word 0x00006e2c
a21c: f7fe ef1c blx 9058 <f8>
#------------------------------------------------------------------------------
#------ thumb entry to f8
#------------------------------------------------------------------------------
a220: f7fe bf18 b\.w 9054 <f5\+0xc>
#------------------------------------------------------------------------------
#------ thumb entry to f8
#------------------------------------------------------------------------------
a224: f43e af16 beq\.w 9054 <f5\+0xc>
a228: 4c04 ldr r4, \[pc, #16\] @ \(a23c <_thumb\+0xf0>\)
a22a: f8df 4014 ldr\.w r4, \[pc, #20\] @ a240 <_thumb\+0xf4>
a22e: 4c05 ldr r4, \[pc, #20\] @ \(a244 <_thumb\+0xf8>\)
a230: 4c05 ldr r4, \[pc, #20\] @ \(a248 <_thumb\+0xfc>\)
a232: 4d06 ldr r5, \[pc, #24\] @ \(a24c <_thumb\+0x100>\)
a234: f249 0458 movw r4, #36952 @ 0x9058
a238: f2c0 0400 movt r4, #0
#------------------------------------------------------------------------------
#------ f8
#------------------------------------------------------------------------------
a23c: 00009058 \.word 0x00009058
#------------------------------------------------------------------------------
#------ PC-relative offset of f8
#------------------------------------------------------------------------------
a240: ffffee18 \.word 0xffffee18
#------------------------------------------------------------------------------
#------ GP-relative offset of f8
#------------------------------------------------------------------------------
a244: ffff8058 \.word 0xffff8058
#------------------------------------------------------------------------------
#------ .got offset for f8
#------------------------------------------------------------------------------
a248: 0000004c \.word 0x0000004c
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f8
#------------------------------------------------------------------------------
a24c: 00006e00 \.word 0x00006e00