* Removed all Id tags.
[cacao.git] / src / vm / jit / sparc64 / md-asm.h
index 0dcf47593fb5a51986ea1f7d88404ccae477f0e3..907f292e2f09df59cc79f9feb58a73c00fdba23e 100644 (file)
@@ -29,8 +29,6 @@
 
    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 */