summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPete Zaitcev <zaitcev@redhat.com>2003-04-22 07:37:21 -0700
committerDavid S. Miller <davem@kernel.bkbits.net>2003-04-22 07:37:21 -0700
commit35dca6a2a2dae78e5a5a964af506d8baaf20982f (patch)
treeae4576fc1d11503898ae350706ce46248f1a06c7 /include
parent5ac8451abba1f31689b34468dc33ebf1b5015258 (diff)
[SPARC]: Colin Gibbs gcc-3.x support.
Diffstat (limited to 'include')
-rw-r--r--include/asm-sparc/kgdb.h56
-rw-r--r--include/asm-sparc/processor.h2
-rw-r--r--include/asm-sparc/ptrace.h2
-rw-r--r--include/asm-sparc/winmacro.h56
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) \