aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Kuo <rkuo@codeaurora.org>2012-05-10 17:40:14 -0500
committerRichard Kuo <rkuo@codeaurora.org>2013-03-27 22:14:00 -0500
commite199fb44f06cc324bcdae28170a8b360a064cded (patch)
tree7648771c08ef1b6dae89fce948fcff89f4b95b83
parent1701b01a3b3ef49ca95e240d711578d06011ba4b (diff)
downloadlinux-hexagon-kernel-e199fb44f06cc324bcdae28170a8b360a064cded.tar.gz
Hexagon: add individual register access for switch_stack
Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
-rw-r--r--arch/hexagon/include/asm/processor.h49
1 files changed, 43 insertions, 6 deletions
diff --git a/arch/hexagon/include/asm/processor.h b/arch/hexagon/include/asm/processor.h
index 6dd5d37068698..758bcd1f290c2 100644
--- a/arch/hexagon/include/asm/processor.h
+++ b/arch/hexagon/include/asm/processor.h
@@ -100,12 +100,49 @@ extern unsigned long get_wchan(struct task_struct *p);
*/
struct hexagon_switch_stack {
- unsigned long long r1716;
- unsigned long long r1918;
- unsigned long long r2120;
- unsigned long long r2322;
- unsigned long long r2524;
- unsigned long long r2726;
+ union {
+ struct {
+ unsigned long r16;
+ unsigned long r17;
+ };
+ unsigned long long r1716;
+ };
+ union {
+ struct {
+ unsigned long r18;
+ unsigned long r19;
+ };
+ unsigned long long r1918;
+ };
+ union {
+ struct {
+ unsigned long r20;
+ unsigned long r21;
+ };
+ unsigned long long r2120;
+ };
+ union {
+ struct {
+ unsigned long r22;
+ unsigned long r23;
+ };
+ unsigned long long r2322;
+ };
+ union {
+ struct {
+ unsigned long r24;
+ unsigned long r25;
+ };
+ unsigned long long r2524;
+ };
+ union {
+ struct {
+ unsigned long r26;
+ unsigned long r27;
+ };
+ unsigned long long r2726;
+ };
+
unsigned long fp;
unsigned long lr;
};