| Index: src/mips64/simulator-mips64.h
|
| diff --git a/src/mips64/simulator-mips64.h b/src/mips64/simulator-mips64.h
|
| index df98465c24a059b3ac122644be864a9ec1331e8f..91f5663ee870f05d605211288f6fafd47208b3a7 100644
|
| --- a/src/mips64/simulator-mips64.h
|
| +++ b/src/mips64/simulator-mips64.h
|
| @@ -303,6 +303,18 @@ class Simulator {
|
| // Unsupported instructions use Format to print an error and stop execution.
|
| void Format(Instruction* instr, const char* format);
|
|
|
| + // Helpers for data value tracing.
|
| + enum TraceType {
|
| + BYTE,
|
| + HALF,
|
| + WORD,
|
| + DWORD,
|
| + FLOAT,
|
| + DOUBLE,
|
| + FLOAT_DOUBLE,
|
| + WORD_DWORD
|
| + };
|
| +
|
| // Read and write memory.
|
| inline uint32_t ReadBU(int64_t addr);
|
| inline int32_t ReadB(int64_t addr);
|
| @@ -316,7 +328,7 @@ class Simulator {
|
| inline void WriteH(int64_t addr, int16_t value, Instruction* instr);
|
|
|
| inline uint32_t ReadWU(int64_t addr, Instruction* instr);
|
| - inline int32_t ReadW(int64_t addr, Instruction* instr);
|
| + inline int32_t ReadW(int64_t addr, Instruction* instr, TraceType t = WORD);
|
| inline void WriteW(int64_t addr, int32_t value, Instruction* instr);
|
| inline int64_t Read2W(int64_t addr, Instruction* instr);
|
| inline void Write2W(int64_t addr, int64_t value, Instruction* instr);
|
| @@ -327,18 +339,9 @@ class Simulator {
|
| // Helper for debugging memory access.
|
| inline void DieOrDebug();
|
|
|
| - // Helpers for data value tracing.
|
| - enum TraceType {
|
| - BYTE,
|
| - HALF,
|
| - WORD,
|
| - DWORD
|
| - // DFLOAT - Floats may have printing issues due to paired lwc1's
|
| - };
|
| -
|
| - void TraceRegWr(int64_t value);
|
| + void TraceRegWr(int64_t value, TraceType t = DWORD);
|
| void TraceMemWr(int64_t addr, int64_t value, TraceType t);
|
| - void TraceMemRd(int64_t addr, int64_t value);
|
| + void TraceMemRd(int64_t addr, int64_t value, TraceType t = DWORD);
|
|
|
| // Operations depending on endianness.
|
| // Get Double Higher / Lower word.
|
|
|