From 23850e9219db76f82680f5162c33a40571e6f56c Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Thu, 11 Dec 1997 00:11:04 +0000 Subject: * mips.igen (MSUB): Fix to work like MADD. * gencode.c (MSUB): Similarly. --- sim/mips/gencode.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sim/mips/gencode.c') diff --git a/sim/mips/gencode.c b/sim/mips/gencode.c index 7feaef2..44fac70 100644 --- a/sim/mips/gencode.c +++ b/sim/mips/gencode.c @@ -3585,7 +3585,12 @@ build_instruction (doisa, features, mips16, insn) fprintf(stderr,"Error: Invalid data size %d for FPSUB operation\n",GETDATASIZEINSN(insn)); exit(1); } - printf(" StoreFPR(destreg,%s,%s(Sub(Multiply(ValueFPR(fs,%s),ValueFPR(ft,%s),%s),ValueFPR(fr,%s),%s),%s));\n",type,((insn->flags & NOT) ? "Negate" : ""),type,type,type,type,type,type); + if (insn->flags & NOT) + printf (" StoreFPR(destreg,%s,Negate(Sub(Multiply(ValueFPR(fs,%s),ValueFPR(ft,%s),%s),ValueFPR(fr,%s),%s),%s));\n", + type, type, type, type, type, type, type); + else + printf (" StoreFPR(destreg,%s,Sub(Multiply(ValueFPR(fs,%s),ValueFPR(ft,%s),%s),ValueFPR(fr,%s),%s));\n", + type, type, type, type, type, type); } else { printf(" if ((format != fmt_single) && (format != fmt_double))\n"); printf(" SignalException(ReservedInstruction,instruction);\n"); -- cgit v1.1