this patch is to fix two issues about floating point in
0l/vl in little endian mode.
1. fix floating point register ordering in MOVD. the
least significant bits should be held in even numbered
fp register, regardless of the endianess. in LE mode it
is the first 4 bytes hold them, which is different from
BE.
2. 0l/vl outputs wrong bits for single precision floats
in little endian mode. this patch fixes it by using
fnuxi4 instead of fnuxi8. the debug output is added as
well. cf. inferno's 0l.
both are tested on loongson 2E machine, seems okay.
|