diff options
Diffstat (limited to 'arch/powerpc/kernel/vdso64/sigtramp.S')
-rw-r--r-- | arch/powerpc/kernel/vdso64/sigtramp.S | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/vdso64/sigtramp.S b/arch/powerpc/kernel/vdso64/sigtramp.S index 45ea281e9a21..542c6f422e4d 100644 --- a/arch/powerpc/kernel/vdso64/sigtramp.S +++ b/arch/powerpc/kernel/vdso64/sigtramp.S | |||
@@ -142,6 +142,13 @@ V_FUNCTION_END(__kernel_sigtramp_rt64) | |||
142 | /* Size of CR reg in DWARF unwind info. */ | 142 | /* Size of CR reg in DWARF unwind info. */ |
143 | #define CRSIZE 4 | 143 | #define CRSIZE 4 |
144 | 144 | ||
145 | /* Offset of CR reg within a full word. */ | ||
146 | #ifdef __LITTLE_ENDIAN__ | ||
147 | #define CROFF 0 | ||
148 | #else | ||
149 | #define CROFF (RSIZE - CRSIZE) | ||
150 | #endif | ||
151 | |||
145 | /* This is the offset of the VMX reg pointer. */ | 152 | /* This is the offset of the VMX reg pointer. */ |
146 | #define VREGS 48*RSIZE+33*8 | 153 | #define VREGS 48*RSIZE+33*8 |
147 | 154 | ||
@@ -181,7 +188,14 @@ V_FUNCTION_END(__kernel_sigtramp_rt64) | |||
181 | rsave (31, 31*RSIZE); \ | 188 | rsave (31, 31*RSIZE); \ |
182 | rsave (67, 32*RSIZE); /* ap, used as temp for nip */ \ | 189 | rsave (67, 32*RSIZE); /* ap, used as temp for nip */ \ |
183 | rsave (65, 36*RSIZE); /* lr */ \ | 190 | rsave (65, 36*RSIZE); /* lr */ \ |
184 | rsave (70, 38*RSIZE + (RSIZE - CRSIZE)) /* cr */ | 191 | rsave (68, 38*RSIZE + CROFF); /* cr fields */ \ |
192 | rsave (69, 38*RSIZE + CROFF); \ | ||
193 | rsave (70, 38*RSIZE + CROFF); \ | ||
194 | rsave (71, 38*RSIZE + CROFF); \ | ||
195 | rsave (72, 38*RSIZE + CROFF); \ | ||
196 | rsave (73, 38*RSIZE + CROFF); \ | ||
197 | rsave (74, 38*RSIZE + CROFF); \ | ||
198 | rsave (75, 38*RSIZE + CROFF) | ||
185 | 199 | ||
186 | /* Describe where the FP regs are saved. */ | 200 | /* Describe where the FP regs are saved. */ |
187 | #define EH_FRAME_FP \ | 201 | #define EH_FRAME_FP \ |