OpenCloudOS-Kernel/arch/parisc/math-emu
John David Anglin cabd91c3bb parisc: avoid undefined shift in cnv_float.h
The attached change fixes a float conversion problem found running the
GCC testsuite with GCC configured with --with-arch=2.0.

The actual problem occurs for an exponent value of 63. This is the
maximum exponent value that can be passed. This causes a left shift by
32 in the else hunk of the macro. This causes undefined behavior and the
wrong value is returned for dresultB. The fix is the check "exponent <=
62". If the exponent is 63, dresultB is set to 0. The patch also
optimizes the operation a bit by copying "Sall(sgl_value) <<
SGL_EXP_LENGTH" to val, so that sgl_value is not modified.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
2013-01-07 23:06:22 +01:00
..
Makefile parisc: change to new flag variable 2010-10-21 21:07:47 -04:00
README Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cnv_float.h parisc: avoid undefined shift in cnv_float.h 2013-01-07 23:06:22 +01:00
dbl_float.h [PARISC] spelling fixes: arch/parisc/ 2007-05-22 22:52:16 -04:00
decode_exc.c treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
denormal.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dfadd.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dfcmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dfdiv.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dfmpy.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dfrem.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dfsqrt.c [PARISC] spelling fixes: arch/parisc/ 2007-05-22 22:52:16 -04:00
dfsub.c Fix common misspellings 2011-03-31 11:26:23 -03:00
driver.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcnvff.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcnvfu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcnvfut.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcnvfx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcnvfxt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcnvuf.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcnvxf.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
float.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fmpyfadd.c Fix common misspellings 2011-03-31 11:26:23 -03:00
fpbits.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fpu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fpudispatch.c bug.h: add include of it to various implicit C users 2012-02-29 17:15:08 -05:00
frnd.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hppa.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
math-emu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sfadd.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sfcmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sfdiv.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sfmpy.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sfrem.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sfsqrt.c [PARISC] spelling fixes: arch/parisc/ 2007-05-22 22:52:16 -04:00
sfsub.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sgl_float.h [PARISC] spelling fixes: arch/parisc/ 2007-05-22 22:52:16 -04:00

README

All files except driver.c are snapshots from the HP-UX kernel.  They've
been modified as little as possible.  Even though they don't fit the
Linux coding style, please leave them in their funny format just in case
someone in the future, with access to HP-UX source code, is generous
enough to update our copies with later changes from HP-UX -- it'll
make their 'diff' job easier if our code is relatively unmodified.

Required Disclaimer: Hewlett-Packard makes no implied or expressed
warranties about this code nor any promises to maintain or test it
in any way.  This copy of this snapshot is no longer the property
of Hewlett-Packard.