#include "lispregs.h"
#include "globals.h"
#include "sbcl.h"
-
+#include "genesis/closure.h"
+#include "genesis/fdefn.h"
+#include "genesis/static-symbols.h"
+#include "genesis/simple-fun.h"
#define load(sym, reg) \
sethi %hi(sym), reg; ld [reg+%lo(sym)], reg
/* FIXME */
#define FRAMESIZE 0x48
#define ST_FLUSH_WINDOWS 0x03
-#define PSEUDO_ATOMIC_TRAP_NUMBER 64
.seg "text"
.global call_into_lisp
FUNCDEF(call_into_lisp)
sub reg_ALLOC, 4, reg_ALLOC
andcc reg_ALLOC, 3, reg_ZERO
- /* OK, this is ridiculous. We badly urgently need this to be
- centralized, because that's now _three_ places where this
- number is used. CSR, 2002-02-09 */
-
- tne 64
+ tne PSEUDO_ATOMIC_TRAP
/* Pass in the args. */
sll %i2, 2, reg_NARGS
mov %i1, reg_CFP
/* Were we interrupted? */
sub reg_ALLOC, 4, reg_ALLOC
andcc reg_ALLOC, 3, reg_ZERO
- tne PSEUDO_ATOMIC_TRAP_NUMBER
+ tne PSEUDO_ATOMIC_TRAP
/* Back to C we go. */
ld [%sp+FRAMESIZE-4], %i7
/* Were we interrupted? */
sub reg_ALLOC, 4, reg_ALLOC
andcc reg_ALLOC, 3, reg_ZERO
- tne PSEUDO_ATOMIC_TRAP_NUMBER
+ tne PSEUDO_ATOMIC_TRAP
/* Into C we go. */
call reg_CFUNC
/* No longer atomic. */
sub reg_ALLOC, 4, reg_ALLOC
andcc reg_ALLOC, 3, reg_ZERO
- tne PSEUDO_ATOMIC_TRAP_NUMBER
+ tne PSEUDO_ATOMIC_TRAP
/* Reset the lisp stack. */
/* Note: OCFP is in one of the locals, it gets preserved across C. */
b 1f
unimp trap_Cerror
.byte 4
-#ifdef type_LongFloat
- .byte 24
-#else
- .byte 23
-#endif
+ .byte UNDEFINED_FUN_ERROR
.byte 254, sc_DescriptorReg, 3
.align 4
1:
.global fun_end_breakpoint_end
fun_end_breakpoint_end:
- .global flush_icache
- FUNCDEF(flush_icache)
-flush_icache:
+ .global sparc_flush_icache
+ FUNCDEF(sparc_flush_icache)
+sparc_flush_icache:
add %o0,%o1,%o2
1: iflush %o0 ! flush instruction cache
add %o0,8,%o0
ta ST_FLUSH_WINDOWS ! flush register windows
retl ! return from leaf routine
nop
+