summaryrefslogtreecommitdiffstats
path: root/arch/arc/include
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-05-28 09:43:17 +0530
committerVineet Gupta <vgupta@synopsys.com>2013-06-22 19:23:22 +0530
commit2fa919045b72ec892e17d56f888e6af4260b7629 (patch)
tree1f0f89110514c07939666d6b1f225b3e8dff6be3 /arch/arc/include
parent283237a04fd332bddc2ac298e6ad7d23a1fc4b99 (diff)
downloadblackbird-obmc-linux-2fa919045b72ec892e17d56f888e6af4260b7629.tar.gz
blackbird-obmc-linux-2fa919045b72ec892e17d56f888e6af4260b7629.zip
ARC: pt_regs update #2: Remove unused gutter at start of pt_regs
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/include')
-rw-r--r--arch/arc/include/asm/entry.h16
-rw-r--r--arch/arc/include/asm/ptrace.h6
-rw-r--r--arch/arc/include/uapi/asm/ptrace.h11
3 files changed, 7 insertions, 26 deletions
diff --git a/arch/arc/include/asm/entry.h b/arch/arc/include/asm/entry.h
index 2b274fa9c5a7..5ff7b8dd3d5b 100644
--- a/arch/arc/include/asm/entry.h
+++ b/arch/arc/include/asm/entry.h
@@ -432,9 +432,6 @@
st.a r9, [sp, -4]
lr r9, [erbta]
st.a r9, [sp, -4]
-
- /* move up by 1 word to "create" pt_regs->"stack_place_holder" */
- sub sp, sp, 4
.endm
/*--------------------------------------------------------------
@@ -474,9 +471,6 @@
* by hardware and that is not good.
*-------------------------------------------------------------*/
.macro RESTORE_ALL_SYS
-
- add sp, sp, 4 /* hop over unused "pt_regs->stack_place_holder" */
-
ld.ab r9, [sp, 4]
sr r9, [erbta]
ld.ab r9, [sp, 4]
@@ -530,9 +524,6 @@
st.a r9, [sp, -4]
lr r9, [bta_l1]
st.a r9, [sp, -4]
-
- /* move up by 1 word to "create" pt_regs->"stack_place_holder" */
- sub sp, sp, 4
.endm
.macro SAVE_ALL_INT2
@@ -561,9 +552,6 @@
st.a r9, [sp, -4]
lr r9, [bta_l2]
st.a r9, [sp, -4]
-
- /* move up by 1 word to "create" pt_regs->"stack_place_holder" */
- sub sp, sp, 4
.endm
/*--------------------------------------------------------------
@@ -577,8 +565,6 @@
*-------------------------------------------------------------*/
.macro RESTORE_ALL_INT1
- add sp, sp, 4 /* hop over unused "pt_regs->stack_place_holder" */
-
ld.ab r9, [sp, 4] /* Actual reg file */
sr r9, [bta_l1]
ld.ab r9, [sp, 4]
@@ -601,8 +587,6 @@
.endm
.macro RESTORE_ALL_INT2
- add sp, sp, 4 /* hop over unused "pt_regs->stack_place_holder" */
-
ld.ab r9, [sp, 4]
sr r9, [bta_l2]
ld.ab r9, [sp, 4]
diff --git a/arch/arc/include/asm/ptrace.h b/arch/arc/include/asm/ptrace.h
index f82a3a2201b5..7491bb7428bd 100644
--- a/arch/arc/include/asm/ptrace.h
+++ b/arch/arc/include/asm/ptrace.h
@@ -17,12 +17,6 @@
/* THE pt_regs: Defines how regs are saved during entry into kernel */
struct pt_regs {
- /*
- * 1 word gutter after reg-file has been saved
- * Technically not needed, Since SP always points to a "full" location
- * (vs. "empty"). But pt_regs is shared with tools....
- */
- long res;
/* Real registers */
long bta; /* bta_l1, bta_l2, erbta */
diff --git a/arch/arc/include/uapi/asm/ptrace.h b/arch/arc/include/uapi/asm/ptrace.h
index 30333cec0fef..e0e8403f181f 100644
--- a/arch/arc/include/uapi/asm/ptrace.h
+++ b/arch/arc/include/uapi/asm/ptrace.h
@@ -20,16 +20,19 @@
*
* This is to decouple pt_regs from user-space ABI, to be able to change it
* w/o affecting the ABI.
- * Although the layout (initial padding) is similar to pt_regs to have some
- * optimizations when copying pt_regs to/from user_regs_struct.
+ *
+ * The intermediate pad,pad2 are relics of initial layout based on pt_regs
+ * for optimizations when copying pt_regs to/from user_regs_struct.
+ * We no longer need them, but can't be changed as they are part of ABI now.
*
* Also, sigcontext only care about the scratch regs as that is what we really
- * save/restore for signal handling.
+ * save/restore for signal handling. However gdb also uses the same struct
+ * hence callee regs need to be in there too.
*/
struct user_regs_struct {
+ long pad;
struct {
- long pad;
long bta, lp_start, lp_end, lp_count;
long status32, ret, blink, fp, gp;
long r12, r11, r10, r9, r8, r7, r6, r5, r4, r3, r2, r1, r0;
OpenPOWER on IntegriCloud