Change the value register to d6 on the 68k family.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 28 May 1991 19:04:34 +0000 (19:04 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 28 May 1991 19:04:34 +0000 (19:04 +0000)
Add more compiler hooks for the 68k family.

v7/src/microcode/cmpauxmd/mc68k.m4
v7/src/microcode/cmpintmd/mc68k.h
v7/src/microcode/version.h
v8/src/microcode/version.h

index 6ab6483f4dc2720f04844a686e172cfa6e741015..00aae123b19f1247fb41e414d79331f1f9bb29d9 100644 (file)
@@ -1,6 +1,6 @@
 ### -*-Midas-*-
 ###
-###    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpauxmd/mc68k.m4,v 1.19 1991/05/06 18:11:35 jinx Exp $
+###    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpauxmd/mc68k.m4,v 1.20 1991/05/28 19:04:34 jinx Exp $
 ###
 ###    Copyright (c) 1989-1991 Massachusetts Institute of Technology
 ###
@@ -94,6 +94,7 @@
 ####   - a5 contains the Scheme free pointer.
 ####   - a4 contains the dynamic link when needed.
 ####   - d7 contains the Scheme datum mask.
+####   - d6 is where Scheme compiled code returns values.
 ####
 ####   All other registers are available to the compiler.  A
 ####   caller-saves convention is used, so the registers need not be
@@ -172,6 +173,7 @@ define(dlink, %a4)                  # Dynamic link register (contains a
 define(rfree, %a5)                     # Free pointer
 define(regs, %a6)                      # Pointer to Registers[0]
 define(rmask, %d7)                     # Mask to clear type code
+define(rval,%d6)
 
 reference_external(Ext_Stack_Pointer)
 reference_external(Free)
@@ -260,6 +262,7 @@ define_debugging_label(scheme_to_interface)
        bgt.b   scheme_to_interface_proceed
        nop
 define_debugging_label(scheme_to_interface_proceed)')
+       mov.l   rval,regblock_val(regs)
        switch_to_C_registers()
        allocate_utility_result()
        mov.l   %d4,-(%sp)              # Push arguments to scheme utility
@@ -285,7 +288,8 @@ define_c_label(interface_to_scheme)
 ###
 define_debugging_label(interface_to_scheme_internal)
        switch_to_scheme_registers()
-       mov.l   regblock_val(regs),%d0
+       mov.l   regblock_val(regs),rval
+       mov.l   rval,%d0
        mov.l   %d0,%d1
        and.l   rmask,%d1
        mov.l   %d1,dlink       
@@ -479,20 +483,20 @@ define_c_label(asm_allocate_closure)
 ###    Arguments on top of the stack followed by the return address.
 
 define_debugging_label(asm_generic_flonum_result)
-       mov.l   rfree,regblock_val(regs)
+       mov.l   rfree,rval
        mov.l   &TYPE_CODE_TO_OBJECT(tc_manifest_nmv)+2,(rfree)+
        fmove.d %fp0,(rfree)+
-       or.b    &TYPE_CODE_TO_BYTE(tc_flonum),regblock_val(regs)
+       or.l    &TYPE_CODE_TO_OBJECT(tc_flonum),rval
        and.b   &TYPE_CODE_TO_BYTE(1)-1,(%sp)
        rts
 
 define_debugging_label(asm_true_result)
-       mov.l   &TYPE_CODE_TO_OBJECT(tc_true),regblock_val(regs)
+       mov.l   &TYPE_CODE_TO_OBJECT(tc_true),rval
        and.b   &TYPE_CODE_TO_BYTE(1)-1,(%sp)
        rts
 
 define_debugging_label(asm_false_result)
-       mov.l   &TYPE_CODE_TO_OBJECT(tc_false),regblock_val(regs)
+       mov.l   &TYPE_CODE_TO_OBJECT(tc_false),rval
        and.b   &TYPE_CODE_TO_BYTE(1)-1,(%sp)
        rts
 
index fa288a666eb5a6530a4ab48cb561ecafca6b1be6..3070b3d0009cf2ff4ed30a16273b247ce8518bb9 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/mc68k.h,v 1.26 1991/05/06 18:09:55 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/cmpintmd/mc68k.h,v 1.27 1991/05/28 19:02:04 jinx Exp $
 
 Copyright (c) 1989-1991 Massachusetts Institute of Technology
 
@@ -191,7 +191,18 @@ extern void
 do                                                                     \
 {                                                                      \
   char *base = ((char *) (addr));                                      \
-  (operate_on_cache_region (CC_FLUSH, ((char *) (addr)), (nwords)))
+  unsigned long len = (nwords);                                                \
+                                                                       \
+  operate_on_cache_region (CC_FLUSH, base, len);                       \
+  operate_on_cache_region (CC_IPURGE, base, 1);                                \
+  operate_on_cache_region (CC_IPURGE,                                  \
+                          ((char *)                                    \
+                           (((unsigned long *) base) + (len - 1))),    \
+                           1);                                         \
+} while (0)  
+
+#    ifdef IN_CMPINT_C
+
 void 
 DEFUN (operate_on_cache_region,
        (cachecmd, bptr, nwords),
@@ -461,7 +472,7 @@ extdo {                                                                     \
 #define COMPILER_HOOK_SIZE             2       /* absolute jsr instruction */
 
 #define COMPILER_REGBLOCK_EXTRA_SIZE                                   \
-#define COMPILER_REGBLOCK_N_HOOKS      40
+  (COMPILER_REGBLOCK_N_HOOKS * COMPILER_HOOK_SIZE)
 
 #define A6_TRAMPOLINE_TO_INTERFACE_OFFSET                              \
   ((COMPILER_REGBLOCK_N_FIXED + (2 * COMPILER_HOOK_SIZE)) *            \
index 4cd0328a1162944a73f046a95bc10562e297f32a..95025ab8d66974fb909806bf9f10f1c193357e77 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/Attic/version.h,v 11.81 1991/05/20 20:32:20 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/Attic/version.h,v 11.82 1991/05/28 19:00:33 jinx Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -46,5 +46,5 @@ MIT in each case. */
 #define VERSION                11
 #endif
 #ifndef SUBVERSION
-#define SUBVERSION     81
+#define SUBVERSION     82
 #endif
index 69163e42f22218ec81b443264806a23ae4b317c1..4e25c2b215c8788ce4020c40b8d353c45c23f144 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/version.h,v 11.81 1991/05/20 20:32:20 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/version.h,v 11.82 1991/05/28 19:00:33 jinx Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -46,5 +46,5 @@ MIT in each case. */
 #define VERSION                11
 #endif
 #ifndef SUBVERSION
-#define SUBVERSION     81
+#define SUBVERSION     82
 #endif