diff options
| -rw-r--r-- | sparse-llvm.c | 15 | ||||
| -rw-r--r-- | validation/backend/binops.c | 2 |
2 files changed, 13 insertions, 4 deletions
diff --git a/sparse-llvm.c b/sparse-llvm.c index d15d3f6c..c13ab5d2 100644 --- a/sparse-llvm.c +++ b/sparse-llvm.c @@ -271,10 +271,19 @@ static void output_insn(struct function *fn, struct instruction *insn) case OP_CALL: assert(0); break; - case OP_CAST: - assert(0); + case OP_CAST: { + LLVMValueRef src, target; + char target_name[64]; + + src = insn->src->priv; + + pseudo_name(insn->target, target_name); + + target = LLVMBuildIntCast(fn->builder, src, symbol_type(insn->type), target_name); + + insn->target->priv = target; break; - case OP_SCAST: + } case OP_SCAST: assert(0); break; case OP_FPCAST: diff --git a/validation/backend/binops.c b/validation/backend/binops.c index bebefb5b..4c941380 100644 --- a/validation/backend/binops.c +++ b/validation/backend/binops.c @@ -118,6 +118,7 @@ static unsigned int uor_bool(unsigned int x, unsigned int y) { return x || y; } +#endif static int sete(int x, int y) { @@ -138,7 +139,6 @@ static int setg(int x, int y) { return x > y; } -#endif /* * check-name: binary op code generation |
