diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2017-08-11 18:39:00 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-08-23 15:06:48 +0200 |
commit | 6e9a2f6ebac457dd81c531473c1364514907e5a7 (patch) | |
tree | e1294d2e0f6592cf7ae7ba7b44ab6c14b7832ccf /arch/powerpc/kernel/exceptions-64s.S | |
parent | powerpc/64s: Avoid a branch in masked_[H]interrupt() (diff) | |
download | linux-6e9a2f6ebac457dd81c531473c1364514907e5a7.tar.xz linux-6e9a2f6ebac457dd81c531473c1364514907e5a7.zip |
powerpc/64s: Optimise clearing of MSR_EE in masked_[H]interrupt()
MSR_EE is always enabled in SRR1 for masked interrupts, so we can use
xor to clear it.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel/exceptions-64s.S')
-rw-r--r-- | arch/powerpc/kernel/exceptions-64s.S | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index caf083d89500..2cc5e9d4c907 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -1373,8 +1373,7 @@ masked_##_H##interrupt: \ 1: andi. r10,r10,(PACA_IRQ_DBELL|PACA_IRQ_HMI); \ bne 2f; \ mfspr r10,SPRN_##_H##SRR1; \ - rldicl r10,r10,48,1; /* clear MSR_EE */ \ - rotldi r10,r10,16; \ + xori r10,r10,MSR_EE; /* clear MSR_EE */ \ mtspr SPRN_##_H##SRR1,r10; \ 2: mtcrf 0x80,r9; \ ld r9,PACA_EXGEN+EX_R9(r13); \ |