From d8f40010c46d6e300ec687a4b9339945c009b7cc Mon Sep 17 00:00:00 2001 From: Richard Kuo Date: Tue, 9 Apr 2013 17:06:08 -0500 Subject: [PATCH] --- yaml --- r: 367967 b: refs/heads/master c: 426d29ccb2a8d44c18d3167327ee82b38287e7bf h: refs/heads/master i: 367965: 1447b7c99d9d2805afba70e90eb40293463f15f6 367963: a59b6f5f8df48f311e6e70d8b804cc11f3a77877 367959: 4eac69d8700387c98ccdaef9c6ac6a6c1f646398 367951: 07db2e32c1a5fa1a0d676bbf24e3ca81e278e561 367935: 2717a0ee70d97101dfdf9bff30b19a72ebfa644a v: v3 --- [refs] | 2 +- trunk/arch/hexagon/include/asm/elf.h | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 60f8067b488c..fb6104a6df14 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5c883b462aa5ecde3da6cabdca00f6abac22aa74 +refs/heads/master: 426d29ccb2a8d44c18d3167327ee82b38287e7bf diff --git a/trunk/arch/hexagon/include/asm/elf.h b/trunk/arch/hexagon/include/asm/elf.h index f52d8ec9ccf2..e1b933a0e121 100644 --- a/trunk/arch/hexagon/include/asm/elf.h +++ b/trunk/arch/hexagon/include/asm/elf.h @@ -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.