* src/vm/jit/alpha/codegen.c (codegen_emit_stub_native): Save and
authorChristian Thalinger <twisti@complang.tuwien.ac.at>
Fri, 21 Sep 2007 10:37:12 +0000 (12:37 +0200)
committerChristian Thalinger <twisti@complang.tuwien.ac.at>
Fri, 21 Sep 2007 10:37:12 +0000 (12:37 +0200)
restore floats as float so the trace functions can print them
correctly.

src/vm/jit/alpha/codegen.c

index a42de2f5b53c216c43b6f3400ef72879e4683811..0c05829ec4da8291204d5daa096180f2c6754c72 100644 (file)
@@ -3184,6 +3184,8 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f, int s
                                M_LST(s1, REG_SP, i * 8);
                                break;
                        case TYPE_FLT:
+                               M_FST(s1, REG_SP, i * 8);
+                               break;
                        case TYPE_DBL:
                                M_DST(s1, REG_SP, i * 8);
                                break;
@@ -3219,6 +3221,8 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f, int s
                                M_LLD(s1, REG_SP, i * 8);
                                break;
                        case TYPE_FLT:
+                               M_FLD(s1, REG_SP, i * 8);
+                               break;
                        case TYPE_DBL:
                                M_DLD(s1, REG_SP, i * 8);
                                break;
@@ -3304,6 +3308,8 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f, int s
                M_LST(REG_RESULT, REG_SP, 0 * 8);
                break;
        case TYPE_FLT:
+               M_FST(REG_FRESULT, REG_SP, 0 * 8);
+               break;
        case TYPE_DBL:
                M_DST(REG_FRESULT, REG_SP, 0 * 8);
                break;
@@ -3331,6 +3337,8 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f, int s
                M_LLD(REG_RESULT, REG_SP, 0 * 8);
                break;
        case TYPE_FLT:
+               M_FLD(REG_FRESULT, REG_SP, 0 * 8);
+               break;
        case TYPE_DBL:
                M_DLD(REG_FRESULT, REG_SP, 0 * 8);
                break;