+#if defined(USE_THREADS) && defined(NATIVE_THREADS)
+ if (IS_FLT_DBL_TYPE(m->returntype))
+ if (IS_2_WORD_TYPE(m->returntype))
+ M_DST(REG_FRESULT, REG_SP, 56);
+ else
+ M_FST(REG_FRESULT, REG_SP, 56);
+ else {
+ M_IST(REG_RESULT, REG_SP, 56);
+ if (IS_2_WORD_TYPE(m->returntype))
+ M_IST(REG_RESULT2, REG_SP, 60);
+ }
+
+ M_ALD(REG_ITMP2, REG_PV, -2 * 4); /* builtin_get_exceptionptrptr */
+ M_MTCTR(REG_ITMP2);
+ M_JSR;
+ disp = -(s4) (mcodeptr - (s4 *) cs) * 4;
+ M_MFLR(REG_ITMP1);
+ M_LDA(REG_PV, REG_ITMP1, disp);
+ M_MOV(REG_RESULT, REG_ITMP2);
+
+ if (IS_FLT_DBL_TYPE(m->returntype))
+ if (IS_2_WORD_TYPE(m->returntype))
+ M_DLD(REG_FRESULT, REG_SP, 56);
+ else
+ M_FLD(REG_FRESULT, REG_SP, 56);
+ else {
+ M_ILD(REG_RESULT, REG_SP, 56);
+ if (IS_2_WORD_TYPE(m->returntype))
+ M_ILD(REG_RESULT2, REG_SP, 60);
+ }
+#else