Hexagon: add v4 CS regs to core copyout macro
authorRichard Kuo <rkuo@codeaurora.org>
Tue, 9 Apr 2013 22:06:08 +0000 (17:06 -0500)
committerRichard Kuo <rkuo@codeaurora.org>
Wed, 1 May 2013 00:40:29 +0000 (19:40 -0500)
Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
arch/hexagon/include/asm/elf.h

index f52d8ec9ccf203a1af959ce8741cc6dcb5cbebd2..e1b933a0e121ee92c38d48d93044a431a8d33bd0 100644 (file)
@@ -104,6 +104,16 @@ typedef unsigned long elf_fpregset_t;
  * Bypass the whole "regsets" thing for now and use the define.
  */
 
+#if CONFIG_HEXAGON_ARCH_VERSION >= 4
+#define CS_COPYREGS(DEST,REGS) \
+do {\
+       DEST.cs0 = REGS->cs0;\
+       DEST.cs1 = REGS->cs1;\
+} while (0)
+#else
+#define CS_COPYREGS(DEST,REGS)
+#endif
+
 #define ELF_CORE_COPY_REGS(DEST, REGS) \
 do {                                   \
        DEST.r0 = REGS->r00;            \
@@ -148,13 +158,12 @@ do {                                      \
        DEST.p3_0 = REGS->preds;        \
        DEST.gp = REGS->gp;             \
        DEST.ugp = REGS->ugp;           \
-       DEST.pc = pt_elr(REGS); \
+       CS_COPYREGS(DEST,REGS);         \
+       DEST.pc = pt_elr(REGS);         \
        DEST.cause = pt_cause(REGS);    \
        DEST.badva = pt_badva(REGS);    \
 } while (0);
 
-
-
 /*
  * This is used to ensure we don't load something for the wrong architecture.
  * Checks the machine and ABI type.