I looked briefly at that change earlier, and I do think it's likely  
that I broke it. I don't know how much time I'll have to dig into it  
in the near future, but I'll put it on my short(ish :-/) list.

Gabe

Quoting Matt <[email protected]>:

> Gabe,
>
> It looks like it was your changes that broke this.  Do you have any
> insight on this?
> Thanks.
>
> On Fri, Dec 4, 2009 at 3:31 PM, Matt <[email protected]> wrote:
>> I'm having problems getting double-precision floating-point to work in
>> m5 for the MIPS isa.
>>
>> The 32-bit MIPS isa has 32 32-bit floating-point registers.
>> Double-precision floating-point numbers are stored in pairs of
>> floating-point registers.  At least that's how I understand it.
>>
>> Simple floating point math used to work in m5 until changeset
>> 781969fbeca9.  After the change, it seams that m5 does not read two
>> 32-bit floating point registers to get a double-precision
>> floating-point operand, but only one 32-bit floating-point register
>> (when it's simulating an add_d instruction, for example).  This
>> results in incorrect floating point arithmetic.
>>
>> I have the following C program (compiled for MIPS) that exercises  
>> the problem:
>>
>> #include<stdio.h>
>>
>> int main (void)
>> {
>>        double x, y, z;
>>
>>        x = 5.0;
>>        y = 0.1;
>>
>>        z = x + y;
>>
>>        printf ("z = %lf\n", z);
>>
>>        return 0;
>> }
>>
>> It should print "z = 5.1", but it doesn't because the simulation of
>> the floating-point addition is wrong.
>>
>> Can anyone tell me why this change was made that seems to break the
>> simulation of double-precision floating-point arithmetic in m5?
>>
>> Thanks.
>>
>> --
>> Cheers,
>> Matt
>>
>
>
>
> --
> Cheers,
> Matt
>


_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to