diff options
author | Jackie Smith Cashion <jsmith@redhat.com> | 1996-09-04 13:15:28 +0000 |
---|---|---|
committer | Jackie Smith Cashion <jsmith@redhat.com> | 1996-09-04 13:15:28 +0000 |
commit | 1b68deb5993b35cb830dd32b75e91b3766002c4a (patch) | |
tree | 5e20811337b95fb664fcffea457eaabe0fd188fd /gas | |
parent | 8719be26c4add30495893b3064cc422cd033046e (diff) | |
download | gdb-1b68deb5993b35cb830dd32b75e91b3766002c4a.zip gdb-1b68deb5993b35cb830dd32b75e91b3766002c4a.tar.gz gdb-1b68deb5993b35cb830dd32b75e91b3766002c4a.tar.bz2 |
Wed Sep 4 11:24:29 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-mips.c (load_register): Remove unnecessary code that
was causing the high 32bits of 64bit constants to be lost.
Fixes PR10503. The compiler was producing the assembler code:
dli $3,0xfffffffffffff
when constructing the softfloat library. Unfortunately it was being
incorrectly assembled.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 12 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 13 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/.Sanitize | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/dli.d | 48 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/dli.s | 19 |
6 files changed, 92 insertions, 13 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index d1150b0..d83345d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,15 @@ +Wed Sep 4 11:24:29 1996 James G. Smith <jsmith@cygnus.co.uk> + + * config/tc-mips.c (load_register): Remove unnecessary code that + was causing the high 32bits of 64bit constants to be lost. + +start-sanitize-d10v +Tue Sep 3 13:52:56 1996 Martin M. Hunt <hunt@pizza.cygnus.com> + + * config/tc-d10v.c: Added changes to support function + pointers and "@word" syntax. + +end-sanitize-d10v start-sanitize-v850 Tue Sep 3 11:57:18 1996 Jeffrey A Law (law@cygnus.com) diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 38bcebc..9c285ff 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -1921,19 +1921,6 @@ load_register (counter, reg, ep, dbl) (int) BFD_RELOC_LO16); return; } - else - { - /* 32 bit value with high bit set being loaded into a 64 bit - register. We can't use lui, because that would - incorrectly set the 32 high bits. */ - generic_bignum[3] = 0; - generic_bignum[2] = 0; - generic_bignum[1] = (ep->X_add_number >> 16) & 0xffff; - generic_bignum[0] = ep->X_add_number & 0xffff; - tmp.X_op = O_big; - tmp.X_add_number = 4; - ep = &tmp; - } } /* The value is larger than 32 bits. */ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 4b4c2ea..f5038cb8 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,6 +1,17 @@ +Wed Sep 4 11:47:29 1996 James G. Smith <jsmith@cygnus.co.uk> + + * gas/mips/mips.exp: Add check for dli macro instruction. + * gas/mips/dli.{s,d}: Added. + start-sanitize-v850 Sat Aug 31 01:25:03 1996 Jeffrey A Law (law@cygnus.com) + * gas/v850/basic.exp (do_mem): Check bit patterns for short + load/store instructions. Remove xfails for short load/store + instructions. + * gas/v850/mem.s: Offsets for short load/store operands + are unsigned. + * gas/v850/basic.exp (do_branch): Check offsets in branch insns. (do_jumps): Likewise. diff --git a/gas/testsuite/gas/mips/.Sanitize b/gas/testsuite/gas/mips/.Sanitize index 580d270..ec9e254 100644 --- a/gas/testsuite/gas/mips/.Sanitize +++ b/gas/testsuite/gas/mips/.Sanitize @@ -43,6 +43,8 @@ bltu.s div-ilocks.d div.d div.s +dli.d +dli.s jal-empic.d jal-svr4pic.d jal-svr4pic.s diff --git a/gas/testsuite/gas/mips/dli.d b/gas/testsuite/gas/mips/dli.d new file mode 100644 index 0000000..4435457 --- /dev/null +++ b/gas/testsuite/gas/mips/dli.d @@ -0,0 +1,48 @@ +#objdump: -dr +#name: MIPS dli +#as: -mips3 + +# Test the dli macro. + +.*: +file format .*mips.* + +No symbols in .* +Disassembly of section .text: +0+0000 li \$a0,0 +0+0004 li \$a0,1 +0+0008 li \$a0,-1 +0+000c li \$a0,0x8000 +0+0010 li \$a0,-32768 +0+0014 lui \$a0,0x1 +0+0018 lui \$a0,0x1 +0+001c ori \$a0,\$a0,0xa5a5 +0+0020 li \$a0,0x8000 +0+0024 dsll \$a0,\$a0,0x10 +0+0028 ori \$a0,\$a0,0x1234 +0+002c lui \$a0,0xffff +0+0030 dsrl32 \$a1,\$a0,0x0 +0+0034 lui \$a0,0xffff +0+0038 dsrl32 \$a1,\$a0,0x0 +0+003c li \$a0,-1 +0+0040 lui \$a0,0xf +0+0044 ori \$a0,\$a0,0xffff +0+0048 dsll \$a0,\$a0,0x10 +0+004c ori \$a0,\$a0,0xffff +0+0050 dsll \$a0,\$a0,0x10 +0+0054 ori \$a0,\$a0,0xffff +0+0058 lui \$a0,0x8000 +0+005c ori \$a0,\$a0,0x1234 +0+0060 li \$a0,-32768 +0+0064 dsll \$a0,\$a0,0x10 +0+0068 ori \$a0,\$a0,0x1234 +0+006c dsll \$a0,\$a0,0x10 +0+0070 ori \$a0,\$a0,0x5678 +0+0074 lui \$a0,0x8000 +0+0078 ori \$a0,\$a0,0x1234 +0+007c dsll \$a0,\$a0,0x10 +0+0080 ori \$a0,\$a0,0x5678 +0+0084 dsll \$a0,\$a0,0x10 +0+0088 li \$a0,-30875 +0+008c lui \$a0,0xffff +0+0090 ori \$a0,\$a0,0x4321 +... diff --git a/gas/testsuite/gas/mips/dli.s b/gas/testsuite/gas/mips/dli.s new file mode 100644 index 0000000..5ea8f2a --- /dev/null +++ b/gas/testsuite/gas/mips/dli.s @@ -0,0 +1,19 @@ +# Source file used to test the dli macro. + + dli $4,0 + dli $4,1 + dli $4,-1 + dli $4,0x8000 + dli $4,-0x8000 + dli $4,0x10000 + dli $4,0x1a5a5 + dli $4,0x80001234 + dli $4,0xffffffff + dli $4,0x00000000ffffffff + dli $4,0xffffffffffffffff + dli $4,0x000fffffffffffff + dli $4,0xffffffff80001234 + dli $4,0xffff800012345678 + dli $4,0x8000123456780000 + dli $4,0xffffffffffff8765 + dli $4,0xffffffffffff4321 |