diff options
Diffstat (limited to 'gnu/usr.bin/as/config/tc-m68k.c')
-rw-r--r-- | gnu/usr.bin/as/config/tc-m68k.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/gnu/usr.bin/as/config/tc-m68k.c b/gnu/usr.bin/as/config/tc-m68k.c index 2872103..dc4d3e8 100644 --- a/gnu/usr.bin/as/config/tc-m68k.c +++ b/gnu/usr.bin/as/config/tc-m68k.c @@ -64,7 +64,7 @@ const char FLT_CHARS[] = "rRsSfFdDxXeEpP"; but nothing is ideal around here. */ -int md_reloc_size = 8; /* Size of relocation record */ +const int md_reloc_size = 8; /* Size of relocation record */ /* Its an arbitrary name: This means I don't approve of it */ /* See flames below */ @@ -1302,7 +1302,7 @@ char *instring; #ifdef PIC case ' ': /* this operand is just here to indicate a jump-table branch */ - if (!flagseen['k']) + if (!picmode) losing++; break; #endif /* PIC */ @@ -1663,7 +1663,7 @@ char *instring; #ifdef PIC /* Use GLOB_DAT for operand references in PIC mode */ - if (flagseen['k']) + if (picmode) reloc_type = RELOC_GLOB_DAT; else #endif /* PIC */ @@ -1687,7 +1687,7 @@ char *instring; __GLOBAL_OFFSET_TABLE_ is turned into a pc-relative reference to __GLOBAL_OFFSET_TABLE_ - 6, for the sake of Sun compatibility. */ - if (s[1] == 'l' && flagseen['k'] && gots(opP->con1)) { + if (s[1] == 'l' && picmode && gots(opP->con1)) { offs(opP->con1) -= 6; add_fix(s[1], opP->con1, 1, NO_RELOC); } else @@ -2119,7 +2119,7 @@ char *instring; #ifdef PIC /* If we have the optional kludgey 2nd operand, make this go via the jump table. */ - if (flagseen['k'] && s[2] == ' ') { + if (picmode && s[2] == ' ') { the_ins.opcode[the_ins.numo-1] |= 0xFF; add_fix('l', opP->con1, 1, RELOC_JMP_TBL); addword(0); @@ -3312,7 +3312,7 @@ segT segment; (symbolS *) 0, fragP->fr_offset, 1, #ifdef PIC /* With -k, make all external branches go via the jump table. */ - (flagseen['k']? RELOC_JMP_TBL: NO_RELOC), NULL + (picmode? RELOC_JMP_TBL: NO_RELOC), NULL #else NO_RELOC #endif @@ -3515,7 +3515,7 @@ relax_addressT segment_address_in_file; case NO_RELOC: break; case RELOC_32: - if (flagseen['k'] && S_IS_EXTERNAL(fixP->fx_addsy)) { + if (picmode && S_IS_EXTERNAL(fixP->fx_addsy)) { r_symbolnum = fixP->fx_addsy->sy_number; r_flags |= 0x10; /* set extern bit */ } @@ -3883,6 +3883,9 @@ char ***vecP; } else if (!strcmp(*argP, "68040")) { current_architecture |= m68040 | MAYBE_FLOAT_TOO; + } else if (!strcmp(*argP, "68060")) { + current_architecture |= m68040 | MAYBE_FLOAT_TOO; + #ifndef NO_68881 } else if (!strcmp(*argP, "68881")) { current_architecture |= m68881; @@ -3914,6 +3917,7 @@ char ***vecP; #ifdef PIC case 'k': + case 'K': /* Predefine GOT symbol */ GOT_symbol = symbol_find_or_make("__GLOBAL_OFFSET_TABLE_"); break; |