Patent ID: 7818510

Claim:
A method for selectively monitoring store instructions to support transactional execution of a process, comprising: generating instructions for a program, wherein the program includes a block of instructions that is to be executed transactionally during transactional execution, wherein changes made during the transactional execution are not committed to an architectural state of a processor until the transactional execution successfully completes, and wherein generating instructions involves determining without programmer intervention which of the store instructions that take place during transactional execution need to be monitored; while generating instructions for the program: encountering a store instruction within the block of instructions; determining whether the store instruction is to be monitored during transactional execution by examining an address of the store instruction to determine whether the store is directed to an address within a range of addresses for which store instructions are to be monitored; if the store instruction is to be monitored, generating a monitored store instruction to perform a corresponding store operation and store-mark a cache line associated with the store instruction to facilitate subsequent detection of an interfering data access to the cache line from another process; and otherwise, generating an unmonitored store instruction to perform the corresponding store operation without store-marking the cache line.