This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PR11867, bignum operations


On Mon, Aug 2, 2010 at 2:44 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Mon, Aug 2, 2010 at 2:38 PM, Richard Sandiford
> <rdsandiford@googlemail.com> wrote:
>> "H.J. Lu" <hjl.tools@gmail.com> writes:
>>> On Mon, Aug 2, 2010 at 6:18 AM, Alan Modra <amodra@gmail.com> wrote:
>>>> gas only supports the unary '-', '~', and '!' operators for bignums,
>>>> and all three were broken. ?'!' gave the logical inverse of the proper
>>>> result, and the other two ignored any leading zeros.
>>>>
>>>> ? ? ? ?PR gas/11867
>>>> ? ? ? ?* expr.c (operand <'-' and '~'>): Widen bignums.
>>>> ? ? ? ?(operand <'!'>): Correct bignum result and convert to O_constant.
>>>> ? ? ? ?* read.c (emit_expr): Don't assert on .byte bignum. ?Don't display
>>>> ? ? ? ?bignum truncated warning for sign extended bignums.
>>>>
>>>
>>> I checked in this testcase.
>>
>>> +Contents of section .data:
>>> + 0000 00000000 fa448607 00000000 fdffffff ?.....D..........
>>
>> Doesn't this need a big-endian alternative?
>>
>
> I guess so.
>

I checked in this to limit it to i*86, x86_64 and ia64.


-- 
H.J.
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index e3b76a3..b5d0666 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,9 @@
 2010-08-02  H.J. Lu  <hongjiu.lu@intel.com>

+	* elf/elf.exp: Run data-1 only for i*86, x86_64 and ia64.
+
+2010-08-02  H.J. Lu  <hongjiu.lu@intel.com>
+
 	PR gas/11867
 	* gas/elf/data-1.d: New.
 	* gas/elf/data-1.s: Likewise.
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index e06db46..0dcc000 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -127,7 +127,12 @@ if { ([istarget "*-*-*elf*"]
 	    run_dump_test equ-reloc
 	}
     }
-    run_dump_test "data-1"
+    if {[istarget "i*86-*-*"]
+	||  [istarget "x86_64-*-*"]
+	|| [istarget "ia64-*-*"]} then {
+	# This is a little endian test.
+	run_dump_test "data-1"
+    }
     run_dump_test "pseudo"
     run_dump_test "section0"
     run_dump_test "section1"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]