linux/arch/ia64
Luck, Tony 1a499150e4 [IA64] Fix unaligned handler for floating point instructions with base update
The compiler team did the hard work for this distilling a problem in
large fortran application which showed up when applied to a 290MB input
data set down to this instruction:

	ldfd f34=[r17],-8

Which they noticed incremented r17 by 0x10 rather than decrementing it
by 8 when the value in r17 caused an unaligned data fault.  I tracked
it down to some bad instruction decoding in unaligned.c. The code
assumes that the 'x' bit can determine whether the instruction is
an "ldf" or "ldfp" ... which it is for opcode=6 (see table 4-29 on
page 3:302 of the SDM).  But for opcode=7 the 'x' bit is irrelevent,
all variants are "ldf" instructions (see table 4-36 on page 3:306).

Note also that interpreting the instruction as "ldfp" means that the
"paired" floating point register (f35 in the example here) will also
be corrupted.

Signed-off-by: Tony Luck <tony.luck@intel.com>
2008-01-15 14:26:55 -08:00
..
configs [IA64] update sn2 defconfig to 64kb pages 2007-10-29 11:32:42 -07:00
dig [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
hp [IA64] Guard elfcorehdr_addr with #if CONFIG_PROC_FS 2007-12-19 11:32:52 -08:00
ia32 [IA64] ia32 nopage 2007-12-18 16:55:46 -08:00
kernel [IA64] Fix unaligned handler for floating point instructions with base update 2008-01-15 14:26:55 -08:00
lib [IA64] export copy_page() to modules 2007-12-07 16:10:19 -08:00
mm [IA64] Avoid unnecessary TLB flushes when allocating memory 2007-12-18 16:56:50 -08:00
oprofile Combine instrumentation menus in kernel/Kconfig.instrumentation 2007-10-19 11:53:54 -07:00
pci [IA64] Nail two more simple section mismatch errors 2007-07-25 13:08:41 -07:00
scripts [IA64] don't assume that unwcheck.py is executable 2007-12-07 14:42:08 -08:00
sn [IA64] Update Altix nofault code 2008-01-03 13:22:54 -08:00
Kconfig typo fixes 2007-10-20 01:34:40 +02:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile [IA64] don't assume that unwcheck.py is executable 2007-12-07 14:42:08 -08:00
defconfig [IA64] Update arch/ia64/configs/* s/SLAB/SLUB/ 2007-08-13 14:54:34 -07:00
install.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module.lds Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00