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 | 5 |
6 // Declares a Simulator for PPC instructions if we are not generating a native | 6 // Declares a Simulator for PPC instructions if we are not generating a native |
7 // PPC binary. This Simulator allows us to run and debug PPC code generation on | 7 // PPC binary. This Simulator allows us to run and debug PPC code generation on |
8 // regular desktop machines. | 8 // regular desktop machines. |
9 // V8 calls into generated code by "calling" the CALL_GENERATED_CODE macro, | 9 // V8 calls into generated code by "calling" the CALL_GENERATED_CODE macro, |
10 // which will start execution in the Simulator or forwards to the real entry | 10 // which will start execution in the Simulator or forwards to the real entry |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 bool ExecuteExt2_9bit_part2(Instruction* instr); | 316 bool ExecuteExt2_9bit_part2(Instruction* instr); |
317 void ExecuteExt2_5bit(Instruction* instr); | 317 void ExecuteExt2_5bit(Instruction* instr); |
318 void ExecuteExt2(Instruction* instr); | 318 void ExecuteExt2(Instruction* instr); |
319 void ExecuteExt3(Instruction* instr); | 319 void ExecuteExt3(Instruction* instr); |
320 void ExecuteExt4(Instruction* instr); | 320 void ExecuteExt4(Instruction* instr); |
321 #if V8_TARGET_ARCH_PPC64 | 321 #if V8_TARGET_ARCH_PPC64 |
322 void ExecuteExt5(Instruction* instr); | 322 void ExecuteExt5(Instruction* instr); |
323 #endif | 323 #endif |
324 void ExecuteGeneric(Instruction* instr); | 324 void ExecuteGeneric(Instruction* instr); |
325 | 325 |
| 326 void SetFPSCR(int bit) { fp_condition_reg_ |= (1 << (31 - bit)); } |
| 327 void ClearFPSCR(int bit) { fp_condition_reg_ &= ~(1 << (31 - bit)); } |
| 328 |
326 // Executes one instruction. | 329 // Executes one instruction. |
327 void ExecuteInstruction(Instruction* instr); | 330 void ExecuteInstruction(Instruction* instr); |
328 | 331 |
329 // ICache. | 332 // ICache. |
330 static void CheckICache(v8::internal::HashMap* i_cache, Instruction* instr); | 333 static void CheckICache(v8::internal::HashMap* i_cache, Instruction* instr); |
331 static void FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start, | 334 static void FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start, |
332 int size); | 335 int size); |
333 static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page); | 336 static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page); |
334 | 337 |
335 // Runtime call support. | 338 // Runtime call support. |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 | 432 |
430 static inline void UnregisterCTryCatch(v8::internal::Isolate* isolate) { | 433 static inline void UnregisterCTryCatch(v8::internal::Isolate* isolate) { |
431 Simulator::current(isolate)->PopAddress(); | 434 Simulator::current(isolate)->PopAddress(); |
432 } | 435 } |
433 }; | 436 }; |
434 } // namespace internal | 437 } // namespace internal |
435 } // namespace v8 | 438 } // namespace v8 |
436 | 439 |
437 #endif // !defined(USE_SIMULATOR) | 440 #endif // !defined(USE_SIMULATOR) |
438 #endif // V8_PPC_SIMULATOR_PPC_H_ | 441 #endif // V8_PPC_SIMULATOR_PPC_H_ |
OLD | NEW |