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
