# .sect .text .sect .rom .sect .data .sect .bss .sect .text .define .c_uf_i .c_uf_i: /* Input: f0 * Output: r2 * Only at and f30/f31 may be used. */ lui at, ha16[.ff_80000000] lwc1 f30, lo16[.ff_80000000] (at) c.le.s 0, f30, f0 bc1t toobig nop trunc.w.s f0, f0 mfc1 r2, f0 jr ra nop toobig: sub.s f0, f0, f30 trunc.w.s f0, f0 mfc1 r2, f0 lui at, 0x8000 ! load 0x80000000 addu r2, r2, at jr ra nop .sect .rom .ff_80000000: .dataf4 2147483648.0