projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[ppc] add native type support for float
[mono.git]
/
mono
/
mini
/
mini-ppc.c
diff --git
a/mono/mini/mini-ppc.c
b/mono/mini/mini-ppc.c
index 60d9475dfe31a8b80b1b5322a8026008b4ad94ee..4ba20cc2257e31ff9ad4e154ca7267b2b939d124 100644
(file)
--- 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:
ppc_fcmpu (code, 0, ins->sreg1, ins->sreg2);
break;
case OP_FCEQ:
+ case OP_FCNEQ:
ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2);
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_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:
break;
case OP_FCLT:
+ case OP_FCGE:
ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2);
ppc_li (code, ins->dreg, 1);
ppc_fcmpo (code, 0, ins->sreg1, ins->sreg2);
ppc_li (code, ins->dreg, 1);
- ppc_bc (code,
PPC_BR_TRU
E, PPC_BR_LT, 2);
+ ppc_bc (code,
ins->opcode == OP_FCLT ? PPC_BR_TRUE : PPC_BR_FALS
E, PPC_BR_LT, 2);
ppc_li (code, ins->dreg, 0);
break;
case OP_FCLT_UN:
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:
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_fcmpo (code, 0, ins->sreg1, ins->sreg2);
ppc_li (code, ins->dreg, 1);
- ppc_bc (code,
PPC_BR_TRU
E, PPC_BR_GT, 2);
+ ppc_bc (code,
ins->opcode == OP_FCGT ? PPC_BR_TRUE : PPC_BR_FALS
E, PPC_BR_GT, 2);
ppc_li (code, ins->dreg, 0);
break;
case OP_FCGT_UN:
ppc_li (code, ins->dreg, 0);
break;
case OP_FCGT_UN: