Speculative branch handling for transaction abort
AssigneeInternational Business Machines Corporation
InventorsMichael Billeci, James J. Bonanno, Adam B. Collura, Christian Jacobi, Anthony Saporito, Timothy J. Slegel
Life of this patent
Estimating the term…
Abstract
Embodiments relate to speculative branch handling for transaction abort. An aspect includes detecting a beginning of a current execution of a transaction. Another aspect includes, based on detecting the beginning of the transaction, disabling speculative execution based on branch prediction of an initial branch instruction of the transaction, wherein the initial branch instruction branches to two possible paths, and wherein a first path of the two possible paths comprises an abort handler. Another aspect includes disabling updating of a history table for the initial branch instruction.
Claims20
A computer implemented method for branch handling for transaction abort, the method comprising:
- detecting a beginning of a current execution of a transaction;
- based on detecting the beginning of the transaction, disabling speculative execution based on branch prediction of an initial branch instruction of the transaction, wherein the initial branch instruction branches to one of two possible paths, and wherein a first path of the two possible paths comprises an abort handler;
- disabling updating of a history table for the initial branch instruction based on a mask branch instruction of the initial branch instruction being resolved as not taken;
- and
- updating the history table for the initial branch instruction based on the mask branch instruction being resolved as taken.
A computer program product for implementing branch handling for transaction abort, the computer program product comprising:
- a non-transient computer readable storage medium having program instructions embodied therewith, the program instructions readable by a processing circuit to cause the processing circuit to perform a method comprising:
- detecting a beginning of a current execution of a transaction;
- based on detecting the beginning of the transaction, disabling speculative execution based on branch prediction of an initial branch instruction of the transaction, wherein the initial branch instruction branches to one of two possible paths, and wherein a first path of the two possible paths comprises an abort handler;
- disabling updating of a history table for the initial branch instruction based on a mask branch instruction of the initial branch instruction being resolved as not taken;
- and
- updating the history table for the initial branch instruction based on the mask branch instruction being resolved as taken.
A computer system for branch handling for transaction abort, the system comprising:
- a memory;
- and
- a processor, communicatively coupled to said memory, the computer system configured to perform a method comprising:
- detecting a beginning of a current execution of a transaction;
- based on detecting the beginning of the transaction, disabling speculative execution based on branch prediction of an initial branch instruction of the transaction, wherein the initial branch instruction branches to one of two possible paths, and wherein a first path of the two possible paths comprises an abort handler;
- disabling updating of a history table for the initial branch instruction based on a mask branch instruction of the initial branch instruction being resolved as not taken;
- and
- updating the history table for the initial branch instruction based on the mask branch Instruction being resolved as taken.
Dependencies are inferred from the claim text.