You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For writing source_memory/destination_memory addresses when a call is made to WriteToSet(T* begin, T* end, UINT32 r), 64bit value is copied to UINT32 r.
Source memory and destination memory operands are declared as 64bit wide in instruction.h
uint64_t destination_memory[NUM_INSTR_DESTINATIONS_SPARC] = {};
uint64_t source_memory[NUM_INSTR_SOURCES] = {};
Hence the ChampSim trace have inaccurate value for memory operands.
The text was updated successfully, but these errors were encountered:
From what I can see, the value passed to "r" is the register number, not the register content. So 32 bits should be more than enough. Am I missing something here?
Actually, WriteToSet(T* begin, T* end, UINT32 r) is used for both memory and register operands.
So, for register number i.e. when register operands are extracted, it is fine. But, while extracting the memory addresses the 64-bit memory address is copied to UINT32 r, which is wrong.
For writing source_memory/destination_memory addresses when a call is made to WriteToSet(T* begin, T* end, UINT32 r), 64bit value is copied to UINT32 r.
Source memory and destination memory operands are declared as 64bit wide in instruction.h
uint64_t destination_memory[NUM_INSTR_DESTINATIONS_SPARC] = {};
uint64_t source_memory[NUM_INSTR_SOURCES] = {};
Hence the ChampSim trace have inaccurate value for memory operands.
The text was updated successfully, but these errors were encountered: