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:
parent
a7565418d2
commit
0930024b88
|
@ -190,6 +190,7 @@ namespace MipsISA
|
|||
};
|
||||
|
||||
typedef float FloatReg;
|
||||
typedef double FPVal;
|
||||
|
||||
typedef uint32_t FloatReg32;
|
||||
typedef uint64_t FloatReg64;
|
||||
|
@ -230,7 +231,8 @@ namespace MipsISA
|
|||
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:
|
||||
|
@ -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)
|
||||
|
|
Binary file not shown.
Loading…
Reference in a new issue