Revert accidental commit

This commit is contained in:
Zack Weinberg 2005-06-07 18:03:17 +00:00
parent 55cf6793d8
commit 05ab1f3b1c
5 changed files with 100 additions and 67 deletions

View file

@ -1414,11 +1414,9 @@ find_real_start (symbolS * symbolP)
if (name == NULL)
abort ();
/* The compiler may generate BL instructions to local labels because
it needs to perform a branch to a far away location. These labels
do not have a corresponding ".real_start_of" label. To accomodate
hand-written assembly, we don't insist on a leading ".L", just a
leading dot. */
/* Names that start with '.' are local labels, not function entry points.
The compiler may generate BL instructions to these labels because it
needs to perform a branch to a far away location. */
if (name[0] == '.')
return symbolP;
@ -10515,8 +10513,7 @@ md_apply_fix (fixS * fixP,
#define SEXT24(x) ((((x) & 0xffffff) ^ (~ 0x7fffff)) + 0x800000)
#ifdef OBJ_ELF
if (!fixP->fx_done)
value = fixP->fx_offset;
value = fixP->fx_offset;
#endif
/* We are going to store value (shifted right by two) in the
@ -10586,8 +10583,7 @@ md_apply_fix (fixS * fixP,
newval = md_chars_to_number (buf, INSN_SIZE);
#ifdef OBJ_ELF
if (!fixP->fx_done)
value = fixP->fx_offset;
value = fixP->fx_offset;
#endif
hbit = (value >> 1) & 1;
value = (value >> 2) & 0x00ffffff;
@ -10746,8 +10742,7 @@ md_apply_fix (fixS * fixP,
if (diff & 0x400000)
diff |= ~0x3fffff;
#ifdef OBJ_ELF
if (!fixP->fx_done)
value = fixP->fx_offset;
value = fixP->fx_offset;
#endif
value += diff;
@ -11358,6 +11353,13 @@ arm_force_relocation (struct fix * fixp)
if (fixp->fx_r_type == BFD_RELOC_RVA)
return 1;
#endif
#ifdef OBJ_ELF
if (fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BRANCH
|| fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BLX
|| fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX
|| fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BRANCH23)
return 1;
#endif
/* Resolve these relocations even if the symbol is extern or weak. */
if (fixp->fx_r_type == BFD_RELOC_ARM_IMMEDIATE

View file

@ -127,9 +127,8 @@ struct fix;
#define OPTIONAL_REGISTER_PREFIX '%'
#define LOCAL_LABEL(name) (name[0] == '.' && name[1] == 'L')
#define LOCAL_LABELS_FB 1
#define LOCAL_LABEL_PREFIX '.'
#define LOCAL_LABEL(name) (name[0] == '.' && (name[1] == 'L'))
#define LOCAL_LABELS_FB 1
/* This expression evaluates to true if the relocation is for a local
object for which we still want to do the relocation at runtime.
@ -169,6 +168,7 @@ struct fix;
# define md_elf_section_change_hook() arm_elf_change_section ()
# define md_elf_section_type(str, len) arm_elf_section_type (str, len)
# define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
# define LOCAL_LABEL_PREFIX '.'
# define TC_SEGMENT_INFO_TYPE struct arm_segment_info_type
enum mstate

View file

@ -119,41 +119,68 @@ Disassembly of section \.text:
0+0de <[^>]+> 2f68 cmp r7, #104
0+0e0 <[^>]+> 46c0 nop \(mov r8, r8\)
0+0e2 <[^>]+> 46c0 nop \(mov r8, r8\)
0+0e4 <[^>]+> eafffffe b 0+0e4 <[^>]+>
0+0e8 <[^>]+> ea000011 b 0+134 <[^>]+>
0+0ec <[^>]+> ebfffffc bl 0+0e4 <[^>]+>
0+0f0 <[^>]+> eb00000f bl 0+134 <[^>]+>
0+0e4 <[^>]+> ea000037 b 0+0e4 <[^>]+>
e4: R_ARM_PC24 \.text
0+0e8 <[^>]+> eafffffe b 0+000 <[^>]+>
e8: R_ARM_PC24 \.wombat
0+0ec <[^>]+> eb000037 bl 0+0e4 <[^>]+>
ec: R_ARM_PC24 \.text
0+0f0 <[^>]+> ebfffffe bl 0+000 <[^>]+>
f0: R_ARM_PC24 \.wombat
0+0f4 <[^>]+> e12fff10 bx r0
0+0f8 <[^>]+> ef123456 swi 0x00123456
0+0fc <[^>]+> a004 add r0, pc, #16 \(adr r0,0+110 <[^>]+>\)
0+0fe <[^>]+> e77f b.n 0+000 <[^>]+>
0+100 <[^>]+> e018 b.n 0+134 <[^>]+>
0+102 <[^>]+> f7ff ff7d bl 0+000 <[^>]+>
0+106 <[^>]+> f000 f815 bl 0+134 <[^>]+>
0+100 <[^>]+> e7fe b.n 0+000 <[^>]+>
100: R_ARM_THM_JUMP11 \.wombat
0+102 <[^>]+> f7ff fffe bl 0+000 <[^>]+>
102: R_ARM_THM_CALL \.text
0+106 <[^>]+> f7ff fffe bl 0+000 <[^>]+>
106: R_ARM_THM_CALL \.wombat
0+10a <[^>]+> 4700 bx r0
0+10c <[^>]+> dfff swi 255
\.\.\.
0+110 <[^>]+> d010 beq.n 0+134 <[^>]+>
0+112 <[^>]+> d10f bne.n 0+134 <[^>]+>
0+114 <[^>]+> d20e bcs.n 0+134 <[^>]+>
0+116 <[^>]+> d30d bcc.n 0+134 <[^>]+>
0+118 <[^>]+> d40c bmi.n 0+134 <[^>]+>
0+11a <[^>]+> d50b bpl.n 0+134 <[^>]+>
0+11c <[^>]+> d60a bvs.n 0+134 <[^>]+>
0+11e <[^>]+> d709 bvc.n 0+134 <[^>]+>
0+120 <[^>]+> d808 bhi.n 0+134 <[^>]+>
0+122 <[^>]+> d907 bls.n 0+134 <[^>]+>
0+124 <[^>]+> da06 bge.n 0+134 <[^>]+>
0+126 <[^>]+> dc05 bgt.n 0+134 <[^>]+>
0+128 <[^>]+> db04 blt.n 0+134 <[^>]+>
0+12a <[^>]+> dc03 bgt.n 0+134 <[^>]+>
0+12c <[^>]+> dd02 ble.n 0+134 <[^>]+>
0+12e <[^>]+> d801 bhi.n 0+134 <[^>]+>
0+130 <[^>]+> d300 bcc.n 0+134 <[^>]+>
0+132 <[^>]+> d3ff bcc.n 0+134 <[^>]+>
0+134 <[^>]+> f000 fc00 bl 0+938 <[^>]+>
0+110 <[^>]+> d0fe beq.n 0+000 <[^>]+>
110: R_ARM_THM_JUMP8 \.wombat
0+112 <[^>]+> d1fe bne.n 0+000 <[^>]+>
112: R_ARM_THM_JUMP8 \.wombat
0+114 <[^>]+> d2fe bcs.n 0+000 <[^>]+>
114: R_ARM_THM_JUMP8 \.wombat
0+116 <[^>]+> d3fe bcc.n 0+000 <[^>]+>
116: R_ARM_THM_JUMP8 \.wombat
0+118 <[^>]+> d4fe bmi.n 0+000 <[^>]+>
118: R_ARM_THM_JUMP8 \.wombat
0+11a <[^>]+> d5fe bpl.n 0+000 <[^>]+>
11a: R_ARM_THM_JUMP8 \.wombat
0+11c <[^>]+> d6fe bvs.n 0+000 <[^>]+>
11c: R_ARM_THM_JUMP8 \.wombat
0+11e <[^>]+> d7fe bvc.n 0+000 <[^>]+>
11e: R_ARM_THM_JUMP8 \.wombat
0+120 <[^>]+> d8fe bhi.n 0+000 <[^>]+>
120: R_ARM_THM_JUMP8 \.wombat
0+122 <[^>]+> d9fe bls.n 0+000 <[^>]+>
122: R_ARM_THM_JUMP8 \.wombat
0+124 <[^>]+> dafe bge.n 0+000 <[^>]+>
124: R_ARM_THM_JUMP8 \.wombat
0+126 <[^>]+> dcfe bgt.n 0+000 <[^>]+>
126: R_ARM_THM_JUMP8 \.wombat
0+128 <[^>]+> dbfe blt.n 0+000 <[^>]+>
128: R_ARM_THM_JUMP8 \.wombat
0+12a <[^>]+> dcfe bgt.n 0+000 <[^>]+>
12a: R_ARM_THM_JUMP8 \.wombat
0+12c <[^>]+> ddfe ble.n 0+000 <[^>]+>
12c: R_ARM_THM_JUMP8 \.wombat
0+12e <[^>]+> d8fe bhi.n 0+000 <[^>]+>
12e: R_ARM_THM_JUMP8 \.wombat
0+130 <[^>]+> d3fe bcc.n 0+000 <[^>]+>
130: R_ARM_THM_JUMP8 \.wombat
0+132 <[^>]+> d3fe bcc.n 0+000 <[^>]+>
132: R_ARM_THM_JUMP8 \.wombat
0+134 <[^>]+> f000 fc9a bl 0+938 <[^>]+>
134: R_ARM_THM_CALL \.text
\.\.\.
0+938 <[^>]+> f7ff fbfc bl 0+134 <[^>]+>
0+938 <[^>]+> f000 f898 bl 0+134 <[^>]+>
938: R_ARM_THM_CALL \.text
0+93c <[^>]+> 4801 ldr r0, \[pc, #4\] \(0+944 <[^>]+>\)
0+93e <[^>]+> 4801 ldr r0, \[pc, #4\] \(0+944 <[^>]+>\)
0+940 <[^>]+> 4801 ldr r0, \[pc, #4\] \(0+948 <[^>]+>\)

View file

@ -145,9 +145,9 @@ near:
.arm
.localbar:
b .localbar
b .back
b .wombat
bl .localbar
bl .back
bl .wombat
bx r0
swi 0x123456
@ -159,33 +159,33 @@ morethumb:
adr r0, forwardonly
b .foo
b .back
b .wombat
bl .foo
bl .back
bl .wombat
bx r0
swi 0xff
.align 0
forwardonly:
beq .back
bne .back
bcs .back
bcc .back
bmi .back
bpl .back
bvs .back
bvc .back
bhi .back
bls .back
bge .back
bgt .back
blt .back
bgt .back
ble .back
bhi .back
blo .back
bul .back
beq .wombat
bne .wombat
bcs .wombat
bcc .wombat
bmi .wombat
bpl .wombat
bvs .wombat
bvc .wombat
bhi .wombat
bls .wombat
bge .wombat
bgt .wombat
blt .wombat
bgt .wombat
ble .wombat
bhi .wombat
blo .wombat
bul .wombat
.back:
bl .local

View file

@ -295,10 +295,14 @@ Disassembly of section .text:
0+3cc <[^>]+> f340 800c ble\.w 0+3e8 <[^>]+>
0+3d0 <[^>]+> f7ff bfae b\.w 0+330 <[^>]+>
0+3d4 <[^>]+> f000 b808 b\.w 0+3e8 <[^>]+>
0+3d8 <[^>]+> f7ff ffaa bl 0+330 <[^>]+>
0+3dc <[^>]+> f000 f804 bl 0+3e8 <[^>]+>
0+3e0 <[^>]+> f7ff efa6 blx 0+330 <[^>]+>
0+3e4 <[^>]+> f000 e800 blx 0+3e8 <[^>]+>
0+3d8 <[^>]+> f000 f996 bl 0+330 <[^>]+>
3d8: R_ARM_THM_CALL \.text
0+3dc <[^>]+> f000 f9f2 bl 0+3e8 <[^>]+>
3dc: R_ARM_THM_CALL \.text
0+3e0 <[^>]+> f000 e996 blx 0+330 <[^>]+>
3e0: R_ARM_THM_XPC22 \.text
0+3e4 <[^>]+> f000 e9f2 blx 0+3e8 <[^>]+>
3e4: R_ARM_THM_XPC22 \.text
0+3e8 <[^>]+> 4748 bx r9
0+3ea <[^>]+> 4780 blx r0
0+3ec <[^>]+> 47c8 blx r9