lkml.org 
[lkml]   [2000]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectConversion of float denorm values
in arch/alpha/math-emu/math.c, one needs to disassemble the 32bit float
value as 32 bit integer, and not presuppose it to be a 64 bit value with
a double mentality. One this change is applied, then my sample test
works everywhere.
/gat


case FOP_FNC_CVTxS:
/* It is irritating that DEC encoded CVTST with
SRC == T_floating. It is also interesting
that
the bit used to tell the two apart is /U...
*/
if (insn & 0x2000) {
FP_CONV(S,D,1,1,SR,DB);
goto pack_s;
} else {
/* CVTST need do nothing else but copy
the
bits and repack. */
#if 0
DR_c = DB_c;
DR_s = DB_s;
DR_e = DB_e;
DR_f = DB_f;
#else
/* Not exactly, vb needs to be in a 32
bit
float form, and UNPACK'ed as such! */

vb = alpha_read_fp_reg_s(fb);
FP_UNPACK_SP(SB, &vb);
DR_c = SB_c;
DR_s = SB_s;
DR_e = SB_e;
DR_f = SB_f << ( 52 - 23 );
#endif
goto pack_d;
}


[unhandled content-type:application/octet-stream]
\
 
 \ /
  Last update: 2005-03-22 12:41    [W:0.033 / U:0.252 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site