diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 45 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-abi32-pic.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-abi32.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp32-fp32-pic.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp32-fp32.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp32-fp64-pic.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp32-fp64.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp64-fp32-pic.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp64-fp32.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp64-fp64-pic.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips-gp64-fp64.s | 1 |
13 files changed, 63 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 18a62f0..297b304 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 c301767..0855af0 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 a037123..176ce32 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 c727607..5fcb058 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 bd20fe5..c2db021 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 1603dc1..7671823 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 955b77e..b9ed87f 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 0110b1e..2a4f5ad 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 4578a33..87503e4 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 aae2afb..c67ad06 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 190998b..2907103 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 0858b05..1f144f5 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 a3b4f4d..8698fb4 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 |