Instruction Descriptions 4–51
4.6.2 Extract Byte
Format:
Operation:
CASE
big_endian_data: Rbv’ ← Rbv XOR 111
2
little_endian_data: Rbv’ ← Rbv
ENDCASE
CASE
EXTBL: byte_mask ← 0000 0001
2
EXTWx: byte_mask ← 0000 0011
2
EXTLx: byte_mask ← 0000 1111
2
EXTQx: byte_mask ← 1111 1111
2
ENDCASE
CASE
EXTxL:
byte_loc ← Rbv’<2:0>*8
temp ← RIGHT_SHIFT(Rav, byte_loc<5:0>)
Rc ← BYTE_ZAP(temp, NOT(byte_mask) )
EXTxH:
byte_loc ← 64 - Rbv’<2:0>*8
temp ← LEFT_SHIFT(Rav, byte_loc<5:0>)
Rc ← BYTE_ZAP(temp, NOT(byte_mask) )
ENDCASE
Exceptions:
Instruction mnemonics:
Qualifiers:
EXTxx Ra.rq,Rb.rq,Rc.wq
!Operate format
EXTxx Ra.rq,#b.ib,Rc.wq
!Operate format
None
EXTBL Extract Byte Low
EXTWL Extract Word Low
EXTLL Extract Longword Low
EXTQL Extract Quadword Low
EXTWH Extract Word High
EXTLH Extract Longword High
EXTQH Extract Quadword High
None