Convert the argument of OP_INOT to int in the llvm backend. Fixes #6377.
authorZoltan Varga <vargaz@gmail.com>
Fri, 3 Aug 2012 14:00:06 +0000 (10:00 -0400)
committerZoltan Varga <vargaz@gmail.com>
Fri, 3 Aug 2012 14:00:19 +0000 (10:00 -0400)
mono/mini/mini-llvm.c

index cbf206ede370b2a16c19a3465d146a5cb4d09b20..d6355faf5f3bca20d1dc3af51e6a59c37c3d4edb 100755 (executable)
@@ -2775,7 +2775,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        break;
                case OP_INOT: {
                        guint32 v = 0xffffffff;
                        break;
                case OP_INOT: {
                        guint32 v = 0xffffffff;
-                       values [ins->dreg] = LLVMBuildXor (builder, LLVMConstInt (LLVMInt32Type (), v, FALSE), lhs, dname);
+                       values [ins->dreg] = LLVMBuildXor (builder, LLVMConstInt (LLVMInt32Type (), v, FALSE), convert (ctx, lhs, LLVMInt32Type ()), dname);
                        break;
                }
                case OP_LNOT: {
                        break;
                }
                case OP_LNOT: {