• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1%default {"preinstr":"", "st_result":"STORE64_F(fv0, fv0f, rOBJ)"}
2    /*
3     * Generic 32bit-to-64bit floating point unary operation.  Provide an
4     * "instr" line that specifies an instruction that performs "d0 = op s0".
5     *
6     * For: int-to-double, float-to-double
7     *
8     * On entry:
9     *     a0 = target dalvik register address
10     *     a1 = src dalvik register address
11     */
12    /* unop vA, vB */
13    move rOBJ, a0                       # save a0
14#ifdef  SOFT_FLOAT
15    LOAD(a0, a1)                        # a0<- vB
16    $preinstr                           # optional op
17    $instr                              # result<- op, a0-a3 changed
18
19.L${opcode}_set_vreg:
20    STORE64(rRESULT0, rRESULT1, rOBJ)   # vA/vA+1<- v0/v1
21#else
22    LOAD_F(fa0, a1)                     # fa0<- vB
23    $preinstr                           # optional op
24    $instr_f
25
26.L${opcode}_set_vreg:
27    $st_result                          # vA/vA+1<- fv0/fv0f
28#endif
29    RETURN
30