Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Side by Side Diff: src/s390/simulator-s390.cc

Issue 2244373002: s390: Allow larger Operands/Displacements/Offsets in s390 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/s390/disasm-s390.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « src/s390/disasm-s390.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698