X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-ppc.c;h=4ba20cc2257e31ff9ad4e154ca7267b2b939d124;hb=499e5ea2b2211388c0b7a624583daad0232eaf60;hp=60d9475dfe31a8b80b1b5322a8026008b4ad94ee;hpb=d295ab661864a5dee77a97d298bf2dde09c94de1;p=mono.git diff --git a/mono/mini/mini-ppc.c b/mono/mini/mini-ppc.c index 60d9475dfe3..4ba20cc2257 100644 --- a/mono/mini/mini-ppc.c +++ b/mono/mini/mini-ppc.c @@ -4371,15 +4371,17 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb) ppc_fcmpu (code, 0, ins->sreg1, ins->sreg2); break; case OP_FCEQ: + case OP_FCNEQ: ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2); - ppc_li (code, ins->dreg, 0); - ppc_bc (code, PPC_BR_FALSE, PPC_BR_EQ, 2); ppc_li (code, ins->dreg, 1); + ppc_bc (code, ins->opcode == OP_FCEQ ? PPC_BR_TRUE : PPC_BR_FALSE, PPC_BR_EQ, 2); + ppc_li (code, ins->dreg, 0); break; case OP_FCLT: + case OP_FCGE: ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2); ppc_li (code, ins->dreg, 1); - ppc_bc (code, PPC_BR_TRUE, PPC_BR_LT, 2); + ppc_bc (code, ins->opcode == OP_FCLT ? PPC_BR_TRUE : PPC_BR_FALSE, PPC_BR_LT, 2); ppc_li (code, ins->dreg, 0); break; case OP_FCLT_UN: @@ -4390,9 +4392,10 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb) ppc_li (code, ins->dreg, 0); break; case OP_FCGT: + case OP_FCLE: ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2); ppc_li (code, ins->dreg, 1); - ppc_bc (code, PPC_BR_TRUE, PPC_BR_GT, 2); + ppc_bc (code, ins->opcode == OP_FCGT ? PPC_BR_TRUE : PPC_BR_FALSE, PPC_BR_GT, 2); ppc_li (code, ins->dreg, 0); break; case OP_FCGT_UN: