diff options
| author | Pete Zaitcev <zaitcev@redhat.com> | 2003-04-22 07:37:21 -0700 |
|---|---|---|
| committer | David S. Miller <davem@kernel.bkbits.net> | 2003-04-22 07:37:21 -0700 |
| commit | 35dca6a2a2dae78e5a5a964af506d8baaf20982f (patch) | |
| tree | ae4576fc1d11503898ae350706ce46248f1a06c7 /include | |
| parent | 5ac8451abba1f31689b34468dc33ebf1b5015258 (diff) | |
[SPARC]: Colin Gibbs gcc-3.x support.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-sparc/kgdb.h | 56 | ||||
| -rw-r--r-- | include/asm-sparc/processor.h | 2 | ||||
| -rw-r--r-- | include/asm-sparc/ptrace.h | 2 | ||||
| -rw-r--r-- | include/asm-sparc/winmacro.h | 56 |
4 files changed, 53 insertions, 63 deletions
diff --git a/include/asm-sparc/kgdb.h b/include/asm-sparc/kgdb.h index 614ebad018ea..d120adfb429f 100644 --- a/include/asm-sparc/kgdb.h +++ b/include/asm-sparc/kgdb.h @@ -52,43 +52,43 @@ struct kgdb_frame { #define KGDB_NPC 0x114 #define SAVE_KGDB_GLOBALS(reg) \ - std %g0, [%reg + REGWIN_SZ + KGDB_G0]; \ - std %g2, [%reg + REGWIN_SZ + KGDB_G2]; \ - std %g4, [%reg + REGWIN_SZ + KGDB_G4]; \ - std %g6, [%reg + REGWIN_SZ + KGDB_G6]; + std %g0, [%reg + STACKFRAME_SZ + KGDB_G0]; \ + std %g2, [%reg + STACKFRAME_SZ + KGDB_G2]; \ + std %g4, [%reg + STACKFRAME_SZ + KGDB_G4]; \ + std %g6, [%reg + STACKFRAME_SZ + KGDB_G6]; #define SAVE_KGDB_INS(reg) \ - std %i0, [%reg + REGWIN_SZ + KGDB_I0]; \ - std %i2, [%reg + REGWIN_SZ + KGDB_I2]; \ - std %i4, [%reg + REGWIN_SZ + KGDB_I4]; \ - std %i6, [%reg + REGWIN_SZ + KGDB_I6]; + std %i0, [%reg + STACKFRAME_SZ + KGDB_I0]; \ + std %i2, [%reg + STACKFRAME_SZ + KGDB_I2]; \ + std %i4, [%reg + STACKFRAME_SZ + KGDB_I4]; \ + std %i6, [%reg + STACKFRAME_SZ + KGDB_I6]; #define SAVE_KGDB_SREGS(reg, reg_y, reg_psr, reg_wim, reg_tbr, reg_pc, reg_npc) \ - st %reg_y, [%reg + REGWIN_SZ + KGDB_Y]; \ - st %reg_psr, [%reg + REGWIN_SZ + KGDB_PSR]; \ - st %reg_wim, [%reg + REGWIN_SZ + KGDB_WIM]; \ - st %reg_tbr, [%reg + REGWIN_SZ + KGDB_TBR]; \ - st %reg_pc, [%reg + REGWIN_SZ + KGDB_PC]; \ - st %reg_npc, [%reg + REGWIN_SZ + KGDB_NPC]; + st %reg_y, [%reg + STACKFRAME_SZ + KGDB_Y]; \ + st %reg_psr, [%reg + STACKFRAME_SZ + KGDB_PSR]; \ + st %reg_wim, [%reg + STACKFRAME_SZ + KGDB_WIM]; \ + st %reg_tbr, [%reg + STACKFRAME_SZ + KGDB_TBR]; \ + st %reg_pc, [%reg + STACKFRAME_SZ + KGDB_PC]; \ + st %reg_npc, [%reg + STACKFRAME_SZ + KGDB_NPC]; #define LOAD_KGDB_GLOBALS(reg) \ - ld [%reg + REGWIN_SZ + KGDB_G1], %g1; \ - ldd [%reg + REGWIN_SZ + KGDB_G2], %g2; \ - ldd [%reg + REGWIN_SZ + KGDB_G4], %g4; \ - ldd [%reg + REGWIN_SZ + KGDB_G6], %g6; + ld [%reg + STACKFRAME_SZ + KGDB_G1], %g1; \ + ldd [%reg + STACKFRAME_SZ + KGDB_G2], %g2; \ + ldd [%reg + STACKFRAME_SZ + KGDB_G4], %g4; \ + ldd [%reg + STACKFRAME_SZ + KGDB_G6], %g6; #define LOAD_KGDB_INS(reg) \ - ldd [%reg + REGWIN_SZ + KGDB_I0], %i0; \ - ldd [%reg + REGWIN_SZ + KGDB_I2], %i2; \ - ldd [%reg + REGWIN_SZ + KGDB_I4], %i4; \ - ldd [%reg + REGWIN_SZ + KGDB_I6], %i6; + ldd [%reg + STACKFRAME_SZ + KGDB_I0], %i0; \ + ldd [%reg + STACKFRAME_SZ + KGDB_I2], %i2; \ + ldd [%reg + STACKFRAME_SZ + KGDB_I4], %i4; \ + ldd [%reg + STACKFRAME_SZ + KGDB_I6], %i6; #define LOAD_KGDB_SREGS(reg, reg_y, reg_psr, reg_wim, reg_tbr, reg_pc, reg_npc) \ - ld [%reg + REGWIN_SZ + KGDB_Y], %reg_y; \ - ld [%reg + REGWIN_SZ + KGDB_PSR], %reg_psr; \ - ld [%reg + REGWIN_SZ + KGDB_WIM], %reg_wim; \ - ld [%reg + REGWIN_SZ + KGDB_TBR], %reg_tbr; \ - ld [%reg + REGWIN_SZ + KGDB_PC], %reg_pc; \ - ld [%reg + REGWIN_SZ + KGDB_NPC], %reg_npc; + ld [%reg + STACKFRAME_SZ + KGDB_Y], %reg_y; \ + ld [%reg + STACKFRAME_SZ + KGDB_PSR], %reg_psr; \ + ld [%reg + STACKFRAME_SZ + KGDB_WIM], %reg_wim; \ + ld [%reg + STACKFRAME_SZ + KGDB_TBR], %reg_tbr; \ + ld [%reg + STACKFRAME_SZ + KGDB_PC], %reg_pc; \ + ld [%reg + STACKFRAME_SZ + KGDB_NPC], %reg_npc; #endif /* !(_SPARC_KGDB_H) */ diff --git a/include/asm-sparc/processor.h b/include/asm-sparc/processor.h index f9612e0d4213..c2b7125aa005 100644 --- a/include/asm-sparc/processor.h +++ b/include/asm-sparc/processor.h @@ -131,7 +131,7 @@ extern __inline__ void start_thread(struct pt_regs * regs, unsigned long pc, "std\t%%g0, [%0 + %3 + 0x30]\n\t" "st\t%1, [%0 + %3 + 0x38]\n\t" "st\t%%g0, [%0 + %3 + 0x3c]" - : : "r" (regs), "r" (sp - REGWIN_SZ), "r" (zero), + : : "r" (regs), "r" (sp - sizeof(struct reg_window)), "r" (zero), "i" ((const unsigned long)(&((struct pt_regs *)0)->u_regs[0]))); } diff --git a/include/asm-sparc/ptrace.h b/include/asm-sparc/ptrace.h index 53d4136efb91..68ecd782599f 100644 --- a/include/asm-sparc/ptrace.h +++ b/include/asm-sparc/ptrace.h @@ -58,7 +58,6 @@ struct sparc_stackf { #define TRACEREG_SZ sizeof(struct pt_regs) #define STACKFRAME_SZ sizeof(struct sparc_stackf) -#define REGWIN_SZ sizeof(struct reg_window) #ifdef __KERNEL__ #define user_mode(regs) (!((regs)->psr & PSR_PS)) @@ -70,7 +69,6 @@ extern void show_regs(struct pt_regs *); /* For assembly code. */ #define TRACEREG_SZ 0x50 #define STACKFRAME_SZ 0x60 -#define REGWIN_SZ 0x40 #endif /* diff --git a/include/asm-sparc/winmacro.h b/include/asm-sparc/winmacro.h index 619f5e944d02..7fc9169b90b6 100644 --- a/include/asm-sparc/winmacro.h +++ b/include/asm-sparc/winmacro.h @@ -11,14 +11,6 @@ #include <asm/ptrace.h> #include <asm/psr.h> -/* These are just handy. */ -#define _SV save %sp, -REGWIN_SZ, %sp -#define _RS restore - -#define FLUSH_ALL_KERNEL_WINDOWS \ - _SV; _SV; _SV; _SV; _SV; _SV; _SV; \ - _RS; _RS; _RS; _RS; _RS; _RS; _RS; - /* Store the register window onto the 8-byte aligned area starting * at %reg. It might be %sp, it might not, we don't care. */ @@ -45,25 +37,25 @@ /* Loading and storing struct pt_reg trap frames. */ #define LOAD_PT_INS(base_reg) \ - ldd [%base_reg + REGWIN_SZ + PT_I0], %i0; \ - ldd [%base_reg + REGWIN_SZ + PT_I2], %i2; \ - ldd [%base_reg + REGWIN_SZ + PT_I4], %i4; \ - ldd [%base_reg + REGWIN_SZ + PT_I6], %i6; + ldd [%base_reg + STACKFRAME_SZ + PT_I0], %i0; \ + ldd [%base_reg + STACKFRAME_SZ + PT_I2], %i2; \ + ldd [%base_reg + STACKFRAME_SZ + PT_I4], %i4; \ + ldd [%base_reg + STACKFRAME_SZ + PT_I6], %i6; #define LOAD_PT_GLOBALS(base_reg) \ - ld [%base_reg + REGWIN_SZ + PT_G1], %g1; \ - ldd [%base_reg + REGWIN_SZ + PT_G2], %g2; \ - ldd [%base_reg + REGWIN_SZ + PT_G4], %g4; \ - ldd [%base_reg + REGWIN_SZ + PT_G6], %g6; + ld [%base_reg + STACKFRAME_SZ + PT_G1], %g1; \ + ldd [%base_reg + STACKFRAME_SZ + PT_G2], %g2; \ + ldd [%base_reg + STACKFRAME_SZ + PT_G4], %g4; \ + ldd [%base_reg + STACKFRAME_SZ + PT_G6], %g6; #define LOAD_PT_YREG(base_reg, scratch) \ - ld [%base_reg + REGWIN_SZ + PT_Y], %scratch; \ + ld [%base_reg + STACKFRAME_SZ + PT_Y], %scratch; \ wr %scratch, 0x0, %y; #define LOAD_PT_PRIV(base_reg, pt_psr, pt_pc, pt_npc) \ - ld [%base_reg + REGWIN_SZ + PT_PSR], %pt_psr; \ - ld [%base_reg + REGWIN_SZ + PT_PC], %pt_pc; \ - ld [%base_reg + REGWIN_SZ + PT_NPC], %pt_npc; + ld [%base_reg + STACKFRAME_SZ + PT_PSR], %pt_psr; \ + ld [%base_reg + STACKFRAME_SZ + PT_PC], %pt_pc; \ + ld [%base_reg + STACKFRAME_SZ + PT_NPC], %pt_npc; #define LOAD_PT_ALL(base_reg, pt_psr, pt_pc, pt_npc, scratch) \ LOAD_PT_YREG(base_reg, scratch) \ @@ -72,25 +64,25 @@ LOAD_PT_PRIV(base_reg, pt_psr, pt_pc, pt_npc) #define STORE_PT_INS(base_reg) \ - std %i0, [%base_reg + REGWIN_SZ + PT_I0]; \ - std %i2, [%base_reg + REGWIN_SZ + PT_I2]; \ - std %i4, [%base_reg + REGWIN_SZ + PT_I4]; \ - std %i6, [%base_reg + REGWIN_SZ + PT_I6]; + std %i0, [%base_reg + STACKFRAME_SZ + PT_I0]; \ + std %i2, [%base_reg + STACKFRAME_SZ + PT_I2]; \ + std %i4, [%base_reg + STACKFRAME_SZ + PT_I4]; \ + std %i6, [%base_reg + STACKFRAME_SZ + PT_I6]; #define STORE_PT_GLOBALS(base_reg) \ - st %g1, [%base_reg + REGWIN_SZ + PT_G1]; \ - std %g2, [%base_reg + REGWIN_SZ + PT_G2]; \ - std %g4, [%base_reg + REGWIN_SZ + PT_G4]; \ - std %g6, [%base_reg + REGWIN_SZ + PT_G6]; + st %g1, [%base_reg + STACKFRAME_SZ + PT_G1]; \ + std %g2, [%base_reg + STACKFRAME_SZ + PT_G2]; \ + std %g4, [%base_reg + STACKFRAME_SZ + PT_G4]; \ + std %g6, [%base_reg + STACKFRAME_SZ + PT_G6]; #define STORE_PT_YREG(base_reg, scratch) \ rd %y, %scratch; \ - st %scratch, [%base_reg + REGWIN_SZ + PT_Y]; + st %scratch, [%base_reg + STACKFRAME_SZ + PT_Y]; #define STORE_PT_PRIV(base_reg, pt_psr, pt_pc, pt_npc) \ - st %pt_psr, [%base_reg + REGWIN_SZ + PT_PSR]; \ - st %pt_pc, [%base_reg + REGWIN_SZ + PT_PC]; \ - st %pt_npc, [%base_reg + REGWIN_SZ + PT_NPC]; + st %pt_psr, [%base_reg + STACKFRAME_SZ + PT_PSR]; \ + st %pt_pc, [%base_reg + STACKFRAME_SZ + PT_PC]; \ + st %pt_npc, [%base_reg + STACKFRAME_SZ + PT_NPC]; #define STORE_PT_ALL(base_reg, reg_psr, reg_pc, reg_npc, g_scratch) \ STORE_PT_PRIV(base_reg, reg_psr, reg_pc, reg_npc) \ |
