mirror of
https://github.com/danog/ir.git
synced 2024-11-26 20:34:53 +01:00
Fix incorrect conditions
This commit is contained in:
parent
25ab83e5a3
commit
daf659a457
@ -2257,16 +2257,16 @@ static void ir_emit_min_max_int(ir_ctx *ctx, ir_ref def, ir_insn *insn)
|
|||||||
| ASM_REG_REG_OP cmp, type, def_reg, op2_reg
|
| ASM_REG_REG_OP cmp, type, def_reg, op2_reg
|
||||||
if (insn->op == IR_MIN) {
|
if (insn->op == IR_MIN) {
|
||||||
if (IR_IS_TYPE_SIGNED(type)) {
|
if (IR_IS_TYPE_SIGNED(type)) {
|
||||||
| ASM_REG_REG_OP2 cmovl, type, def_reg, op2_reg
|
| ASM_REG_REG_OP2 cmovg, type, def_reg, op2_reg
|
||||||
} else {
|
} else {
|
||||||
| ASM_REG_REG_OP2 cmovb, type, def_reg, op2_reg
|
| ASM_REG_REG_OP2 cmova, type, def_reg, op2_reg
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
IR_ASSERT(insn->op == IR_MAX);
|
IR_ASSERT(insn->op == IR_MAX);
|
||||||
if (IR_IS_TYPE_SIGNED(type)) {
|
if (IR_IS_TYPE_SIGNED(type)) {
|
||||||
| ASM_REG_REG_OP2 cmovg, type, def_reg, op2_reg
|
|
||||||
} else {
|
|
||||||
| ASM_REG_REG_OP2 cmova, type, def_reg, op2_reg
|
| ASM_REG_REG_OP2 cmova, type, def_reg, op2_reg
|
||||||
|
} else {
|
||||||
|
| ASM_REG_REG_OP2 cmovg, type, def_reg, op2_reg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,6 @@ test:
|
|||||||
movl 4(%esp), %eax
|
movl 4(%esp), %eax
|
||||||
movl 8(%esp), %ecx
|
movl 8(%esp), %ecx
|
||||||
cmpl %eax, %ecx
|
cmpl %eax, %ecx
|
||||||
cmovll %eax, %ecx
|
cmovgl %eax, %ecx
|
||||||
movl %ecx, %eax
|
movl %ecx, %eax
|
||||||
retl
|
retl
|
||||||
|
@ -17,6 +17,6 @@ test:
|
|||||||
movb 4(%esp), %al
|
movb 4(%esp), %al
|
||||||
movb 8(%esp), %cl
|
movb 8(%esp), %cl
|
||||||
cmpb %al, %cl
|
cmpb %al, %cl
|
||||||
cmovbw %ax, %cx
|
cmovaw %ax, %cx
|
||||||
movb %cl, %al
|
movb %cl, %al
|
||||||
retl
|
retl
|
||||||
|
@ -17,5 +17,5 @@ test:
|
|||||||
movl 4(%esp), %eax
|
movl 4(%esp), %eax
|
||||||
movl $0x2f, %ecx
|
movl $0x2f, %ecx
|
||||||
cmpl %ecx, %eax
|
cmpl %ecx, %eax
|
||||||
cmovll %ecx, %eax
|
cmovgl %ecx, %eax
|
||||||
retl
|
retl
|
||||||
|
@ -16,5 +16,5 @@ x86_64
|
|||||||
test:
|
test:
|
||||||
movl %esi, %eax
|
movl %esi, %eax
|
||||||
cmpl %edi, %eax
|
cmpl %edi, %eax
|
||||||
cmovll %edi, %eax
|
cmovgl %edi, %eax
|
||||||
retq
|
retq
|
||||||
|
@ -16,5 +16,5 @@ x86_64
|
|||||||
test:
|
test:
|
||||||
movb %sil, %al
|
movb %sil, %al
|
||||||
cmpb %dil, %al
|
cmpb %dil, %al
|
||||||
cmovbw %di, %ax
|
cmovaw %di, %ax
|
||||||
retq
|
retq
|
||||||
|
@ -17,5 +17,5 @@ test:
|
|||||||
movl %edi, %eax
|
movl %edi, %eax
|
||||||
movl $0x2f, %ecx
|
movl $0x2f, %ecx
|
||||||
cmpl %ecx, %eax
|
cmpl %ecx, %eax
|
||||||
cmovll %ecx, %eax
|
cmovgl %ecx, %eax
|
||||||
retq
|
retq
|
||||||
|
Loading…
Reference in New Issue
Block a user