#ifdef TARGET_ABI32 #define ADDR(x) ((x) & 0xffffffff) #else #define ADDR(x) (x) #endif /*** Floating-point store ***/ void OPPROTO glue(op_stf, MEMSUFFIX) (void) { glue(stfl, MEMSUFFIX)(ADDR(T0), FT0); } void OPPROTO glue(op_stdf, MEMSUFFIX) (void) { glue(stfq, MEMSUFFIX)(ADDR(T0), DT0); } /*** Floating-point load ***/ void OPPROTO glue(op_ldf, MEMSUFFIX) (void) { FT0 = glue(ldfl, MEMSUFFIX)(ADDR(T0)); } void OPPROTO glue(op_lddf, MEMSUFFIX) (void) { DT0 = glue(ldfq, MEMSUFFIX)(ADDR(T0)); } #if defined(CONFIG_USER_ONLY) void OPPROTO glue(op_ldqf, MEMSUFFIX) (void) { // XXX add 128 bit load CPU_QuadU u; u.ll.upper = glue(ldq, MEMSUFFIX)(ADDR(T0)); u.ll.lower = glue(ldq, MEMSUFFIX)(ADDR(T0 + 8)); QT0 = u.q; } void OPPROTO glue(op_stqf, MEMSUFFIX) (void) { // XXX add 128 bit store CPU_QuadU u; u.q = QT0; glue(stq, MEMSUFFIX)(ADDR(T0), u.ll.upper); glue(stq, MEMSUFFIX)(ADDR(T0 + 8), u.ll.lower); } #endif #undef MEMSUFFIX