* configure.ac: Added option --enable-replacement.
[cacao.git] / src / vm / jit / sparc64 / emit.c
index 4b02a9e7e03b93816a2b5c1f185196b88950f3da..0a431ceee29f8ddba56e292a53b49c53cdd75418 100644 (file)
@@ -150,7 +150,7 @@ void emit_copy(jitdata *jd, instruction *iptr, varinfo *src, varinfo *dst)
 
                if (s1 != d) {
                        if (IS_FLT_DBL_TYPE(src->type))
-                               M_FMOV(s1, d);
+                               M_DMOV(s1, d);
                else
                                M_MOV(s1, d);
                }
@@ -171,7 +171,7 @@ void emit_iconst(codegendata *cd, s4 d, s4 value)
        s4 disp;
 
        if ((value >= -4096) && (value <= 4095)) {
-               M_XOR(REG_ZERO, value, d);
+               M_XOR_IMM(REG_ZERO, value, d);
        } else {
                disp = dseg_add_s4(cd, value);
                M_ILD(d, REG_PV_CALLEE, disp);
@@ -190,13 +190,32 @@ void emit_lconst(codegendata *cd, s4 d, s8 value)
        s4 disp;
 
        if ((value >= -4096) && (value <= 4095)) {
-               M_XOR(REG_ZERO, value, d);      
+               M_XOR_IMM(REG_ZERO, value, d);  
        } else {
                disp = dseg_add_s8(cd, value);
                M_LDX(d, REG_PV_CALLEE, disp);
        }
 }
 
+/* emit_arrayindexoutofbounds_check ********************************************
+
+   Emit an ArrayIndexOutOfBoundsException check.
+
+*******************************************************************************/
+
+void emit_arrayindexoutofbounds_check(codegendata *cd, s4 s1, s4 s2)
+{
+}
+
+/* emit_nullpointer_check ******************************************************
+
+   Emit a NullPointerException check.
+
+*******************************************************************************/
+
+void emit_nullpointer_check(codegendata *cd, s4 reg)
+{
+}
 
 /* emit_exception_stubs ********************************************************
 
@@ -345,9 +364,11 @@ void emit_patcher_stubs(jitdata *jd)
 
 *******************************************************************************/
 
+#if defined(ENABLE_REPLACEMENT)
 void emit_replacement_stubs(jitdata *jd)
 {
 }
+#endif /* defined(ENABLE_REPLACEMENT) */
 
 /* emit_verbosecall_enter ******************************************************
 
@@ -409,8 +430,8 @@ void emit_verbosecall_enter(jitdata *jd)
                                M_LDX(rd->argintregs[i], REG_SP, USESTACK_PARAMS);
                        }
                        else {
-                               M_DST(rd->argfltregs[i], REG_SP, USESTACK_PARAMS);
-                               M_LDX(rd->argintregs[i], REG_SP, USESTACK_PARAMS);
+                               M_FST(rd->argfltregs[i], REG_SP, USESTACK_PARAMS);
+                               M_ILD(rd->argintregs[i], REG_SP, USESTACK_PARAMS);
                        }
                }
        }
@@ -481,8 +502,7 @@ void emit_verbosecall_exit(jitdata *jd)
        M_ALD(rd->argintregs[0], REG_PV_CALLEE, disp);
 
        M_MOV(REG_RESULT_CALLEE, rd->argintregs[1]);
-       M_DMOV(REG_FRESULT, rd->argfltregs[2]);
-       M_FMOV(REG_FRESULT, rd->argfltregs[3]);
+       M_DMOV(REG_FRESULT, 2); /* applies for flt and dbl values */
 
        disp = dseg_add_functionptr(cd, builtin_displaymethodstop);
        M_ALD(REG_ITMP3, REG_PV_CALLEE, disp);