2006-07-08 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / inssel-ppc.brg
index b3dfa7c307b605293db35b114c4209dda22c2dcf..a1883912efd1981e87e16d4826420581dec8538c 100644 (file)
@@ -274,6 +274,16 @@ stmt: OP_OUTARG_R8 (freg) {
        mono_bblock_add_inst (s->cbb, tree);
 }
 
+stmt: OP_OUTARG_R8 (CEE_LDOBJ (base)) {
+       /* small struct with fp value goes in a fp register */
+       MonoInst *vt = state->left->left->tree;
+       int tmpr, soffset;
+       soffset = vt->inst_offset;
+       tmpr = mono_regstate_next_float (s->rs);
+       MONO_EMIT_NEW_LOAD_MEMBASE_OP (s, OP_LOADR4_MEMBASE, tmpr, vt->inst_basereg, soffset);
+       MONO_EMIT_NEW_UNALU (s, OP_SETFREG, tree->unused, tmpr);
+}
+
 stmt: OP_OUTARG_VT (CEE_LDOBJ (base)) {
        MonoInst *vt = state->left->left->tree;
        int start_reg = tree->unused & 0xff;