|
@@ -1386,12 +1386,27 @@ do { \
|
|
|
__res; \
|
|
|
})
|
|
|
|
|
|
+#define _write_32bit_cp1_register(dest, val, gas_hardfloat) \
|
|
|
+do { \
|
|
|
+ __asm__ __volatile__( \
|
|
|
+ " .set push \n" \
|
|
|
+ " .set reorder \n" \
|
|
|
+ " "STR(gas_hardfloat)" \n" \
|
|
|
+ " ctc1 %0,"STR(dest)" \n" \
|
|
|
+ " .set pop \n" \
|
|
|
+ : : "r" (val)); \
|
|
|
+} while (0)
|
|
|
+
|
|
|
#ifdef GAS_HAS_SET_HARDFLOAT
|
|
|
#define read_32bit_cp1_register(source) \
|
|
|
_read_32bit_cp1_register(source, .set hardfloat)
|
|
|
+#define write_32bit_cp1_register(dest, val) \
|
|
|
+ _write_32bit_cp1_register(dest, val, .set hardfloat)
|
|
|
#else
|
|
|
#define read_32bit_cp1_register(source) \
|
|
|
_read_32bit_cp1_register(source, )
|
|
|
+#define write_32bit_cp1_register(dest, val) \
|
|
|
+ _write_32bit_cp1_register(dest, val, )
|
|
|
#endif
|
|
|
|
|
|
#ifdef HAVE_AS_DSP
|