summaryrefslogtreecommitdiff
path: root/mono
diff options
context:
space:
mode:
Diffstat (limited to 'mono')
-rw-r--r--mono/mini/cpu-ppc.md2
-rw-r--r--mono/mini/mini-ppc.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/mono/mini/cpu-ppc.md b/mono/mini/cpu-ppc.md
index e6baf9148f..8109c232b0 100644
--- a/mono/mini/cpu-ppc.md
+++ b/mono/mini/cpu-ppc.md
@@ -128,6 +128,8 @@ storer8_memindex: dest:b src1:i src2:i len:4
loadu4_mem: dest:i len:8
move: dest:i src1:i len:4
fmove: dest:f src1:f len:4
+move_f_to_i4: dest:i src1:f len:8
+move_i4_to_f: dest:f src1:i len:8
add_imm: dest:i src1:i len:4
sub_imm: dest:i src1:i len:4
mul_imm: dest:i src1:i len:4
diff --git a/mono/mini/mini-ppc.c b/mono/mini/mini-ppc.c
index 8748c93174..4d8fc14742 100644
--- a/mono/mini/mini-ppc.c
+++ b/mono/mini/mini-ppc.c
@@ -3745,6 +3745,14 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
if (ins->dreg != ins->sreg1)
ppc_fmr (code, ins->dreg, ins->sreg1);
break;
+ case OP_MOVE_F_TO_I4:
+ ppc_stfs (code, ins->sreg1, -4, ppc_r1);
+ ppc_ldptr (code, ins->dreg, -4, ppc_r1);
+ break;
+ case OP_MOVE_I4_TO_F:
+ ppc_stw (code, ins->sreg1, -4, ppc_r1);
+ ppc_lfs (code, ins->dreg, -4, ppc_r1);
+ break;
case OP_FCONV_TO_R4:
ppc_frsp (code, ins->dreg, ins->sreg1);
break;