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

View file

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

View file

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

View file

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

View file

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