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

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

Issue 1826043002: S390: Fixed s390 simulation check for underflow in subtraction. (Closed) Base URL: https://github.com/v8/v8.git@master
Patch Set: Added a TODO re: indirect static casting Created 4 years, 9 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 | « no previous file | src/s390/simulator-s390.cc » ('j') | 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 // Declares a Simulator for S390 instructions if we are not generating a native 5 // Declares a Simulator for S390 instructions if we are not generating a native
6 // S390 binary. This Simulator allows us to run and debug S390 code generation 6 // S390 binary. This Simulator allows us to run and debug S390 code generation
7 // on regular desktop machines. 7 // on regular desktop machines.
8 // V8 calls into generated code by "calling" the CALL_GENERATED_CODE macro, 8 // V8 calls into generated code by "calling" the CALL_GENERATED_CODE macro,
9 // which will start execution in the Simulator or forwards to the real entry 9 // which will start execution in the Simulator or forwards to the real entry
10 // on a S390 hardware platform. 10 // on a S390 hardware platform.
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 // C code. 251 // C code.
252 end_sim_pc = -2 252 end_sim_pc = -2
253 }; 253 };
254 254
255 // Unsupported instructions use Format to print an error and stop execution. 255 // Unsupported instructions use Format to print an error and stop execution.
256 void Format(Instruction* instr, const char* format); 256 void Format(Instruction* instr, const char* format);
257 257
258 // Helper functions to set the conditional flags in the architecture state. 258 // Helper functions to set the conditional flags in the architecture state.
259 bool CarryFrom(int32_t left, int32_t right, int32_t carry = 0); 259 bool CarryFrom(int32_t left, int32_t right, int32_t carry = 0);
260 bool BorrowFrom(int32_t left, int32_t right); 260 bool BorrowFrom(int32_t left, int32_t right);
261 bool OverflowFrom(int32_t alu_out, int32_t left, int32_t right, 261 template <typename T1>
262 bool addition); 262 inline bool OverflowFromSigned(T1 alu_out, T1 left, T1 right, bool addition);
263 263
264 // Helper functions to decode common "addressing" modes 264 // Helper functions to decode common "addressing" modes
265 int32_t GetShiftRm(Instruction* instr, bool* carry_out); 265 int32_t GetShiftRm(Instruction* instr, bool* carry_out);
266 int32_t GetImm(Instruction* instr, bool* carry_out); 266 int32_t GetImm(Instruction* instr, bool* carry_out);
267 void ProcessPUW(Instruction* instr, int num_regs, int operand_size, 267 void ProcessPUW(Instruction* instr, int num_regs, int operand_size,
268 intptr_t* start_address, intptr_t* end_address); 268 intptr_t* start_address, intptr_t* end_address);
269 void HandleRList(Instruction* instr, bool load); 269 void HandleRList(Instruction* instr, bool load);
270 void HandleVList(Instruction* inst); 270 void HandleVList(Instruction* inst);
271 void SoftwareInterrupt(Instruction* instr); 271 void SoftwareInterrupt(Instruction* instr);
272 272
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 static inline void UnregisterCTryCatch(v8::internal::Isolate* isolate) { 525 static inline void UnregisterCTryCatch(v8::internal::Isolate* isolate) {
526 Simulator::current(isolate)->PopAddress(); 526 Simulator::current(isolate)->PopAddress();
527 } 527 }
528 }; 528 };
529 529
530 } // namespace internal 530 } // namespace internal
531 } // namespace v8 531 } // namespace v8
532 532
533 #endif // !defined(USE_SIMULATOR) 533 #endif // !defined(USE_SIMULATOR)
534 #endif // V8_S390_SIMULATOR_S390_H_ 534 #endif // V8_S390_SIMULATOR_S390_H_
OLDNEW
« no previous file with comments | « no previous file | src/s390/simulator-s390.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698