From 85c6c88804ce15b8ec8b53894e69984be90b11b0 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sat, 14 Dec 2013 02:26:49 -0800 Subject: Respect rounding mode for FP -> Int conversions --- pk/fp.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'pk') diff --git a/pk/fp.c b/pk/fp.c index b768824..8c2a9a5 100644 --- a/pk/fp.c +++ b/pk/fp.c @@ -177,21 +177,21 @@ int emulate_fp(trapframe_t* tf) else if(IS_INSN(FSQRT_D)) DO_WRITEBACK(1, f64_sqrt(frs1d)); else if(IS_INSN(FCVT_W_S)) - XRDR = f32_to_i32_r_minMag(frs1s,true); + XRDR = f32_to_i32(frs1s, softfloat_roundingMode, true); else if(IS_INSN(FCVT_W_D)) - XRDR = f64_to_i32_r_minMag(frs1d,true); + XRDR = f64_to_i32(frs1d, softfloat_roundingMode, true); else if(IS_INSN(FCVT_L_S)) - XRDR = f32_to_i64_r_minMag(frs1s,true); + XRDR = f32_to_i64(frs1s, softfloat_roundingMode, true); else if(IS_INSN(FCVT_L_D)) - XRDR = f64_to_i64_r_minMag(frs1d,true); + XRDR = f64_to_i64(frs1d, softfloat_roundingMode, true); else if(IS_INSN(FCVT_WU_S)) - XRDR = f32_to_ui32_r_minMag(frs1s,true); + XRDR = f32_to_ui32(frs1s, softfloat_roundingMode, true); else if(IS_INSN(FCVT_WU_D)) - XRDR = f64_to_ui32_r_minMag(frs1d,true); + XRDR = f64_to_ui32(frs1d, softfloat_roundingMode, true); else if(IS_INSN(FCVT_LU_S)) - XRDR = f32_to_ui64_r_minMag(frs1s,true); + XRDR = f32_to_ui64(frs1s, softfloat_roundingMode, true); else if(IS_INSN(FCVT_LU_D)) - XRDR = f64_to_ui64_r_minMag(frs1d,true); + XRDR = f64_to_ui64(frs1d, softfloat_roundingMode, true); else return -1; -- cgit v1.1