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