Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/hppa/hppa in the trap handler for T_EMULATION traps...



details:   https://anonhg.NetBSD.org/src/rev/8883f0417429
branches:  trunk
changeset: 580749:8883f0417429
user:      chs <chs%NetBSD.org@localhost>
date:      Sat May 07 15:03:00 2005 +0000

description:
in the trap handler for T_EMULATION traps, also check if the opcode is 0xe.
if it is, then the instruction is an FPU instruction and we must not check
bits 23-25 since they are not a UID field in this format.

this fixes the spurious SIGILLs sometimes triggered by xmpyu instructions.

diffstat:

 sys/arch/hppa/hppa/trap.S |  4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diffs (21 lines):

diff -r db30fd91f001 -r 8883f0417429 sys/arch/hppa/hppa/trap.S
--- a/sys/arch/hppa/hppa/trap.S Sat May 07 14:27:14 2005 +0000
+++ b/sys/arch/hppa/hppa/trap.S Sat May 07 15:03:00 2005 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: trap.S,v 1.10 2004/07/14 07:23:10 chs Exp $    */
+/*     $NetBSD: trap.S,v 1.11 2005/05/07 15:03:00 chs Exp $    */
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -855,9 +855,11 @@
         * If the opcode field in the instruction is 4,
         * indicating a special function unit SPOP
         * instruction, branch to emulate an sfu.
+        * If the opcode field is 0xe, then it's an FPU instruction.
         */
        extru   %arg0, 5, 6, %r1
        comib,=,n 4, %r1, $emulate_sfu
+       comib,=,n 0xe, %r1, hppa_fpu_nop0
 
        /*
         * If the uid field in the instruction is not



Home | Main Index | Thread Index | Old Index