Minor changes for FP ... MIPS now works for floating-point programs...

Now we are to the point where more benchmarks and instruction-coverage
is necessary to totally verify/validate correct operation across
all MIPS instructions

arch/mips/isa_traits.hh:
    fix for reading double values ... must rearrange bits before using void* to read double.
configs/test/hello_mips:
    real hello world MIPS binary

--HG--
extra : convert_revision : 153de1f8a830882c6972bd0bdb56da818f614def
This commit is contained in:
Korey Sewell 2006-05-07 14:09:19 -04:00
parent a7565418d2
commit 0930024b88
2 changed files with 4 additions and 2 deletions

View file

@ -190,6 +190,7 @@ namespace MipsISA
}; };
typedef float FloatReg; typedef float FloatReg;
typedef double FPVal;
typedef uint32_t FloatReg32; typedef uint32_t FloatReg32;
typedef uint64_t FloatReg64; typedef uint64_t FloatReg64;
@ -230,7 +231,8 @@ namespace MipsISA
return *(float *) float_ptr; return *(float *) float_ptr;
case DoubleWidth: case DoubleWidth:
void *double_ptr = &regs[floatReg]; uint64_t double_val = (FloatReg64)regs[floatReg + 1] << 32 | regs[floatReg];
void *double_ptr = &double_val;
return *(double *) double_ptr; return *(double *) double_ptr;
default: default:
@ -255,7 +257,7 @@ namespace MipsISA
} }
} }
Fault setReg(int floatReg, const FloatReg &val, int width) Fault setReg(int floatReg, const FPVal &val, int width)
{ {
switch(width) switch(width)

Binary file not shown.