From: H.J. Lu Date: Fri, 3 Sep 2010 17:38:38 +0000 (+0000) Subject: Check flag_code instead of use_rela_relocations for 64bit. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=13f864aed86358efd5504098e61184b06054d43c;p=binutils-gdb.git Check flag_code instead of use_rela_relocations for 64bit. gas/ 2010-09-03 H.J. Lu PR gas/11974 * config/tc-i386.c (i386_finalize_immediate): Check flag_code instead of use_rela_relocations for 64bit. gas/testsuite/ 2010-09-03 H.J. Lu PR gas/11974 * gas/i386/immed64.s: Add more movabs tests. * gas/i386/immed64.d: Updated. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index bae8e5fc704..6774434b8a4 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2010-09-03 H.J. Lu + + PR gas/11974 + * config/tc-i386.c (i386_finalize_immediate): Check flag_code + instead of use_rela_relocations for 64bit. + 2010-09-02 Richard Henderson * dw2gencfi.c (TC_DWARF2_EMIT_OFFSET): Provide default. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 8533142354c..9488ac933e1 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6626,8 +6626,8 @@ i386_finalize_immediate (segT exp_seg ATTRIBUTE_UNUSED, expressionS *exp, { /* Size it properly later. */ i.types[this_operand].bitfield.imm64 = 1; - /* If BFD64, sign extend val. */ - if (!use_rela_relocations + /* If not 64bit, sign extend val. */ + if (flag_code != CODE_64BIT && (exp->X_add_number & ~(((addressT) 2 << 31) - 1)) == 0) exp->X_add_number = (exp->X_add_number ^ ((addressT) 1 << 31)) - ((addressT) 1 << 31); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 93c1b1d9623..73eee887d5b 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-09-03 H.J. Lu + + PR gas/11974 + * gas/i386/immed64.s: Add more movabs tests. + * gas/i386/immed64.d: Updated. + 2010-09-03 Jan Kratochvil * gas/elf/dwarf2-1.d: Update DW_OP_reg5 expected output. diff --git a/gas/testsuite/gas/i386/immed64.d b/gas/testsuite/gas/i386/immed64.d index e195ffd53cf..35492a5a458 100644 --- a/gas/testsuite/gas/i386/immed64.d +++ b/gas/testsuite/gas/i386/immed64.d @@ -57,4 +57,6 @@ Disassembly of section \.text: [ ]*[0-9a-fA-F]+:[ ]+e5 04[ ]+inl? +\$0x4,%eax [ ]*[0-9a-fA-F]+:[ ]+e5 08[ ]+inl? +\$0x8,%eax [ ]*[0-9a-fA-F]+:[ ]+e5 00[ ]+inl? +\$0x0,%eax +[ ]*[a-f0-9]+: 48 b8 01 00 00 80 00 00 00 00 movabs \$0x80000001,%rax +[ ]*[a-f0-9]+: 48 b8 01 00 00 80 00 00 00 00 movabs \$0x80000001,%rax #pass diff --git a/gas/testsuite/gas/i386/immed64.s b/gas/testsuite/gas/i386/immed64.s index 4e68701e1fa..265b41924e8 100644 --- a/gas/testsuite/gas/i386/immed64.s +++ b/gas/testsuite/gas/i386/immed64.s @@ -54,3 +54,6 @@ _start: inl $xtrn, %eax .equiv late, 8 + + movabs $0x80000001, %rax + movabsq $0x80000001, %rax