diff options
Diffstat (limited to 'src/arch/mips/isa/formats/fp.isa')
-rw-r--r-- | src/arch/mips/isa/formats/fp.isa | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/arch/mips/isa/formats/fp.isa b/src/arch/mips/isa/formats/fp.isa index 72d87f997..dcea32a36 100644 --- a/src/arch/mips/isa/formats/fp.isa +++ b/src/arch/mips/isa/formats/fp.isa @@ -174,9 +174,8 @@ def template FloatingPointExecute {{ //When is the right time to reset cause bits? //start of every instruction or every cycle? -#if FULL_SYSTEM - fpResetCauseBits(xc); -#endif + if (FULL_SYSTEM) + fpResetCauseBits(xc); %(op_decl)s; %(op_rd)s; @@ -191,12 +190,12 @@ def template FloatingPointExecute {{ //---- //Check for IEEE 754 FP Exceptions //fault = fpNanOperands((FPOp*)this, xc, Fd, traceData); - if ( -#if FULL_SYSTEM - !fpInvalidOp((FPOp*)this, xc, Fd, traceData) && -#endif - fault == NoFault) - { + bool invalid_op = false; + if (FULL_SYSTEM) { + invalid_op = + fpInvalidOp((FPOp*)this, xc, Fd, traceData); + } + if (!invalid_op && fault == NoFault) { %(op_wb)s; } } |