patch-2.4.22 linux-2.4.22/arch/parisc/math-emu/driver.c
Next file: linux-2.4.22/arch/parisc/math-emu/fcnvff.c
Previous file: linux-2.4.22/arch/parisc/math-emu/dfsub.c
Back to the patch index
Back to the overall index
- Lines: 44
- Date:
2003-08-25 04:44:40.000000000 -0700
- Orig file:
linux-2.4.21/arch/parisc/math-emu/driver.c
- Orig date:
2002-11-28 15:53:10.000000000 -0800
diff -urN linux-2.4.21/arch/parisc/math-emu/driver.c linux-2.4.22/arch/parisc/math-emu/driver.c
@@ -80,14 +80,19 @@
int
handle_fpe(struct pt_regs *regs)
{
- extern void printbinary(unsigned long x, int nbits);
+ extern int printbinary(char *buf, unsigned long x, int nbits);
struct siginfo si;
unsigned int orig_sw, sw;
int signalcode;
+ char buf[128];
/* need an intermediate copy of float regs because FPU emulation
* code expects an artificial last entry which contains zero
+ *
+ * also, the passed in fr registers contain one word that defines
+ * the fpu type. the fpu type information is constructed
+ * inside the emulation code
*/
- __u64 frcopy[33];
+ __u64 frcopy[36];
memcpy(frcopy, regs->fr, sizeof regs->fr);
frcopy[32] = 0;
@@ -96,8 +101,8 @@
if (FPUDEBUG) {
printk(KERN_DEBUG "FP VZOUICxxxxCQCQCQCQCQCRMxxTDVZOUI ->\n ");
- printbinary(orig_sw, 32);
- printk(KERN_DEBUG "\n");
+ printbinary(buf, orig_sw, 32);
+ printk(KERN_DEBUG "%s\n", buf);
}
signalcode = decode_fpu(frcopy, 0x666);
@@ -107,8 +112,8 @@
if (FPUDEBUG) {
printk(KERN_DEBUG "VZOUICxxxxCQCQCQCQCQCRMxxTDVZOUI decode_fpu returns %d|0x%x\n",
signalcode >> 24, signalcode & 0xffffff);
- printbinary(sw, 32);
- printk(KERN_DEBUG "\n");
+ printbinary(buf, sw, 32);
+ printk(KERN_DEBUG "%s\n", buf);
}
memcpy(regs->fr, frcopy, sizeof regs->fr);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)