blob: 77d104a62bfbf4ee06aecae2669bd65d7e799f54 [file] [log] [blame]
%default {"opcode":"lsl"}
/*
* Generic 64-bit shift operation.
*/
/* binop/2addr vA, vB */
lsr w1, wINST, #12 // w1<- B
ubfx w2, wINST, #8, #4 // w2<- A
GET_VREG w1, w1 // x1<- vB
GET_VREG_WIDE x0, w2 // x0<- vA
FETCH_ADVANCE_INST 1 // advance rPC, load rINST
and x1, x1, #63 // Mask low 6 bits.
$opcode x0, x0, x1
GET_INST_OPCODE ip // extract opcode from rINST
SET_VREG_WIDE x0, w2 // vAA<- result
GOTO_OPCODE ip // jump to next instruction
/* 10-13 instructions */