瀏覽代碼

ARC: entry.S: use single EXCEPTION_PROLOGUE

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>
Vineet Gupta 10 年之前
父節點
當前提交
c80417b612
共有 1 個文件被更改,包括 6 次插入8 次删除
  1. 6 8
      arch/arc/kernel/entry-compact.S

+ 6 - 8
arch/arc/kernel/entry-compact.S

@@ -321,14 +321,11 @@ END(call_do_page_fault)
 	; decide that.
 	; decide that.
 
 
 	; if Returning from Exception
 	; 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 so maybe Interrupts (Level 1 or 2)
 
 
-not_exception:
-
 #ifdef CONFIG_ARC_COMPACT_IRQ_LEVELS
 #ifdef CONFIG_ARC_COMPACT_IRQ_LEVELS
 
 
 	; Level 2 interrupt return Path - from hardware standpoint
 	; Level 2 interrupt return Path - from hardware standpoint
@@ -377,16 +374,17 @@ not_level2_interrupt:
 
 
 #endif
 #endif
 
 
-	bbit0  r10, STATUS_A1_BIT, not_level1_interrupt
+	bbit0  r10, STATUS_A1_BIT, .Lpure_k_mode_ret
 
 
 	;return from level 1
 	;return from level 1
 	INTERRUPT_EPILOGUE 1
 	INTERRUPT_EPILOGUE 1
 debug_marker_l1:
 debug_marker_l1:
 	rtie
 	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
 	EXCEPTION_EPILOGUE
 debug_marker_syscall:
 debug_marker_syscall: