OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdarg.h> | 5 #include <stdarg.h> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 #include <cmath> | 7 #include <cmath> |
8 | 8 |
9 #if V8_TARGET_ARCH_S390 | 9 #if V8_TARGET_ARCH_S390 |
10 | 10 |
(...skipping 7819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7830 | 7830 |
7831 EVALUATE(LARL) { | 7831 EVALUATE(LARL) { |
7832 DCHECK_OPCODE(LARL); | 7832 DCHECK_OPCODE(LARL); |
7833 DECODE_RIL_B_INSTRUCTION(r1, i2); | 7833 DECODE_RIL_B_INSTRUCTION(r1, i2); |
7834 intptr_t offset = i2 * 2; | 7834 intptr_t offset = i2 * 2; |
7835 set_register(r1, get_pc() + offset); | 7835 set_register(r1, get_pc() + offset); |
7836 return length; | 7836 return length; |
7837 } | 7837 } |
7838 | 7838 |
7839 EVALUATE(LGFI) { | 7839 EVALUATE(LGFI) { |
7840 UNIMPLEMENTED(); | 7840 DCHECK_OPCODE(LGFI); |
7841 USE(instr); | 7841 DECODE_RIL_A_INSTRUCTION(r1, imm); |
7842 return 0; | 7842 set_register(r1, static_cast<int64_t>(static_cast<int32_t>(imm))); |
| 7843 return length; |
7843 } | 7844 } |
7844 | 7845 |
7845 EVALUATE(BRASL) { | 7846 EVALUATE(BRASL) { |
7846 DCHECK_OPCODE(BRASL); | 7847 DCHECK_OPCODE(BRASL); |
7847 // Branch and Save Relative Long | 7848 // Branch and Save Relative Long |
7848 DECODE_RIL_B_INSTRUCTION(r1, i2); | 7849 DECODE_RIL_B_INSTRUCTION(r1, i2); |
7849 intptr_t d2 = i2; | 7850 intptr_t d2 = i2; |
7850 intptr_t pc = get_pc(); | 7851 intptr_t pc = get_pc(); |
7851 set_register(r1, pc + 6); // save next instruction to register | 7852 set_register(r1, pc + 6); // save next instruction to register |
7852 set_pc(pc + d2 * 2); // update register | 7853 set_pc(pc + d2 * 2); // update register |
(...skipping 2639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10492 r1_val_ptr[i] = __builtin_popcount(x); | 10493 r1_val_ptr[i] = __builtin_popcount(x); |
10493 #else | 10494 #else |
10494 #error unsupport __builtin_popcount | 10495 #error unsupport __builtin_popcount |
10495 #endif | 10496 #endif |
10496 } | 10497 } |
10497 set_register(r1, static_cast<uint64_t>(r1_val)); | 10498 set_register(r1, static_cast<uint64_t>(r1_val)); |
10498 return length; | 10499 return length; |
10499 } | 10500 } |
10500 | 10501 |
10501 EVALUATE(LOCGR) { | 10502 EVALUATE(LOCGR) { |
10502 DCHECK_OPCODE(LOCR); | 10503 DCHECK_OPCODE(LOCGR); |
10503 DECODE_RRF_C_INSTRUCTION(r1, r2, m3); | 10504 DECODE_RRF_C_INSTRUCTION(r1, r2, m3); |
10504 if (TestConditionCode(m3)) { | 10505 if (TestConditionCode(m3)) { |
10505 set_register(r1, get_register(r2)); | 10506 set_register(r1, get_register(r2)); |
10506 } | 10507 } |
10507 return length; | 10508 return length; |
10508 } | 10509 } |
10509 | 10510 |
10510 EVALUATE(NGRK) { | 10511 EVALUATE(NGRK) { |
10511 DCHECK_OPCODE(NGRK); | 10512 DCHECK_OPCODE(NGRK); |
10512 DECODE_RRF_A_INSTRUCTION(r1, r2, r3); | 10513 DECODE_RRF_A_INSTRUCTION(r1, r2, r3); |
(...skipping 2084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12597 return 0; | 12598 return 0; |
12598 } | 12599 } |
12599 | 12600 |
12600 #undef EVALUATE | 12601 #undef EVALUATE |
12601 | 12602 |
12602 } // namespace internal | 12603 } // namespace internal |
12603 } // namespace v8 | 12604 } // namespace v8 |
12604 | 12605 |
12605 #endif // USE_SIMULATOR | 12606 #endif // USE_SIMULATOR |
12606 #endif // V8_TARGET_ARCH_S390 | 12607 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |