Index: src/mips/simulator-mips.h |
diff --git a/src/mips/simulator-mips.h b/src/mips/simulator-mips.h |
index b10eeabdfa90868d04610205708a3e074d87eefe..0a8de9497adc21176bc72566553769f6d11bc3da 100644 |
--- a/src/mips/simulator-mips.h |
+++ b/src/mips/simulator-mips.h |
@@ -1,4 +1,4 @@ |
-// Copyright 2010 the V8 project authors. All rights reserved. |
+// Copyright 2011 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -50,15 +50,15 @@ namespace internal { |
entry(p0, p1, p2, p3, p4) |
typedef int (*mips_regexp_matcher)(String*, int, const byte*, const byte*, |
- void*, int*, Address, int, Isolate*); |
+ int*, Address, int, Isolate*); |
+ |
// Call the generated regexp code directly. The code at the entry address |
// should act as a function matching the type arm_regexp_matcher. |
// The fifth argument is a dummy that reserves the space used for |
// the return address added by the ExitFrame in native calls. |
#define CALL_GENERATED_REGEXP_CODE(entry, p0, p1, p2, p3, p4, p5, p6, p7) \ |
- (FUNCTION_CAST<mips_regexp_matcher>(entry)( \ |
- p0, p1, p2, p3, NULL, p4, p5, p6, p7)) |
+ (FUNCTION_CAST<mips_regexp_matcher>(entry)(p0, p1, p2, p3, p4, p5, p6, p7)) |
#define TRY_CATCH_FROM_ADDRESS(try_catch_address) \ |
reinterpret_cast<TryCatch*>(try_catch_address) |
@@ -96,6 +96,7 @@ class SimulatorStack : public v8::internal::AllStatic { |
// Running with a simulator. |
#include "hashmap.h" |
+#include "assembler.h" |
namespace v8 { |
namespace internal { |
@@ -152,7 +153,7 @@ class Simulator { |
sp, |
s8, |
ra, |
- // LO, HI, and pc |
+ // LO, HI, and pc. |
LO, |
HI, |
pc, // pc must be the last register. |
@@ -165,7 +166,7 @@ class Simulator { |
// Generated code will always use doubles. So we will only use even registers. |
enum FPURegister { |
f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, |
- f12, f13, f14, f15, // f12 and f14 are arguments FPURegisters |
+ f12, f13, f14, f15, // f12 and f14 are arguments FPURegisters. |
f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, |
f26, f27, f28, f29, f30, f31, |
kNumFPURegisters |
@@ -183,7 +184,7 @@ class Simulator { |
// instruction. |
void set_register(int reg, int32_t value); |
int32_t get_register(int reg) const; |
- // Same for FPURegisters |
+ // Same for FPURegisters. |
void set_fpu_register(int fpureg, int32_t value); |
void set_fpu_register_float(int fpureg, float value); |
void set_fpu_register_double(int fpureg, double value); |
@@ -305,7 +306,6 @@ class Simulator { |
int size); |
static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page); |
- |
enum Exception { |
none, |
kIntegerOverflow, |
@@ -335,35 +335,36 @@ class Simulator { |
uint32_t FCSR_; |
// Simulator support. |
+ // Allocate 1MB for stack. |
+ static const size_t stack_size_ = 1 * 1024*1024; |
char* stack_; |
- size_t stack_size_; |
bool pc_modified_; |
int icount_; |
int break_count_; |
- // Icache simulation |
+ // Icache simulation. |
v8::internal::HashMap* i_cache_; |
+ v8::internal::Isolate* isolate_; |
+ |
// Registered breakpoints. |
Instruction* break_pc_; |
Instr break_instr_; |
- |
- v8::internal::Isolate* isolate_; |
}; |
// When running with the simulator transition into simulated execution at this |
// point. |
#define CALL_GENERATED_CODE(entry, p0, p1, p2, p3, p4) \ |
-reinterpret_cast<Object*>(Simulator::current(Isolate::Current())->Call( \ |
+ reinterpret_cast<Object*>(Simulator::current(Isolate::Current())->Call( \ |
FUNCTION_ADDR(entry), 5, p0, p1, p2, p3, p4)) |
#define CALL_GENERATED_REGEXP_CODE(entry, p0, p1, p2, p3, p4, p5, p6, p7) \ |
- Simulator::current(Isolate::Current())->Call( \ |
- entry, 9, p0, p1, p2, p3, NULL, p4, p5, p6, p7) |
+ Simulator::current(Isolate::Current())->Call( \ |
+ entry, 8, p0, p1, p2, p3, p4, p5, p6, p7) |
-#define TRY_CATCH_FROM_ADDRESS(try_catch_address) \ |
- try_catch_address == NULL ? \ |
+#define TRY_CATCH_FROM_ADDRESS(try_catch_address) \ |
+ try_catch_address == NULL ? \ |
NULL : *(reinterpret_cast<TryCatch**>(try_catch_address)) |