| 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))
|
|
|
|
|
|
|