|
From: Bart V. A. <bar...@gm...> - 2008-06-03 18:33:42
|
On Mon, Jun 2, 2008 at 11:01 AM, Julian Seward <js...@ac...> wrote:
> It would be easy enough to modify vex to pass supply the relevant info,
> for example
>
> * for load instructions, whether they are a normal load or a lwarx
> * for store instructions, the same
>
> plus the tool gets to see all loads and stores anyway, if it wants.
>
> It seems to me that the above is not the real problem. The real problem
> is, even if you have all that information available, how can it be used
> to infer which pieces of memory are being atomically modified?
The aforementioned information could be used by a tool as follows:
1. Assume that lwarx and stwcx instructions are always used as
follows: do { lwarx ...; stwcx ...; } while (reservation failed);
2. Given the above assumption, if the stwcx instruction performed a
store, then it was an atomic store.
I'm not sure however that (1) is the only way in which lwarx and stwcx
instructions are used.
Bart.
|