From: Guillermo J. Rozas Date: Tue, 28 May 1991 19:04:34 +0000 (+0000) Subject: Change the value register to d6 on the 68k family. X-Git-Tag: 20090517-FFI~10530 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=824ad0a04294dfa4a481fc11b3128e14b95f44ca;p=mit-scheme.git Change the value register to d6 on the 68k family. Add more compiler hooks for the 68k family. --- diff --git a/v7/src/microcode/cmpauxmd/mc68k.m4 b/v7/src/microcode/cmpauxmd/mc68k.m4 index 6ab6483f4..00aae123b 100644 --- a/v7/src/microcode/cmpauxmd/mc68k.m4 +++ b/v7/src/microcode/cmpauxmd/mc68k.m4 @@ -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 diff --git a/v7/src/microcode/cmpintmd/mc68k.h b/v7/src/microcode/cmpintmd/mc68k.h index fa288a666..3070b3d00 100644 --- a/v7/src/microcode/cmpintmd/mc68k.h +++ b/v7/src/microcode/cmpintmd/mc68k.h @@ -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)) * \ diff --git a/v7/src/microcode/version.h b/v7/src/microcode/version.h index 4cd0328a1..95025ab8d 100644 --- a/v7/src/microcode/version.h +++ b/v7/src/microcode/version.h @@ -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 diff --git a/v8/src/microcode/version.h b/v8/src/microcode/version.h index 69163e42f..4e25c2b21 100644 --- a/v8/src/microcode/version.h +++ b/v8/src/microcode/version.h @@ -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