瀏覽代碼

netx: Use get_irqnr_preamble to initialize base register

This patch optimizes the irq handling a bit.  Now the base register is
only computed once per irq exception instead of at least twice.
Moreover the mov+add sequence is simplified to an ldr (which might save
some cycles depending on memory timing).

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Uwe Kleine-König 16 年之前
父節點
當前提交
b88fb83b13
共有 1 個文件被更改,包括 1 次插入3 次删除
  1. 1 3
      arch/arm/mach-netx/include/mach/entry-macro.S

+ 1 - 3
arch/arm/mach-netx/include/mach/entry-macro.S

@@ -24,15 +24,13 @@
 		.endm
 		.endm
 
 
 		.macro  get_irqnr_preamble, base, tmp
 		.macro  get_irqnr_preamble, base, tmp
+		ldr	\base, =io_p2v(0x001ff000)
 		.endm
 		.endm
 
 
 		.macro  arch_ret_to_user, tmp1, tmp2
 		.macro  arch_ret_to_user, tmp1, tmp2
 		.endm
 		.endm
 
 
 		.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
 		.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-		mov	\base, #io_p2v(0x00100000)
-		add	\base, \base, #0x000ff000
-
 		ldr	\irqstat, [\base, #0]
 		ldr	\irqstat, [\base, #0]
 		clz	\irqnr, \irqstat
 		clz	\irqnr, \irqstat
 		rsb     \irqnr, \irqnr, #31
 		rsb     \irqnr, \irqnr, #31