From: Guillermo J. Rozas Date: Mon, 6 May 1991 18:11:35 +0000 (+0000) Subject: Add hooks for quotient and remainder. X-Git-Tag: 20090517-FFI~10667 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b3f87351be741fa338a5bb248cf5c9af59549a45;p=mit-scheme.git Add hooks for quotient and remainder. Change 68040 closure code to be cheaper (single parameter passed now). --- diff --git a/v7/src/microcode/cmpauxmd/mc68k.m4 b/v7/src/microcode/cmpauxmd/mc68k.m4 index bf95d89b7..6ab6483f4 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.18 1991/03/28 20:07:19 jinx Exp $ +### $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 $ ### ### Copyright (c) 1989-1991 Massachusetts Institute of Technology ### @@ -350,6 +350,9 @@ define_interface_jsr_indirection(interrupt_continuation,1b) define_interface_jsr_indirection(assignment_trap,1d) define_interface_jsr_indirection(reference_trap,1f) define_interface_jsr_indirection(safe_reference_trap,20) +### +### These are handled directly below. +### ### define_interface_indirection(generic_decrement,22) ### define_interface_indirection(generic_divide,23) ### define_interface_indirection(generic_equal,24) @@ -362,7 +365,11 @@ define_interface_jsr_indirection(safe_reference_trap,20) ### define_interface_indirection(generic_add,2b) ### define_interface_indirection(generic_positive,2c) ### define_interface_indirection(generic_zero,2d) +### define_interface_jsr_indirection(primitive_error,36) +define_interface_indirection(generic_quotient,37) +define_interface_indirection(generic_remainder,38) +define_interface_indirection(generic_modulo,39) # Save an additional instruction here to load the dynamic link. define_c_label(asm_interrupt_dlink) @@ -457,12 +464,13 @@ define_apply_size_n(8) define_c_label(asm_allocate_closure) switch_to_C_registers() mov.l %a1,-(%sp) # Preserve reg. - mov.l %d1,-(%sp) # Push args - mov.l %d0,-(%sp) + mov.l %d1,-(%sp) # Preserve reg. + mov.l %d0,-(%sp) # Push arg. jsr extern_c_label(allocate_closure) - addq.l &8,%sp # Pop args + addq.l &4,%sp # Pop arg. mov.l %d0,%a0 # Return value - mov.l (%sp)+,%a1 # Restore regs + mov.l (%sp)+,%d1 # Restore reg. + mov.l (%sp)+,%a1 # Restore reg. switch_to_scheme_registers() rts