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
This commit is contained in:
Korey Sewell 2007-06-29 15:13:50 -04:00
parent e28cbc98a0
commit 738ecc495b
3 changed files with 12 additions and 19 deletions

View file

@ -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");
}});
}

View file

@ -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;

View file

@ -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); }
}