Encoding:

POOL32A

000000

rt

rs

PRECEQU.PH.QBR

1001000100

POOL32Axf

111100

6

5

5

10

6

SPECIAL3

011111

0

00000

rt

rd

PRECEQU.PH.QBR

00101

ABSQ_S.PH

010010

6

5

5

5

5

6

Format:

PRECEQU.PH.QBR rdt, rts

microMIPSDSP

Precision Expand two Unsigned Bytes to Fractional Halfword Values

Purpose:

Precision Expand two Unsigned Bytes to Fractional Halfword Values

Expand the precision of two unsigned byte values taken from the two right-most elements of a quad byte vector to create two Q15 fractional halfword values.

Description:

rdt = sign_extend(expand_prec(rts15..8) || expand_prec(rts7..0))

The two right-most unsigned integer byte values from the four right-most byte elements in register rts are expanded e then written to destination register rdt. The precision expansion is to create two Q15 fractional values that ar achieved by pre-pending a single zero bit (for positive sign) to the original byte value and appending seven least-significant zeros to generate each 16-bit fractional value.

Bit 31 of the result is extended into the 32 most-significant bits of the destination register.

Restrictions:

No data-dependent exceptions are possible.

The operands must be values in the specified format. If they are not, the results are UNPREDICTABLE and the values of the operand vectors become UNPREDICTABLE.

Operation:

tempB15..0 = 01 || GPR[rts]15..8 || 07 
tempA15..0 = 01 || GPR[rts]7..0 || 07 
GPR[rdt]63..0 = (tempB15) || tempB15..0 || tempA15..0

Exceptions:

Reserved Instruction, DSP Disabled