diff -r bdd606534bdc src/arch/mips/isa/decoder.isa --- a/src/arch/mips/isa/decoder.isa Tue Dec 03 10:51:40 2013 -0600 +++ b/src/arch/mips/isa/decoder.isa Wed Dec 11 23:02:58 2013 -0500 @@ -1242,8 +1242,8 @@ //Field When rs=W 0x4: decode FUNCTION { format FloatConvertOp { - 0x20: cvt_s_w({{ val = Fs_uw; }}, ToSingle); - 0x21: cvt_d_w({{ val = Fs_uw; }}, ToDouble); + 0x20: cvt_s_w({{ val = Fs_sw; }}, ToSingle); + 0x21: cvt_d_w({{ val = Fs_sw; }}, ToDouble); 0x26: CP1Unimpl::cvt_ps_w(); } default: CP1Unimpl::unknown(); @@ -1255,8 +1255,8 @@ //floating point operations are enabled." 0x5: decode FUNCTION { format FloatConvertOp { - 0x20: cvt_s_l({{ val = Fs_ud; }}, ToSingle); - 0x21: cvt_d_l({{ val = Fs_ud; }}, ToDouble); + 0x20: cvt_s_l({{ val = Fs_sd; }}, ToSingle); + 0x21: cvt_d_l({{ val = Fs_sd; }}, ToDouble); 0x26: CP1Unimpl::cvt_ps_l(); } default: CP1Unimpl::unknown(); diff -r bdd606534bdc src/arch/mips/isa/formats/fp.isa --- a/src/arch/mips/isa/formats/fp.isa Tue Dec 03 10:51:40 2013 -0600 +++ b/src/arch/mips/isa/formats/fp.isa Wed Dec 11 23:02:58 2013 -0500 @@ -268,11 +268,11 @@ elif '_df' in code: code = 'double ' + code + '\n' convert += 'DOUBLE_TO_' - elif '_uw' in code: - code = 'uint32_t ' + code + '\n' + elif '_sw' in code: + code = 'int32_t ' + code + '\n' convert += 'WORD_TO_' - elif '_ud' in code: - code = 'uint64_t ' + code + '\n' + elif '_sd' in code: + code = 'int64_t ' + code + '\n' convert += 'LONG_TO_' else: sys.exit("Error Determining Source Type for Conversion")