diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2007-02-06 15:52:33 -0500 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2007-02-06 15:52:33 -0500 |
commit | ebb6972dd3a6b9343c79fd022756523a2992a264 (patch) | |
tree | 07ed6b8d534fb90df53c360ea452d6f7a1be0187 /src/cpu | |
parent | ecef27f172523503eb64fc7b2d5e82c2f83b5210 (diff) | |
download | gem5-ebb6972dd3a6b9343c79fd022756523a2992a264.tar.xz |
more fp fixes
fix unaligned accesses in mmaped disk device
src/arch/sparc/isa/decoder.isa:
get (ld|st)fsr ops working right. In reality the fp enable check needs to go higher up in the emitted code
src/arch/sparc/isa/formats/basic.isa:
move the cexec into the aexec field
src/cpu/exetrace.cc:
copy the exception state from legion when we get it wrong. We aren't going to get it right without an fp emulation layer
src/dev/sparc/mm_disk.cc:
src/dev/sparc/mm_disk.hh:
fix unaligned accesses in the memory mapped disk device
--HG--
extra : convert_revision : aaa33096b08cf0563fe291d984a87493a117e528
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/exetrace.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cpu/exetrace.cc b/src/cpu/exetrace.cc index 672b06eaf..5108d7338 100644 --- a/src/cpu/exetrace.cc +++ b/src/cpu/exetrace.cc @@ -411,8 +411,14 @@ Trace::InstRecord::dump(ostream &outs) if(shared_data->y != thread->readIntReg(NumIntArchRegs + 1)) diffY = true; - if(shared_data->fsr != thread->readMiscReg(MISCREG_FSR)) + if(shared_data->fsr != thread->readMiscReg(MISCREG_FSR)) { diffFsr = true; + if (mbits(shared_data->fsr, 63,10) == + mbits(thread->readMiscReg(MISCREG_FSR), 63,10)) { + thread->setMiscReg(MISCREG_FSR, shared_data->fsr); + diffFsr = false; + } + } //if(shared_data->ccr != thread->readMiscReg(MISCREG_CCR)) if(shared_data->ccr != thread->readIntReg(NumIntArchRegs + 2)) @@ -664,7 +670,7 @@ Trace::InstRecord::dump(ostream &outs) } diffcount++; - if (diffcount > 2) + if (diffcount > 3) fatal("Differences found between Legion and M5\n"); } else diffcount = 0; |