4.6.3 Byte Insert
Format:
INSxxRa.rq,Rb.rq,Rc.wq
INSxxRa.rq,#b.ib,Rc.wq
Operation:
CASE
big_endian_data: Rbv’ ← Rbv XOR 1112
little_endian_data: Rbv’ ← Rbv
ENDCASE
CASE
INSBL: byte_mask ← 0000 0000 0000 00012
INSWx: byte_mask ← 0000 0000 0000 00112
INSLx: byte_mask ← 0000 0000 0000 11112
INSQx: byte_mask ← 0000 0000 1111 11112
ENDCASE
byte_mask ← LEFT_SHIFT(byte_mask, Rbv’<2:0>)
CASE INSxL:
byte_loc ← Rbv’<2:0>*8
temp ← LEFT_SHIFT(Rav, byte_loc<5:0>) Rc ← BYTE_ZAP(temp, NOT(byte_mask<7:0>))
INSxH:
byte_loc ← 64 - Rbv’<2:0>*8
temp ← RIGHT_SHIFT(Rav, byte_loc<5:0>) Rc ← BYTE_ZAP(temp, NOT(byte_mask<15:8>))
ENDCASE
Exceptions: |
|
None |
|
Instruction mnemonics: |
|
INSBL | Insert Byte Low |
INSWL | Insert Word Low |
INSLL | Insert Longword Low |
INSQL | Insert Quadword Low |
INSWH | Insert Word High |
INSLH | Insert Longword High |
INSQH | Insert Quadword High |
!Operate format
!Operate format
Instruction Descriptions