From 738ecc495b7f296c1344285337601e3d0ad52e71 Mon Sep 17 00:00:00 2001 From: Korey Sewell Date: Fri, 29 Jun 2007 15:13:50 -0400 Subject: [PATCH] fix store instructions, pass fast/quick Atomic/TimingSimpleCPU regressions... src/arch/mips/isa/decoder.isa: commment out deret instruction for now... src/arch/mips/isa/formats/fp.isa: edit fp format src/arch/mips/isa/formats/mem.isa: fix for basic store instructions --HG-- extra : convert_revision : 30cb5a474e78ac9292b6ab37d433db947a177731 --- src/arch/mips/isa/decoder.isa | 21 +++++++-------------- src/arch/mips/isa/formats/fp.isa | 4 +++- src/arch/mips/isa/formats/mem.isa | 6 ++---- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/arch/mips/isa/decoder.isa b/src/arch/mips/isa/decoder.isa index 0af84e36b..e55d2e070 100644 --- a/src/arch/mips/isa/decoder.isa +++ b/src/arch/mips/isa/decoder.isa @@ -27,6 +27,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // Authors: Korey Sewell +// Brett Miller //////////////////////////////////////////////////////////////////// // @@ -557,20 +558,12 @@ decode OPCODE_HI default Unknown::unknown() { }}); 0x1F: deret({{ - // if(EJTagImplemented()) { - if(Debug_DM == 1){ - Debug_DM = 1; - Debug_IEXI = 0; - NPC = DEPC; - } - else - { - // Undefined; - } - //} // EJTag Implemented - //else { - // Reserved Instruction Exception - //} + //if(Debug_DM == 1){ + //Debug_DM = 1; + //Debug_IEXI = 0; + //NPC = DEPC; + //} + panic("deret not implemented"); }}); } diff --git a/src/arch/mips/isa/formats/fp.isa b/src/arch/mips/isa/formats/fp.isa index 4b340e2e6..4e81ae2cf 100644 --- a/src/arch/mips/isa/formats/fp.isa +++ b/src/arch/mips/isa/formats/fp.isa @@ -150,8 +150,10 @@ output exec {{ //Read FCSR from FloatRegFile uint32_t fcsr_bits = cpu->tcBase()->readFloatRegBits(FCSR); + uint32_t new_fcsr = genInvalidVector(fcsr_bits); + //Write FCSR from FloatRegFile - cpu->tcBase()->setFloatRegOperandBits(FCSR, genInvalidVector(fcsr_bits)); + cpu->tcBase()->setFloatRegBits(FCSR, new_fcsr); if (traceData) { traceData->setData(mips_nan); } return true; diff --git a/src/arch/mips/isa/formats/mem.isa b/src/arch/mips/isa/formats/mem.isa index 81e231810..18d1f52f9 100644 --- a/src/arch/mips/isa/formats/mem.isa +++ b/src/arch/mips/isa/formats/mem.isa @@ -369,7 +369,6 @@ def template StoreMemAccExecute {{ { Addr EA; Fault fault = NoFault; - uint64_t write_result = 0; %(fp_enable_check)s; %(op_decl)s; @@ -383,7 +382,7 @@ def template StoreMemAccExecute {{ if (fault == NoFault) { fault = xc->write((uint%(mem_acc_size)d_t&)Mem, EA, - memAccessFlags, &write_result); + memAccessFlags, NULL); // @NOTE: Need to Call Complete Access to Set Trace Data //if (traceData) { traceData->setData(Mem); } } @@ -434,7 +433,6 @@ def template StoreExecute {{ { Addr EA; Fault fault = NoFault; - uint64_t write_result = 0; %(fp_enable_check)s; %(op_decl)s; @@ -447,7 +445,7 @@ def template StoreExecute {{ if (fault == NoFault) { fault = xc->write((uint%(mem_acc_size)d_t&)Mem, EA, - memAccessFlags, &write_result); + memAccessFlags, NULL); if (traceData) { traceData->setData(Mem); } }