Browse Source

Merge pull request #2019 from directhex/powerpc-fixes

Add move_f_to_i4 and move_i4_to_f to PowerPC
Alex Rønne Petersen 10 years ago
parent
commit
253fbf893b
2 changed files with 10 additions and 0 deletions
  1. 2 0
      mono/mini/cpu-ppc.md
  2. 8 0
      mono/mini/mini-ppc.c

+ 2 - 0
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

+ 8 - 0
mono/mini/mini-ppc.c

@@ -3746,6 +3746,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;