diff options
Diffstat (limited to 'src/ir_print.cpp')
| -rw-r--r-- | src/ir_print.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ir_print.cpp b/src/ir_print.cpp index f8adc1e38..e24859413 100644 --- a/src/ir_print.cpp +++ b/src/ir_print.cpp @@ -1344,9 +1344,15 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) { case Token_Or: ir_write_str_lit(f, "or"); break; case Token_Xor: ir_write_str_lit(f, "xor"); break; case Token_Shl: ir_write_str_lit(f, "shl"); break; - case Token_Shr: ir_write_str_lit(f, "lshr"); break; case Token_Mul: ir_write_str_lit(f, "mul"); break; case Token_Not: ir_write_str_lit(f, "xor"); break; + case Token_Shr: + if (is_type_unsigned(elem_type)) { + ir_write_str_lit(f, "lshr"); + } else { + ir_write_str_lit(f, "ashr"); + } + break; case Token_AndNot: GB_PANIC("Token_AndNot Should never be called"); |