Commit b932c20b by DJ Delorie Committed by DJ Delorie

mep-core.cpu (fsft, ssarb): Mark as VOLATILE.

* config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
* config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
unspecified accesses to control registers.
* config/mep/intrinsics.md: Regenerate.
* config/mep/intrinsics.h: Regenerate.
* config/mep/mep-intrin.h: Regenerate.

From-SVN: r149311
parent fab922b1
2009-07-06 DJ Delorie <dj@redhat.com>
* config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
* config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
unspecified accesses to control registers.
* config/mep/intrinsics.md: Regenerate.
* config/mep/intrinsics.h: Regenerate.
* config/mep/mep-intrin.h: Regenerate.
2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
* c-lex.c: Replace %H by an explicit location. Update all calls. * c-lex.c: Replace %H by an explicit location. Update all calls.
......
...@@ -80,21 +80,21 @@ void mep_cpsraa0 (cp_data_bus_int); // volatile ...@@ -80,21 +80,21 @@ void mep_cpsraa0 (cp_data_bus_int); // volatile
void mep_cpsrla0 (cp_data_bus_int); // volatile void mep_cpsrla0 (cp_data_bus_int); // volatile
void mep_cpaccpa0 (); // volatile void mep_cpaccpa0 (); // volatile
void mep_cpacsuma0 (); // volatile void mep_cpacsuma0 (); // volatile
cp_v2si mep_cpmovhla0_w (); cp_v2si mep_cpmovhla0_w (); // volatile
cp_v2si mep_cpmovhua0_w (); cp_v2si mep_cpmovhua0_w (); // volatile
cp_v2si mep_cppackla0_w (); cp_v2si mep_cppackla0_w (); // volatile
cp_v2si mep_cppackua0_w (); cp_v2si mep_cppackua0_w (); // volatile
cp_v4hi mep_cppackla0_h (); cp_v4hi mep_cppackla0_h (); // volatile
cp_v4hi mep_cppackua0_h (); cp_v4hi mep_cppackua0_h (); // volatile
cp_v8qi mep_cppacka0_b (); cp_v8qi mep_cppacka0_b (); // volatile
cp_v8uqi mep_cppacka0u_b (); cp_v8uqi mep_cppacka0u_b (); // volatile
cp_v2si mep_cpmovlla0_w (); cp_v2si mep_cpmovlla0_w (); // volatile
cp_v2si mep_cpmovlua0_w (); cp_v2si mep_cpmovlua0_w (); // volatile
cp_v2si mep_cpmovula0_w (); cp_v2si mep_cpmovula0_w (); // volatile
cp_v2si mep_cpmovuua0_w (); cp_v2si mep_cpmovuua0_w (); // volatile
cp_v4hi mep_cpmovla0_h (); cp_v4hi mep_cpmovla0_h (); // volatile
cp_v4hi mep_cpmovua0_h (); cp_v4hi mep_cpmovua0_h (); // volatile
cp_v8qi mep_cpmova0_b (); cp_v8qi mep_cpmova0_b (); // volatile
void mep_cpsetla0_w (cp_v2si, cp_v2si); // volatile void mep_cpsetla0_w (cp_v2si, cp_v2si); // volatile
void mep_cpsetua0_w (cp_v2si, cp_v2si); // volatile void mep_cpsetua0_w (cp_v2si, cp_v2si); // volatile
void mep_cpseta0_h (cp_v4hi, cp_v4hi); // volatile void mep_cpseta0_h (cp_v4hi, cp_v4hi); // volatile
...@@ -175,21 +175,21 @@ void mep_cpsrlia1 (long); // volatile ...@@ -175,21 +175,21 @@ void mep_cpsrlia1 (long); // volatile
void mep_cpslla1 (cp_data_bus_int); // volatile void mep_cpslla1 (cp_data_bus_int); // volatile
void mep_cpsraa1 (cp_data_bus_int); // volatile void mep_cpsraa1 (cp_data_bus_int); // volatile
void mep_cpsrla1 (cp_data_bus_int); // volatile void mep_cpsrla1 (cp_data_bus_int); // volatile
cp_v2si mep_cpmovhla1_w (); cp_v2si mep_cpmovhla1_w (); // volatile
cp_v2si mep_cpmovhua1_w (); cp_v2si mep_cpmovhua1_w (); // volatile
cp_v2si mep_cppackla1_w (); cp_v2si mep_cppackla1_w (); // volatile
cp_v2si mep_cppackua1_w (); cp_v2si mep_cppackua1_w (); // volatile
cp_v4hi mep_cppackla1_h (); cp_v4hi mep_cppackla1_h (); // volatile
cp_v4hi mep_cppackua1_h (); cp_v4hi mep_cppackua1_h (); // volatile
cp_v8qi mep_cppacka1_b (); cp_v8qi mep_cppacka1_b (); // volatile
cp_v8uqi mep_cppacka1u_b (); cp_v8uqi mep_cppacka1u_b (); // volatile
cp_v2si mep_cpmovlla1_w (); cp_v2si mep_cpmovlla1_w (); // volatile
cp_v2si mep_cpmovlua1_w (); cp_v2si mep_cpmovlua1_w (); // volatile
cp_v2si mep_cpmovula1_w (); cp_v2si mep_cpmovula1_w (); // volatile
cp_v2si mep_cpmovuua1_w (); cp_v2si mep_cpmovuua1_w (); // volatile
cp_v4hi mep_cpmovla1_h (); cp_v4hi mep_cpmovla1_h (); // volatile
cp_v4hi mep_cpmovua1_h (); cp_v4hi mep_cpmovua1_h (); // volatile
cp_v8qi mep_cpmova1_b (); cp_v8qi mep_cpmova1_b (); // volatile
void mep_cpsetla1_w (cp_v2si, cp_v2si); // volatile void mep_cpsetla1_w (cp_v2si, cp_v2si); // volatile
void mep_cpsetua1_w (cp_v2si, cp_v2si); // volatile void mep_cpsetua1_w (cp_v2si, cp_v2si); // volatile
void mep_cpseta1_h (cp_v4hi, cp_v4hi); // volatile void mep_cpseta1_h (cp_v4hi, cp_v4hi); // volatile
...@@ -228,8 +228,8 @@ cp_data_bus_int mep_cdclipi3 (cp_data_bus_int, long); ...@@ -228,8 +228,8 @@ cp_data_bus_int mep_cdclipi3 (cp_data_bus_int, long);
cp_data_bus_int mep_cdclipiu3 (cp_data_bus_int, long); cp_data_bus_int mep_cdclipiu3 (cp_data_bus_int, long);
cp_v2si mep_cpclipi3_w (cp_v2si, long); cp_v2si mep_cpclipi3_w (cp_v2si, long);
cp_v2si mep_cpclipiu3_w (cp_v2si, long); cp_v2si mep_cpclipiu3_w (cp_v2si, long);
cp_v2si mep_cpslai3_w (cp_v2si, long); cp_v2si mep_cpslai3_w (cp_v2si, long); // volatile
cp_v4hi mep_cpslai3_h (cp_v4hi, long); cp_v4hi mep_cpslai3_h (cp_v4hi, long); // volatile
cp_data_bus_int mep_cdslli3 (cp_data_bus_int, long); cp_data_bus_int mep_cdslli3 (cp_data_bus_int, long);
cp_v2si mep_cpslli3_w (cp_v2si, long); cp_v2si mep_cpslli3_w (cp_v2si, long);
cp_v4hi mep_cpslli3_h (cp_v4hi, long); cp_v4hi mep_cpslli3_h (cp_v4hi, long);
...@@ -310,7 +310,7 @@ cp_v8uqi mep_cpextuu_b (cp_v8uqi); ...@@ -310,7 +310,7 @@ cp_v8uqi mep_cpextuu_b (cp_v8uqi);
cp_v2si mep_cpbcast_w (cp_v2si); cp_v2si mep_cpbcast_w (cp_v2si);
cp_v4hi mep_cpbcast_h (cp_v4hi); cp_v4hi mep_cpbcast_h (cp_v4hi);
cp_v8qi mep_cpbcast_b (cp_v8qi); cp_v8qi mep_cpbcast_b (cp_v8qi);
void mep_cpccadd_b (cp_v8qi*); void mep_cpccadd_b (cp_v8qi*); // volatile
cp_v2si mep_cphadd_w (cp_v2si); cp_v2si mep_cphadd_w (cp_v2si);
cp_v4hi mep_cphadd_h (cp_v4hi); cp_v4hi mep_cphadd_h (cp_v4hi);
cp_v8qi mep_cphadd_b (cp_v8qi); cp_v8qi mep_cphadd_b (cp_v8qi);
...@@ -325,9 +325,9 @@ cp_v8qi mep_cpabsz_b (cp_v8qi); ...@@ -325,9 +325,9 @@ cp_v8qi mep_cpabsz_b (cp_v8qi);
void mep_cpmovtocc (cp_data_bus_int); // volatile void mep_cpmovtocc (cp_data_bus_int); // volatile
void mep_cpmovtocsar1 (cp_data_bus_int); // volatile void mep_cpmovtocsar1 (cp_data_bus_int); // volatile
void mep_cpmovtocsar0 (cp_data_bus_int); // volatile void mep_cpmovtocsar0 (cp_data_bus_int); // volatile
cp_data_bus_int mep_cpmovfrcc (); cp_data_bus_int mep_cpmovfrcc (); // volatile
cp_data_bus_int mep_cpmovfrcsar1 (); cp_data_bus_int mep_cpmovfrcsar1 (); // volatile
cp_data_bus_int mep_cpmovfrcsar0 (); cp_data_bus_int mep_cpmovfrcsar0 (); // volatile
cp_v2si mep_cpmin3_w (cp_v2si, cp_v2si); cp_v2si mep_cpmin3_w (cp_v2si, cp_v2si);
cp_v2si mep_cpminu3_w (cp_v2si, cp_v2si); cp_v2si mep_cpminu3_w (cp_v2si, cp_v2si);
cp_v4hi mep_cpmin3_h (cp_v4hi, cp_v4hi); cp_v4hi mep_cpmin3_h (cp_v4hi, cp_v4hi);
...@@ -357,12 +357,12 @@ cp_v8qi mep_cpextladd3_b (cp_v8qi, cp_v8qi); ...@@ -357,12 +357,12 @@ cp_v8qi mep_cpextladd3_b (cp_v8qi, cp_v8qi);
cp_v8qi mep_cpextladdu3_b (cp_v8qi, cp_v8qi); cp_v8qi mep_cpextladdu3_b (cp_v8qi, cp_v8qi);
cp_v8qi mep_cpextuadd3_b (cp_v8qi, cp_v8qi); cp_v8qi mep_cpextuadd3_b (cp_v8qi, cp_v8qi);
cp_v8qi mep_cpextuaddu3_b (cp_v8qi, cp_v8qi); cp_v8qi mep_cpextuaddu3_b (cp_v8qi, cp_v8qi);
cp_v2si mep_cpssub3_w (cp_v2si, cp_v2si); cp_v2si mep_cpssub3_w (cp_v2si, cp_v2si); // volatile
cp_v4hi mep_cpssub3_h (cp_v4hi, cp_v4hi); cp_v4hi mep_cpssub3_h (cp_v4hi, cp_v4hi); // volatile
cp_v2si mep_cpsadd3_w (cp_v2si, cp_v2si); cp_v2si mep_cpsadd3_w (cp_v2si, cp_v2si); // volatile
cp_v4hi mep_cpsadd3_h (cp_v4hi, cp_v4hi); cp_v4hi mep_cpsadd3_h (cp_v4hi, cp_v4hi); // volatile
cp_v2si mep_cpsla3_w (cp_v2si, cp_v2si); cp_v2si mep_cpsla3_w (cp_v2si, cp_v2si); // volatile
cp_v4hi mep_cpsla3_h (cp_v4hi, cp_v4hi); cp_v4hi mep_cpsla3_h (cp_v4hi, cp_v4hi); // volatile
cp_data_bus_int mep_cdsll3 (cp_data_bus_int, cp_data_bus_int); cp_data_bus_int mep_cdsll3 (cp_data_bus_int, cp_data_bus_int);
cp_v2si mep_cpssll3_w (cp_v2si, cp_v2si); cp_v2si mep_cpssll3_w (cp_v2si, cp_v2si);
cp_v2si mep_cpsll3_w (cp_v2si, cp_v2si); cp_v2si mep_cpsll3_w (cp_v2si, cp_v2si);
...@@ -393,10 +393,10 @@ cp_v8qi mep_cpunpackl_b (cp_v8qi, cp_v8qi); ...@@ -393,10 +393,10 @@ cp_v8qi mep_cpunpackl_b (cp_v8qi, cp_v8qi);
cp_v2usi mep_cpunpacku_w (cp_v2usi, cp_v2usi); cp_v2usi mep_cpunpacku_w (cp_v2usi, cp_v2usi);
cp_v4uhi mep_cpunpacku_h (cp_v4uhi, cp_v4uhi); cp_v4uhi mep_cpunpacku_h (cp_v4uhi, cp_v4uhi);
cp_v8uqi mep_cpunpacku_b (cp_v8uqi, cp_v8uqi); cp_v8uqi mep_cpunpacku_b (cp_v8uqi, cp_v8uqi);
cp_data_bus_int mep_cpfsftbs1 (cp_data_bus_int, cp_data_bus_int); cp_data_bus_int mep_cpfsftbs1 (cp_data_bus_int, cp_data_bus_int); // volatile
cp_data_bus_int mep_cpfsftbs0 (cp_data_bus_int, cp_data_bus_int); cp_data_bus_int mep_cpfsftbs0 (cp_data_bus_int, cp_data_bus_int); // volatile
cp_data_bus_int mep_cpfsftbi (cp_data_bus_int, cp_data_bus_int, long); cp_data_bus_int mep_cpfsftbi (cp_data_bus_int, cp_data_bus_int, long);
cp_data_bus_int mep_cpsel (cp_data_bus_int, cp_data_bus_int); cp_data_bus_int mep_cpsel (cp_data_bus_int, cp_data_bus_int); // volatile
cp_vector mep_cpxor3 (cp_vector, cp_vector); cp_vector mep_cpxor3 (cp_vector, cp_vector);
cp_vector mep_cpnor3 (cp_vector, cp_vector); cp_vector mep_cpnor3 (cp_vector, cp_vector);
cp_vector mep_cpor3 (cp_vector, cp_vector); cp_vector mep_cpor3 (cp_vector, cp_vector);
...@@ -518,7 +518,7 @@ void mep_beqi (long, long, void *); ...@@ -518,7 +518,7 @@ void mep_beqi (long, long, void *);
void mep_bnez (long, void *); void mep_bnez (long, void *);
void mep_beqz (long, void *); void mep_beqz (long, void *);
void mep_bra (void *); void mep_bra (void *);
void mep_fsft (long*, long); void mep_fsft (long*, long); // volatile
void mep_sll3 (long*, long, long); void mep_sll3 (long*, long, long);
void mep_slli (long*, long); void mep_slli (long*, long);
void mep_srli (long*, long); void mep_srli (long*, long);
...@@ -555,7 +555,7 @@ void mep_movu24 (long*, long); ...@@ -555,7 +555,7 @@ void mep_movu24 (long*, long);
void mep_movi16 (long*, long); void mep_movi16 (long*, long);
void mep_movi8 (long*, long); void mep_movi8 (long*, long);
void mep_mov (long*, long); void mep_mov (long*, long);
void mep_ssarb (long, long); void mep_ssarb (long, long); // volatile
void mep_extuh (long*); void mep_extuh (long*);
void mep_extub (long*); void mep_extub (long*);
void mep_exth (long*); void mep_exth (long*);
......
...@@ -1379,7 +1379,7 @@ ...@@ -1379,7 +1379,7 @@
; Shift amount manipulation instructions. ; Shift amount manipulation instructions.
(dnci ssarb "set sar to bytes" ((STALL SSARB)) (dnci ssarb "set sar to bytes" ((STALL SSARB) VOLATILE)
"ssarb $udisp2($rm)" "ssarb $udisp2($rm)"
(+ MAJ_1 (f-4 0) (f-5 0) udisp2 rm (f-sub4 12)) (+ MAJ_1 (f-4 0) (f-5 0) udisp2 rm (f-sub4 12))
(if (c-call BI "big_endian_p") (if (c-call BI "big_endian_p")
...@@ -1676,7 +1676,7 @@ ...@@ -1676,7 +1676,7 @@
((mep (unit u-use-gpr (in usereg rn)) ((mep (unit u-use-gpr (in usereg rn))
(unit u-exec)))) (unit u-exec))))
(dnci fsft "field shift" ((STALL FSFT)) (dnci fsft "field shift" ((STALL FSFT) VOLATILE)
"fsft $rn,$rm" "fsft $rn,$rm"
(+ MAJ_2 rn rm (f-sub4 15)) (+ MAJ_2 rn rm (f-sub4 15))
(sequence ((DI temp) (QI shamt)) (sequence ((DI temp) (QI shamt))
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
#ifdef WANT_GCC_DECLARATIONS #ifdef WANT_GCC_DECLARATIONS
#define FIRST_SHADOW_REGISTER 113 #define FIRST_SHADOW_REGISTER 113
#define LAST_SHADOW_REGISTER 122 #define LAST_SHADOW_REGISTER 120
#define FIXED_SHADOW_REGISTERS \ #define FIXED_SHADOW_REGISTERS \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1
#define CALL_USED_SHADOW_REGISTERS FIXED_SHADOW_REGISTERS #define CALL_USED_SHADOW_REGISTERS FIXED_SHADOW_REGISTERS
#define SHADOW_REG_ALLOC_ORDER \ #define SHADOW_REG_ALLOC_ORDER \
113, 114, 115, 116, 117, 118, 119, 120, 121, 122 113, 114, 115, 116, 117, 118, 119, 120
#define SHADOW_REGISTER_NAMES \ #define SHADOW_REGISTER_NAMES \
"$shadow84", "$shadow81", "$shadow17", "$shadow40", "$shadow24", "$shadow23", "$shadow22", "$shadow21", "$shadow20", "$shadow18" "$shadow81", "$shadow17", "$shadow40", "$shadow24", "$shadow23", "$shadow22", "$shadow21", "$shadow20"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment