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:
@@ -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.
Reference in New Issue
Block a user