Add initialization code that enables most of the IEEE floating-point
authorChris Hanson <org/chris-hanson/cph>
Thu, 11 Jul 1991 03:59:15 +0000 (03:59 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 11 Jul 1991 03:59:15 +0000 (03:59 +0000)
exceptions.

v7/src/microcode/cmpauxmd/hppa.m4
v7/src/microcode/cmpintmd/hppa.h
v8/src/microcode/cmpauxmd/hppa.m4
v8/src/microcode/cmpintmd/hppa.h

index 6fc0d5740ed2967121ab3c3373dd15b448865a85..51f8ad794c5fc17e5bfb61938468286a47da69b9 100644 (file)
@@ -1,8 +1,8 @@
 changecom(`;');;; -*-Midas-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpauxmd/hppa.m4,v 1.15 1991/05/15 16:21:50 jinx Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpauxmd/hppa.m4,v 1.16 1991/07/11 03:58:59 cph Exp $
 ;;;
-;;;    Copyright (c) 1989, 1990 Massachusetts Institute of Technology
+;;;    Copyright (c) 1989-91 Massachusetts Institute of Technology
 ;;;
 ;;;    This material was developed by the Scheme project at the
 ;;;    Massachusetts Institute of Technology, Department of
@@ -727,6 +727,28 @@ interface_to_C
         LDWM    -112(0,30),3           ; Restore last reg, pop frame
         .PROCEND                       ;in=26;out=28;
 \f
+;;;; Procedure to initialize this interface.
+;;;
+;;; C signature:
+;;;
+;;; void initialize_interface (void);
+
+interface_initialize
+       .PROC
+       .CALLINFO CALLER,FRAME=0
+       .ENTRY
+       LDO     4(30),30
+       FSTWS   0,0(30)
+       LDW     0(30),22
+       LDI     30,21                   ; enable V, Z, O, U traps
+       OR      21,22,22
+       STW     22,0(30)
+       FLDWS   0(30),0
+       BV      0(2)
+       .EXIT
+       LDO     -4(30),30
+       .PROCEND
+\f
 ;;;; Routine to flush some locations from the processor cache.
 ;;; 
 ;;; Its C signature is
@@ -951,6 +973,7 @@ interface_limit
        .SPACE  $TEXT$
        .SUBSPA $CODE$
        .EXPORT C_to_interface,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
+       .EXPORT interface_initialize,PRIV_LEV=3
        .EXPORT interface_to_scheme,PRIV_LEV=3
        .EXPORT interface_to_C,PRIV_LEV=3
        .EXPORT scheme_to_interface_ble,PRIV_LEV=3
index 44900e95698f168b8c58694dae4b9580d6cc3839..99011d264e170bfc12d4ba86df98906cd67e4bed 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/hppa.h,v 1.21 1991/05/07 17:31:53 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/hppa.h,v 1.22 1991/07/11 03:59:15 cph Exp $
 
 Copyright (c) 1989-1991 Massachusetts Institute of Technology
 
@@ -676,10 +676,22 @@ do {                                                                      \
 
 #define SPLIT_CACHES
 
+#ifdef IN_CMPINT_C
+
 /* This loads the cache information structure for use by flush_i_cache.
  */
 
-#define ASM_RESET_HOOK() flush_i_cache_initialize ()
+#define ASM_RESET_HOOK hppa_reset_hook
+
+void
+DEFUN_VOID (hppa_reset_hook)
+{
+  extern void interface_initialize ();
+  flush_i_cache_initialize ();
+  interface_initialize ();
+}
+
+#endif /* IN_CMPINT_C */
 \f
 /* Derived parameters and macros.
 
index 1e40e269f254e6de1eaf974e2eb93a04ebddc705..933191fa899aab06954471f0ac15d32e49337f37 100644 (file)
@@ -1,8 +1,8 @@
 changecom(`;');;; -*-Midas-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpauxmd/hppa.m4,v 1.15 1991/05/15 16:21:50 jinx Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpauxmd/hppa.m4,v 1.16 1991/07/11 03:58:59 cph Exp $
 ;;;
-;;;    Copyright (c) 1989, 1990 Massachusetts Institute of Technology
+;;;    Copyright (c) 1989-91 Massachusetts Institute of Technology
 ;;;
 ;;;    This material was developed by the Scheme project at the
 ;;;    Massachusetts Institute of Technology, Department of
@@ -727,6 +727,28 @@ interface_to_C
         LDWM    -112(0,30),3           ; Restore last reg, pop frame
         .PROCEND                       ;in=26;out=28;
 \f
+;;;; Procedure to initialize this interface.
+;;;
+;;; C signature:
+;;;
+;;; void initialize_interface (void);
+
+interface_initialize
+       .PROC
+       .CALLINFO CALLER,FRAME=0
+       .ENTRY
+       LDO     4(30),30
+       FSTWS   0,0(30)
+       LDW     0(30),22
+       LDI     30,21                   ; enable V, Z, O, U traps
+       OR      21,22,22
+       STW     22,0(30)
+       FLDWS   0(30),0
+       BV      0(2)
+       .EXIT
+       LDO     -4(30),30
+       .PROCEND
+\f
 ;;;; Routine to flush some locations from the processor cache.
 ;;; 
 ;;; Its C signature is
@@ -951,6 +973,7 @@ interface_limit
        .SPACE  $TEXT$
        .SUBSPA $CODE$
        .EXPORT C_to_interface,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR
+       .EXPORT interface_initialize,PRIV_LEV=3
        .EXPORT interface_to_scheme,PRIV_LEV=3
        .EXPORT interface_to_C,PRIV_LEV=3
        .EXPORT scheme_to_interface_ble,PRIV_LEV=3
index 03379d5000138299eb849c4e528dac57efbd3561..f58ae5dad5f0617edb34e25f159282ab5c5de234 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpintmd/hppa.h,v 1.21 1991/05/07 17:31:53 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/cmpintmd/hppa.h,v 1.22 1991/07/11 03:59:15 cph Exp $
 
 Copyright (c) 1989-1991 Massachusetts Institute of Technology
 
@@ -676,10 +676,22 @@ do {                                                                      \
 
 #define SPLIT_CACHES
 
+#ifdef IN_CMPINT_C
+
 /* This loads the cache information structure for use by flush_i_cache.
  */
 
-#define ASM_RESET_HOOK() flush_i_cache_initialize ()
+#define ASM_RESET_HOOK hppa_reset_hook
+
+void
+DEFUN_VOID (hppa_reset_hook)
+{
+  extern void interface_initialize ();
+  flush_i_cache_initialize ();
+  interface_initialize ();
+}
+
+#endif /* IN_CMPINT_C */
 \f
 /* Derived parameters and macros.