-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/1914/
-----------------------------------------------------------

Review request for Default.


Description
-------

Changeset 9761:f3e7cefe878d
---------------------------
x86: Fix loading of floating point constants

This changeset actually fixes two issues:

 * The lfpimm instruction didn't work correctly when applied to a
   floating point constant (it did work for integers containing the
   bit string representation of a constant) since it used
   reinterpret_cast to convert a double to a uint64_t. This caused a
   compilation error, at least, in gcc 4.6.3.

 * The instructions loading floating point constants in the x87
   processor didn't work correctly since they just stored a truncated
   integer instead of a double in the floating point register. This
   changeset fixes the old microcode by using lfpimm instruction
   instead of the limm instructions.


Diffs
-----

  src/arch/x86/isa/includes.isa 9df73385c878 
  src/arch/x86/isa/insts/x87/load_constants/load_0_1_or_pi.py 9df73385c878 
  src/arch/x86/isa/insts/x87/load_constants/load_logarithm.py 9df73385c878 
  src/arch/x86/isa/microops/limmop.isa 9df73385c878 
  src/arch/x86/utility.hh 9df73385c878 

Diff: http://reviews.gem5.org/r/1914/diff/


Testing
-------

Quick regressions pass. Tested the instructions using a hand-coded assembly 
program and got the expected values after applying the patch (but not before).


Thanks,

Andreas Sandberg

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

Reply via email to