unaligned.c oops
The following patch should make the unaligned handler work better. (float ops were miscoded...)
lamont
Index: unaligned.c
===================================================================
RCS file: /var/cvs/linux-2.4/arch/parisc/kernel/unaligned.c,v retrieving revision 1.21
unaligned.c +12 -4
@@ -93,13 +93,17 @@#define OPCODE_STDA OPCODE1(0x03,1,0xf)#define OPCODE_FLDWX OPCODE1(0x09,0,0x0) -#define OPCODE_FSTWX OPCODE1(0x09,0,0x4) +#define OPCODE_FLDWXR OPCODE1(0x09,0,0x1) +#define OPCODE_FSTWX OPCODE1(0x09,0,0x8) +#define OPCODE_FSTWXR OPCODE1(0x09,0,0x9)#define OPCODE_FLDWS OPCODE1(0x09,1,0x0) -#define OPCODE_FSTWS OPCODE1(0x09,1,0x4) +#define OPCODE_FLDWSR OPCODE1(0x09,1,0x1) +#define OPCODE_FSTWS OPCODE1(0x09,1,0x8) +#define OPCODE_FSTWSR OPCODE1(0x09,1,0x9)#define OPCODE_FLDDX OPCODE1(0x0b,0,0x0) -#define OPCODE_FSTDX OPCODE1(0x0b,0,0x4) +#define OPCODE_FSTDX OPCODE1(0x0b,0,0x8)#define OPCODE_FLDDS OPCODE1(0x0b,1,0x0) -#define OPCODE_FSTDS OPCODE1(0x0b,1,0x4) +#define OPCODE_FSTDS OPCODE1(0x0b,1,0x8)#define OPCODE_LDD_L OPCODE2(0x14,0)#define OPCODE_FLDD_L OPCODE2(0x14,1)
@@ -541,6 +545,8 @@case OPCODE_FLDWX :case OPCODE_FLDWS : +case OPCODE_FLDWXR : +case OPCODE_FLDWSR : flop=1 ; ret =emulate_ldw (regs,FR3 (regs->iir),1 );break ;
@@ -553,6 +559,8 @@case OPCODE_FSTWX :case OPCODE_FSTWS : +case OPCODE_FSTWXR : +case OPCODE_FSTWSR : flop=1 ; ret =emulate_stw (regs,FR3 (regs->iir),1 );break ;