diff options
author | Jake Burkholder <jake@FreeBSD.org> | 2001-12-29 06:47:50 +0000 |
---|---|---|
committer | Jake Burkholder <jake@FreeBSD.org> | 2001-12-29 06:47:50 +0000 |
commit | bfe6f908326ed9be319713f7f02c04b19054bb39 (patch) | |
tree | 4645e028c36372d346077aa4e720cf1efd9fe889 /sys/sparc64/include/asmacros.h | |
parent | e5a86020b0cdb1b2a966666fdd90a3c431368dc0 (diff) | |
download | src-bfe6f908326ed9be319713f7f02c04b19054bb39.tar.gz src-bfe6f908326ed9be319713f7f02c04b19054bb39.zip |
Add macros for dedicated register variables, for use in assmebler.
Add a PUTS macro.
Notes
Notes:
svn path=/head/; revision=88616
Diffstat (limited to 'sys/sparc64/include/asmacros.h')
-rw-r--r-- | sys/sparc64/include/asmacros.h | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/sys/sparc64/include/asmacros.h b/sys/sparc64/include/asmacros.h index 98459e708671..276554080cd4 100644 --- a/sys/sparc64/include/asmacros.h +++ b/sys/sparc64/include/asmacros.h @@ -31,24 +31,51 @@ #ifdef _KERNEL - .register %g2,#ignore - .register %g3,#ignore - .register %g6,#ignore - .register %g7,#ignore +/* + * Normal and alternate %g7 point to per-cpu data. + */ +#define PCPU_REG %g7 + +/* + * Alternate %g5 points to a per-cpu stack for temporarily saving alternate + * globals, alternate %g6 points to the pcb of the current process. + */ +#define ASP_REG %g5 +#define PCB_REG %g6 + +/* + * Interrupt %g6 points to a per-cpu interrupt queue, %g7 points to the + * interrupt vector table. + */ +#define IQ_REG %g6 +#define IV_REG %g7 + +/* + * MMU %g7 points to the user tsb. + */ +#define TSB_REG %g7 #define PCPU(member) %g7 + PC_ ## member #define PCPU_ADDR(member, reg) add %g7, PC_ ## member, reg #define DEBUGGER() ta %xcc, 1 -#define PANIC(msg, reg) \ +#define PANIC(msg, r1) \ .sect .rodata ; \ 9: .asciz msg ; \ .previous ; \ - setx 9b, reg, %o0 ; \ + SET(9b, r1, %o0) ; \ call panic ; \ nop +#define PUTS(msg, r1) \ + .sect .rodata ; \ +9: .asciz msg ; \ + .previous ; \ + SET(9b, r1, %o0) ; \ + call printf ; \ + nop + #endif #define DATA(name) \ |