#define CONTEXT_V29 CONTEXT_V28+16
#define CONTEXT_V30 CONTEXT_V29+16
#define CONTEXT_V31 CONTEXT_V30+16
-#define CONTEXT_FLOAT_CONTROL_OFFSET CONTEXT_V31
+#define CONTEXT_FLOAT_CONTROL_OFFSET CONTEXT_V31+16
#define CONTEXT_Fpcr 0
-#define CONTEXT_Fpsr CONTEXT_Fpcr+4
+#define CONTEXT_Fpsr CONTEXT_Fpcr+8
#endif
add x0, x0, CONTEXT_FLOAT_CONTROL_OFFSET
mrs x1, fpcr
mrs x2, fpsr
- sub x0, x0, CONTEXT_FLOAT_CONTROL_OFFSET
stp x1, x2, [x0, CONTEXT_Fpcr]
- sub x0, x0, CONTEXT_NEON_OFFSET
+ sub x0, x0, CONTEXT_FLOAT_CONTROL_OFFSET + CONTEXT_NEON_OFFSET
LOCAL_LABEL(Done_CONTEXT_FLOATING_POINT):
ldp q26, q27, [x16, CONTEXT_V26]
ldp q28, q29, [x16, CONTEXT_V28]
ldp q30, q31, [x16, CONTEXT_V30]
+ add x16, x16, CONTEXT_FLOAT_CONTROL_OFFSET
ldp x1, x2, [x16, CONTEXT_Fpcr]
msr fpcr, x1
msr fpsr, x2
- sub x16, x16, CONTEXT_NEON_OFFSET
+ sub x16, x16, CONTEXT_FLOAT_CONTROL_OFFSET + CONTEXT_NEON_OFFSET
LOCAL_LABEL(No_Restore_CONTEXT_FLOATING_POINT):
tbz w17, #CONTEXT_INTEGER_BIT, LOCAL_LABEL(No_Restore_CONTEXT_INTEGER)