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
};
typedef float FloatReg;
+ typedef double FPVal;
typedef uint32_t FloatReg32;
typedef uint64_t FloatReg64;
return *(float *) float_ptr;
case DoubleWidth:
- void *double_ptr = ®s[floatReg];
+ uint64_t double_val = (FloatReg64)regs[floatReg + 1] << 32 | regs[floatReg];
+ void *double_ptr = &double_val;
return *(double *) double_ptr;
default:
}
}
- Fault setReg(int floatReg, const FloatReg &val, int width)
+ Fault setReg(int floatReg, const FPVal &val, int width)
{
switch(width)