提交 e0c827c0 编写于 作者: N Nicholas Piggin 提交者: Michael Ellerman

powerpc/64s: Avoid a branch in masked_[H]interrupt()

Interrupts which do not require EE to be cleared can all be tested
with a single bitwise test.
Signed-off-by: NNicholas Piggin <npiggin@gmail.com>
Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
上级 3a2df379
...@@ -1370,10 +1370,8 @@ masked_##_H##interrupt: \ ...@@ -1370,10 +1370,8 @@ masked_##_H##interrupt: \
ori r10,r10,0xffff; \ ori r10,r10,0xffff; \
mtspr SPRN_DEC,r10; \ mtspr SPRN_DEC,r10; \
b MASKED_DEC_HANDLER_LABEL; \ b MASKED_DEC_HANDLER_LABEL; \
1: cmpwi r10,PACA_IRQ_DBELL; \ 1: andi. r10,r10,(PACA_IRQ_DBELL|PACA_IRQ_HMI); \
beq 2f; \ bne 2f; \
cmpwi r10,PACA_IRQ_HMI; \
beq 2f; \
mfspr r10,SPRN_##_H##SRR1; \ mfspr r10,SPRN_##_H##SRR1; \
rldicl r10,r10,48,1; /* clear MSR_EE */ \ rldicl r10,r10,48,1; /* clear MSR_EE */ \
rotldi r10,r10,16; \ rotldi r10,r10,16; \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册