This hack is just to correct
the behavior of the underlying Simics simulator.
The transaction abort in LogTM
is handled by resetting the PC to the start point
of the transaction and then
resuming the Simics after the context has been restored.
However, Simics will
execute the instruction against which it was paused when it got resumed.
This behavior may pollute the
memory if the instruction is a write. And this hack comes to rescue.
I think, though, it’s better
to move the hack out of the protocol to a proper position.
From: gems-users-bounces@xxxxxxxxxxx
[mailto:gems-users-bounces@xxxxxxxxxxx] On
Behalf Of wshaogang
Sent: Monday, September 10, 2007
11:07 AM
To: gems-users@xxxxxxxxxxx
Subject: [Gems-users] LogTM
addMagicEntry problem
Hello, everyone:
I
currently study the LogTM source code, and not very clearly understand the
addMagicEntry and restoreMagicEntry. From previous email I get this explain:
“ Add magic entry is a hack to undo a store that we accidentally commit when
we're trying to process an abort “
Can anybody give an example
case about this situation?
Thanks very much!