summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2001-09-07 05:54:12 +0000
committerThiemo Seufer <ths@networkno.de>2001-09-07 05:54:12 +0000
commit6dfcc6df31bd2fd16685eefe9953715854bd2362 (patch)
treea98821f112c41f57c588bb98d7f6b7631f7a071a
parent6d550277573bd29743a472c484d976a280ea7e75 (diff)
downloadbinutils-redhat-6dfcc6df31bd2fd16685eefe9953715854bd2362.tar.gz
Reallow unrestricted use of .set mipsX pseudo-op in gas.
Update testcases accordingly.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c45
-rw-r--r--gas/testsuite/ChangeLog13
-rw-r--r--gas/testsuite/gas/mips/mips-abi32-pic.s1
-rw-r--r--gas/testsuite/gas/mips/mips-abi32.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp32-fp32-pic.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp32-fp32.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp32-fp64-pic.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp32-fp64.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp64-fp32-pic.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp64-fp32.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp64-fp64-pic.s1
-rw-r--r--gas/testsuite/gas/mips/mips-gp64-fp64.s1
13 files changed, 63 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 18a62f0128..297b304fcf 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2001-09-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+ * config/tc-mips.c (s_mipsset): Reallow unrestricted use of .set mipsX
+ pseudo-op.
+
+2001-09-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
* config/tc-mips.c (append_insn): Handle BFD_RELOC_16_PCREL.
(macro_build): Use BFD_RELOC_16_PCREL_S2 only for embedded
PIC, BFD_RELOC_16_PCREL for the rest.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index c30176754d..0855af0919 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -10406,12 +10406,57 @@ s_mipsset (x)
else if (strncmp (name, "mips", 4) == 0)
{
int isa;
+ static int saved_mips_gp32;
+ static int saved_mips_fp32;
+ static int saved_mips_32bit_abi;
+ static int is_saved;
/* Permit the user to change the ISA on the fly. Needless to
say, misuse can cause serious problems. */
isa = atoi (name + 4);
switch (isa)
{
+ case 0:
+ mips_gp32 = saved_mips_gp32;
+ mips_fp32 = saved_mips_fp32;
+ mips_32bit_abi = saved_mips_32bit_abi;
+ is_saved = 0;
+ break;
+ case 1:
+ case 2:
+ case 32:
+ if (! is_saved)
+ {
+ saved_mips_gp32 = mips_gp32;
+ saved_mips_fp32 = mips_fp32;
+ saved_mips_32bit_abi = mips_32bit_abi;
+ }
+ mips_gp32 = 1;
+ mips_fp32 = 1;
+ is_saved = 1;
+ break;
+ case 3:
+ case 4:
+ case 5:
+ case 64:
+ if (! is_saved)
+ {
+ saved_mips_gp32 = mips_gp32;
+ saved_mips_fp32 = mips_fp32;
+ saved_mips_32bit_abi = mips_32bit_abi;
+ }
+ mips_gp32 = 0;
+ mips_fp32 = 0;
+ mips_32bit_abi = 0;
+ is_saved = 1;
+ break;
+ default:
+ as_bad (_("unknown ISA level"));
+ break;
+ }
+
+ switch (isa)
+ {
case 0: mips_opts.isa = file_mips_isa; break;
case 1: mips_opts.isa = ISA_MIPS1; break;
case 2: mips_opts.isa = ISA_MIPS2; break;
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index a037123ffa..176ce32dbb 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,18 @@
2001-09-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+ * gas/mips/mips-abi32-pic.s: Remove .set mips4 pseudo-op.
+ * gas/mips/mips-abi32.s: Likewise.
+ * gas/mips/mips-gp32-fp32-pic.s: Likewise.
+ * gas/mips/mips-gp32-fp32.s: Likewise.
+ * gas/mips/mips-gp32-fp64-pic.s: Likewise.
+ * gas/mips/mips-gp32-fp64.s: Likewise.
+ * gas/mips/mips-gp64-fp32-pic.s: Likewise.
+ * gas/mips/mips-gp64-fp32.s: Likewise.
+ * gas/mips/mips-gp64-fp64-pic.s: Likewise.
+ * gas/mips/mips-gp64-fp64.s: Likewise.
+
+2001-09-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
* gas/mips/beq.d: Check branches to external labels.
* gas/mips/beq.s: Likewise.
* gas/mips/bge.d: Likewise.
diff --git a/gas/testsuite/gas/mips/mips-abi32-pic.s b/gas/testsuite/gas/mips/mips-abi32-pic.s
index c727607ab5..5fcb0583ac 100644
--- a/gas/testsuite/gas/mips/mips-abi32-pic.s
+++ b/gas/testsuite/gas/mips/mips-abi32-pic.s
@@ -13,7 +13,6 @@ unshared:
.text
.ent func
func:
- .set mips4
.set noreorder
.cpload $25 # 0000 lui gp,hi(_gp_disp)
# 0004 addiu gp,gp,lo(_gp_disp)
diff --git a/gas/testsuite/gas/mips/mips-abi32.s b/gas/testsuite/gas/mips/mips-abi32.s
index bd20fe59f7..c2db021b90 100644
--- a/gas/testsuite/gas/mips/mips-abi32.s
+++ b/gas/testsuite/gas/mips/mips-abi32.s
@@ -13,7 +13,6 @@ unshared:
.text
func:
.set noreorder
- .set mips4
li $4, 0x12345678 # 0000 lui a0,0x1234
# 0004 ori a0,a0,0x5678
la $4, shared # 0008 addiu a0,gp,shared
diff --git a/gas/testsuite/gas/mips/mips-gp32-fp32-pic.s b/gas/testsuite/gas/mips/mips-gp32-fp32-pic.s
index 1603dc1eae..767182344a 100644
--- a/gas/testsuite/gas/mips/mips-gp32-fp32-pic.s
+++ b/gas/testsuite/gas/mips/mips-gp32-fp32-pic.s
@@ -13,7 +13,6 @@ unshared:
.text
.ent func
func:
- .set mips4
.set noreorder
.cpload $25 # 0000 lui gp,hi(_gp_disp)
# 0004 addiu gp,gp,lo(_gp_disp)
diff --git a/gas/testsuite/gas/mips/mips-gp32-fp32.s b/gas/testsuite/gas/mips/mips-gp32-fp32.s
index 955b77ee11..b9ed87f9cd 100644
--- a/gas/testsuite/gas/mips/mips-gp32-fp32.s
+++ b/gas/testsuite/gas/mips/mips-gp32-fp32.s
@@ -13,7 +13,6 @@ unshared:
.text
func:
.set noreorder
- .set mips4
li $4, 0x12345678 # 0000 lui a0,0x1234
# 0004 ori a0,a0,0x5678
la $4, shared # 0008 addiu a0,gp,shared
diff --git a/gas/testsuite/gas/mips/mips-gp32-fp64-pic.s b/gas/testsuite/gas/mips/mips-gp32-fp64-pic.s
index 0110b1e900..2a4f5adf6c 100644
--- a/gas/testsuite/gas/mips/mips-gp32-fp64-pic.s
+++ b/gas/testsuite/gas/mips/mips-gp32-fp64-pic.s
@@ -13,7 +13,6 @@ unshared:
.text
.ent func
func:
- .set mips4
.set noreorder
.cpload $25 # 0000 lui gp,hi(_gp_disp)
# 0004 addiu gp,gp,lo(_gp_disp)
diff --git a/gas/testsuite/gas/mips/mips-gp32-fp64.s b/gas/testsuite/gas/mips/mips-gp32-fp64.s
index 4578a33eba..87503e4f5d 100644
--- a/gas/testsuite/gas/mips/mips-gp32-fp64.s
+++ b/gas/testsuite/gas/mips/mips-gp32-fp64.s
@@ -13,7 +13,6 @@ unshared:
.text
func:
.set noreorder
- .set mips4
li $4, 0x12345678 # 0000 lui a0,0x1234
# 0004 ori a0,a0,0x5678
la $4, shared # 0008 addiu a0,gp,shared
diff --git a/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s b/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s
index aae2afbacf..c67ad06d4a 100644
--- a/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s
+++ b/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s
@@ -13,7 +13,6 @@ unshared:
.text
.ent func
func:
- .set mips4
.set noreorder
.cpload $25 # 0000 lui gp,hi(_gp_disp)
# 0004 addiu gp,gp,lo(_gp_disp)
diff --git a/gas/testsuite/gas/mips/mips-gp64-fp32.s b/gas/testsuite/gas/mips/mips-gp64-fp32.s
index 190998b89c..29071038d8 100644
--- a/gas/testsuite/gas/mips/mips-gp64-fp32.s
+++ b/gas/testsuite/gas/mips/mips-gp64-fp32.s
@@ -13,7 +13,6 @@ unshared:
.text
func:
.set noreorder
- .set mips4
li $4, 0x12345678 # 0000 lui a0,0x1234
# 0004 ori a0,a0,0x5678
la $4, shared # 0008 daddiu a0,gp,shared
diff --git a/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s b/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s
index 0858b05527..1f144f5a1d 100644
--- a/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s
+++ b/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s
@@ -13,7 +13,6 @@ unshared:
.text
.ent func
func:
- .set mips4
.set noreorder
.cpload $25 # 0000 lui gp,hi(_gp_disp)
# 0004 addiu gp,gp,lo(_gp_disp)
diff --git a/gas/testsuite/gas/mips/mips-gp64-fp64.s b/gas/testsuite/gas/mips/mips-gp64-fp64.s
index a3b4f4d118..8698fb4953 100644
--- a/gas/testsuite/gas/mips/mips-gp64-fp64.s
+++ b/gas/testsuite/gas/mips/mips-gp64-fp64.s
@@ -13,7 +13,6 @@ unshared:
.text
func:
.set noreorder
- .set mips4
li $4, 0x12345678 # 0000 lui a0,0x1234
# 0004 ori a0,a0,0x5678
la $4, shared # 0008 daddiu a0,gp,shared