Transaction begin/end instructions
AssigneeInternational Business Machines Corporation
InventorsDan F. Greiner, Christian Jacobi, Marcel Mitran, Timothy J. Slegel
Life of this patent
Estimating the term…
Abstract
A TRANSACTION BEGIN instruction and a TRANSACTION END instruction are provided. The TRANSACTION BEGIN instruction causes either a constrained or nonconstrained transaction to be initiated, depending on a field of the instruction. The TRANSACTION END instruction ends the transaction started by the TRANSACTION BEGIN instruction.
Claims20
A computer program product for executing a machine instruction in a computing environment, said computer program product comprising:
- at least one non-transitory computer readable storage medium readable by at least one processing circuit and storing instructions for performing a method comprising:
- obtaining a machine instruction, the machine instruction being defined for computer execution according to a computer architecture, the machine instruction comprising:
- an operation code to specify a transaction begin operation;
- one or more fields to specify a first operand address;
- and
- at least one control field to be used to access a save mask, the save mask having multiple indicators for a plurality of registers, wherein an indicator of the multiple indicators set to a first value indicates that one or more registers of the plurality of registers assigned to that indicator are to be saved at a beginning of a transaction and restored on an abort, and wherein the indicator set to a second value indicates that the one or more registers assigned to that indicator are not to be saved at the beginning of the transaction and are not restored on the abort;
- and
- executing the machine instruction, the executing comprising:
- determining, using a field of the machine instruction, whether a transaction to be initiated by the machine instruction is a constrained transaction or a nonconstrained transaction, wherein based on the field indicating a nonconstrained transaction, the at least one control field is used to access one set of controls, and based on the field indicating a constrained transaction, the at least one control field is used to access another set of controls, the one set of controls including at least one control different from the other set of controls;
- based on the field being one value, initiating a constrained transaction, the constrained transaction having one or more restrictions associated therewith, and setting a condition code to indicate successful execution of the machine instruction;
- and
- based on the field being another value:
- initiating a nonconstrained transaction;
- using the first operand address to designate a location of a transaction diagnostic block to store diagnostic information based on the nonconstrained transaction being aborted;
- and setting a condition code to indicate successful execution of the machine instruction.
A computer system for executing a machine instruction in a computing environment, said computer system comprising:
- a memory;
- and
- a processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising:
- obtaining a machine instruction, the machine instruction being defined for computer execution according to a computer architecture comprising:
- an operation code to specify a transaction begin operation;
- one or more fields to specify a first operand address;
- and
- at least one control field to be used to access a save mask, the save mask having multiple indicators for a plurality of registers, wherein an indicator of the multiple indicators set to a first value indicates that one or more registers of the plurality of registers assigned to that indicator are to be saved at a beginning of a transaction and restored on an abort, and wherein the indicator set to a second value indicates that the one or more registers assigned to that indicator are not to be saved at the beginning of the transaction and are not restored on the abort;
- and
- executing the machine instruction, the executing comprising:
- determining, using a field of the machine instruction, whether a transaction to be initiated by the machine instruction is a constrained transaction or a nonconstrained transaction, wherein based on the field indicating a nonconstrained transaction, the at least one control field is used to access one set of controls, and based on the field indicating a constrained transaction, the at least one control field is used to access another set of controls, the one set of controls including at least one control different from the other set of controls;
- based on the field being one value, initiating a constrained transaction, the constrained transaction having one or more restrictions associated therewith, and setting a condition code to indicate successful execution of the machine instruction;
- and
- based on the field being another value:
- initiating a nonconstrained transaction;
- using the first operand address to designate a location of a transaction diagnostic block to store diagnostic information based on the nonconstrained transaction being aborted;
- and setting a condition code to indicate successful execution of the machine instruction.
A computer-implemented method of executing a machine instruction in a computing environment, said computer-implemented method comprising:
- obtaining, by a processor, a machine instruction, the machine instruction being defined for computer execution according to a computer architecture comprising:
- an operation code to specify a transaction begin operation;
- one or more fields to specify a first operand address;
- and
- at least one control field to be used to access a save mask, the save mask having multiple indicators for a plurality of registers, wherein an indicator of the multiple indicators set to a first value indicates that one or more registers of the plurality of registers assigned to that indicator are to be saved at a beginning of a transaction and restored on an abort, and wherein the indicator set to a second value indicates that the one or more registers assigned to that indicator are not to be saved at the beginning of the transaction and are not restored on the abort;
- and
- executing the machine instruction, the executing comprising:
- determining, using a field of the machine instruction, whether a transaction to be initiated by the machine instruction is a constrained transaction or a nonconstrained transaction, wherein based on the field indicating a nonconstrained transaction, the at least one control field is used to access one set of controls, and based on the field indicating a constrained transaction, the at least one control field is used to access another set of controls, the one set of controls including at least one control different from the other set of controls;
- based on the field being one value, initiating a constrained transaction, the constrained transaction having one or more restrictions associated therewith, and setting a condition code to indicate successful execution of the machine instruction;
- and
- based on the field being another value:
- initiating a nonconstrained transaction;
- using the first operand address to designate a location of a transaction diagnostic block to store diagnostic information based on the nonconstrained transaction being aborted;
- and setting a condition code to indicate successful execution of the machine instruction.
Dependencies are inferred from the claim text.