Index: src/s390/simulator-s390.cc |
diff --git a/src/s390/simulator-s390.cc b/src/s390/simulator-s390.cc |
index de2165ebac0d041efc7baac7403cf2fe8f53bc9e..3d11bacfdcc064897be0f0fb45265c8341249378 100644 |
--- a/src/s390/simulator-s390.cc |
+++ b/src/s390/simulator-s390.cc |
@@ -7837,9 +7837,10 @@ EVALUATE(LARL) { |
} |
EVALUATE(LGFI) { |
- UNIMPLEMENTED(); |
- USE(instr); |
- return 0; |
+ DCHECK_OPCODE(LGFI); |
+ DECODE_RIL_A_INSTRUCTION(r1, imm); |
+ set_register(r1, static_cast<int64_t>(static_cast<int32_t>(imm))); |
+ return length; |
} |
EVALUATE(BRASL) { |
@@ -10499,7 +10500,7 @@ EVALUATE(POPCNT_Z) { |
} |
EVALUATE(LOCGR) { |
- DCHECK_OPCODE(LOCR); |
+ DCHECK_OPCODE(LOCGR); |
DECODE_RRF_C_INSTRUCTION(r1, r2, m3); |
if (TestConditionCode(m3)) { |
set_register(r1, get_register(r2)); |