summaryrefslogtreecommitdiff
path: root/runtime/interpreter/mterp/mips64/fcvtHeader.S
blob: 8742e42c393d22c97fefca8c000f4b2c083845f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    /*
     * Loads a specified register from vB. Used primarily for conversions
     * from or to a floating-point type.
     *
     * Sets up a1 = A and a2 = B. a2 is later used by fcvtFooter.S to
     * store the result in vA and jump to the next instruction.
     *
     * For: int-to-float, int-to-double, long-to-float, long-to-double,
     *      float-to-int, float-to-long, float-to-double, double-to-int,
     *      double-to-long, double-to-float, neg-float, neg-double.
     */
    ext     a1, rINST, 8, 4             # a1 <- A
    srl     a2, rINST, 12               # a2 <- B
    GET_VREG$suffix $valreg, a2
    FETCH_ADVANCE_INST 1                # advance rPC, load rINST