aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJackie Smith Cashion <jsmith@redhat.com>1996-09-04 13:15:28 +0000
committerJackie Smith Cashion <jsmith@redhat.com>1996-09-04 13:15:28 +0000
commit1b68deb5993b35cb830dd32b75e91b3766002c4a (patch)
tree5e20811337b95fb664fcffea457eaabe0fd188fd /gas
parent8719be26c4add30495893b3064cc422cd033046e (diff)
downloadfsf-binutils-gdb-1b68deb5993b35cb830dd32b75e91b3766002c4a.zip
fsf-binutils-gdb-1b68deb5993b35cb830dd32b75e91b3766002c4a.tar.gz
fsf-binutils-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/ChangeLog12
-rw-r--r--gas/config/tc-mips.c13
-rw-r--r--gas/testsuite/ChangeLog11
-rw-r--r--gas/testsuite/gas/mips/.Sanitize2
-rw-r--r--gas/testsuite/gas/mips/dli.d48
-rw-r--r--gas/testsuite/gas/mips/dli.s19
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