diff options
| -rw-r--r-- | arch/arm/include/asm/assembler.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 683a1e6b6020..2ef95813fce0 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h | |||
| @@ -254,16 +254,17 @@ | |||
| 254 | mov lr , \reg | 254 | mov lr , \reg |
| 255 | and lr , lr , #MODE_MASK | 255 | and lr , lr , #MODE_MASK |
| 256 | cmp lr , #HYP_MODE | 256 | cmp lr , #HYP_MODE |
| 257 | orr \reg , \reg , #PSR_A_BIT | PSR_I_BIT | PSR_F_BIT | 257 | orr \reg , \reg , #PSR_I_BIT | PSR_F_BIT |
| 258 | bic \reg , \reg , #MODE_MASK | 258 | bic \reg , \reg , #MODE_MASK |
| 259 | orr \reg , \reg , #SVC_MODE | 259 | orr \reg , \reg , #SVC_MODE |
| 260 | THUMB( orr \reg , \reg , #PSR_T_BIT ) | 260 | THUMB( orr \reg , \reg , #PSR_T_BIT ) |
| 261 | msr spsr_cxsf, \reg | ||
| 262 | adr lr, BSYM(2f) | ||
| 263 | bne 1f | 261 | bne 1f |
| 262 | orr \reg, \reg, #PSR_A_BIT | ||
| 263 | adr lr, BSYM(2f) | ||
| 264 | msr spsr_cxsf, \reg | ||
| 264 | __MSR_ELR_HYP(14) | 265 | __MSR_ELR_HYP(14) |
| 265 | __ERET | 266 | __ERET |
| 266 | 1: movs pc, lr | 267 | 1: msr cpsr_c, \reg |
| 267 | 2: | 268 | 2: |
| 268 | .endm | 269 | .endm |
| 269 | 270 | ||
