1    /*
2     * Generic 32-bit unary operation.  Provide an "instr" line that
3     * specifies an instruction that performs "result = op w0".
4     * This could be an ARM instruction or a function call.
5     *
6     * for: neg-int, not-int, neg-float, int-to-float, float-to-int,
7     *      int-to-byte, int-to-char, int-to-short
8     */
9    /* unop vA, vB */
10    lsr     w3, wINST, #12              // w3<- B
11    GET_VREG w0, w3                     // w0<- vB
12    ubfx    w9, wINST, #8, #4           // w9<- A
13    FETCH_ADVANCE_INST 1                // advance rPC, load rINST
14    $instr                              // w0<- op, w0-w3 changed
15    GET_INST_OPCODE ip                  // extract opcode from rINST
16    SET_VREG w0, w9                     // vAA<- w0
17    GOTO_OPCODE ip                      // jump to next instruction
18    /* 8-9 instructions */
19