Index: src/s390/simulator-s390.cc |
diff --git a/src/s390/simulator-s390.cc b/src/s390/simulator-s390.cc |
index 151d4c124475bdf43afeaae020547fa9aa83aaac..fba02e77a1eb2c581591ac5588da647a3c720a64 100644 |
--- a/src/s390/simulator-s390.cc |
+++ b/src/s390/simulator-s390.cc |
@@ -10367,9 +10367,13 @@ EVALUATE(FLOGR) { |
} |
EVALUATE(LLGCR) { |
- UNIMPLEMENTED(); |
- USE(instr); |
- return 0; |
+ DCHECK_OPCODE(LLGCR); |
+ DECODE_RRE_INSTRUCTION(r1, r2); |
+ uint64_t r2_val = get_low_register<uint64_t>(r2); |
+ r2_val <<= 56; |
+ r2_val >>= 56; |
+ set_register(r1, r2_val); |
+ return length; |
} |
EVALUATE(LLGHR) { |
@@ -10447,9 +10451,13 @@ EVALUATE(TROO) { |
} |
EVALUATE(LLCR) { |
- UNIMPLEMENTED(); |
- USE(instr); |
- return 0; |
+ DCHECK_OPCODE(LLCR); |
+ DECODE_RRE_INSTRUCTION(r1, r2); |
+ uint32_t r2_val = get_low_register<uint32_t>(r2); |
+ r2_val <<= 24; |
+ r2_val >>= 24; |
+ set_low_register(r1, r2_val); |
+ return length; |
} |
EVALUATE(LLHR) { |