Patent ID: 7953780

Claim:
A computer program product for executing a machine instruction in a central processing unit, the computer program product comprising: a non-transitory computer readable storage medium readable by a processor and storing instructions for execution by the processor for performing a method comprising: obtaining a machine instruction for execution, the machine instruction being defined for computer execution according to a computer architecture, the machine instruction comprising an opcode, one register field, another register field, an index field, a base field and a displacement value; and performing a shift function on the significand of a decimal floating point datum as that function is defined by the opcode of the machine instruction, wherein the significand is stored in a location designated by the one register field, said shift function comprising: shifting in one direction one or more decimal digits of the significand a number of positions specified by a plurality of second operand bits determined using the index field, the base field and displacement value of the machine instruction, wherein the shifting comprises: expanding a portion of the significand in densely packed decimal into that portion of the significand in packed decimal; decoding a combination field of the decimal floating point datum into a biased exponent and another portion of the significand; combining the expanded portion of the significand and the another portion of the significand to create a working format significand; performing shifting on the working format significand; and in response to the performing, combining a portion of the working format significand and the biased exponent to obtain a new combination field, and converting another portion of the working format significand from packed decimal to densely packed decimal; and placing a result of the shift function in a location designated by the another register field.