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:
parent
e28cbc98a0
commit
738ecc495b
|
@ -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");
|
||||
}});
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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); }
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue