ARC: entry.S: use single EXCEPTION_PROLOGUE
authorVineet Gupta <vgupta@synopsys.com>
Fri, 27 Mar 2015 15:29:34 +0000 (20:59 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Fri, 19 Jun 2015 12:39:39 +0000 (18:09 +0530)
Returning from pure kernel mode and exception mode use the same code
anyways. Remove one the duplicate blocks

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/kernel/entry-compact.S

index abc62cd10a8c2f93601704b8cb99e0ec400ef649..15d457b4403ae4a9ab55f455fd7e2ad1492e780c 100644 (file)
@@ -321,14 +321,11 @@ END(call_do_page_fault)
        ; decide that.
 
        ; if Returning from Exception
-       bbit0  r10, STATUS_AE_BIT, not_exception
-       EXCEPTION_EPILOGUE
-       rtie
+       btst   r10, STATUS_AE_BIT
+       bnz    .Lexcep_ret
 
        ; Not Exception so maybe Interrupts (Level 1 or 2)
 
-not_exception:
-
 #ifdef CONFIG_ARC_COMPACT_IRQ_LEVELS
 
        ; Level 2 interrupt return Path - from hardware standpoint
@@ -377,16 +374,17 @@ not_level2_interrupt:
 
 #endif
 
-       bbit0  r10, STATUS_A1_BIT, not_level1_interrupt
+       bbit0  r10, STATUS_A1_BIT, .Lpure_k_mode_ret
 
        ;return from level 1
        INTERRUPT_EPILOGUE 1
 debug_marker_l1:
        rtie
 
-not_level1_interrupt:
+.Lexcep_ret:
+.Lpure_k_mode_ret:
 
-       ;this case is for syscalls or Exceptions (with fake rtie)
+       ;this case is for syscalls or Exceptions or pure kernel mode
 
        EXCEPTION_EPILOGUE
 debug_marker_syscall: