Changes:
- $Id: md-asm.h 4498 2006-02-12 23:43:09Z twisti $
-
*/
#ifndef _MD_ASM_H
#define itmp2 %g2
#define itmp3 %g3
+/* PLT unsafe temp regs */
+#define temp4 %g4
+#define temp5 %g5
+
#define mptr_itmp2 itmp2
#define xptr_itmp2 itmp2
#define ft6 %f14
#define fa0 %f16
+#define fa0f %f17
#define fa1 %f18
+#define fa1f %f19
#define fa2 %f20
+#define fa2f %f21
#define fa3 %f22
-#define fs0 %f24
-#define fs1 %f26
-#define fs2 %f28
-#define fs3 %f30
+#define fa3f %f23
+#define fa4 %f24
+#define fa4f %f25
+#define ft7 %f26
+#define ft8 %f28
+#define ft9 %f30
#define bias 2047
/* save and restore macros ****************************************************/
+#define SAVE_FLOAT_RETURN_REGISTER(off) \
+ std fv0,[%sp + bias + ((off)*8)] ;
+
+#define RESTORE_FLOAT_RETURN_REGISTER(off) \
+ ldd [%sp + bias + ((off)*8)],fv0 ;
+
#define SAVE_FLOAT_ARGUMENT_REGISTERS(off) \
std fa0,[%sp + bias + ((0+(off))*8)] ; \
std fa1,[%sp + bias + ((1+(off))*8)] ; \
std fa2,[%sp + bias + ((2+(off))*8)] ; \
- std fa3,[%sp + bias + ((3+(off))*8)]
+ std fa3,[%sp + bias + ((3+(off))*8)] ; \
+ std fa4,[%sp + bias + ((4+(off))*8)] ;
#define RESTORE_FLOAT_ARGUMENT_REGISTERS(off) \
ldd [%sp + bias + ((1+(off))*8)],fa1 ; \
ldd [%sp + bias + ((2+(off))*8)],fa2 ; \
ldd [%sp + bias + ((3+(off))*8)],fa3 ; \
+ ldd [%sp + bias + ((4+(off))*8)],fa4 ;
+
+#define SAVE_FLOAT_TEMPORARY_REGISTERS(off) \
+ std ft0,[%sp + bias + ((0+(off))*8)] ; \
+ std ft1,[%sp + bias + ((1+(off))*8)] ; \
+ std ft2,[%sp + bias + ((2+(off))*8)] ; \
+ std ft3,[%sp + bias + ((3+(off))*8)] ; \
+ std ft4,[%sp + bias + ((4+(off))*8)] ; \
+ std ft5,[%sp + bias + ((5+(off))*8)] ; \
+ std ft6,[%sp + bias + ((6+(off))*8)] ; \
+ std ft7,[%sp + bias + ((7+(off))*8)] ; \
+ std ft8,[%sp + bias + ((8+(off))*8)] ; \
+ std ft9,[%sp + bias + ((9+(off))*8)] ; \
+
+#define RESTORE_FLOAT_TEMPORARY_REGISTERS(off) \
+ ldd [%sp + bias + ((0+(off))*8)],ft0 ; \
+ ldd [%sp + bias + ((1+(off))*8)],ft1 ; \
+ ldd [%sp + bias + ((2+(off))*8)],ft2 ; \
+ ldd [%sp + bias + ((3+(off))*8)],ft3 ; \
+ ldd [%sp + bias + ((4+(off))*8)],ft4 ; \
+ ldd [%sp + bias + ((5+(off))*8)],ft5 ; \
+ ldd [%sp + bias + ((6+(off))*8)],ft6 ; \
+ ldd [%sp + bias + ((7+(off))*8)],ft7 ; \
+ ldd [%sp + bias + ((8+(off))*8)],ft8 ; \
+ ldd [%sp + bias + ((9+(off))*8)],ft9 ; \
-
#endif /* _MD_ASM_H */