*参照元 [#ef349aea]
#backlinks

*説明 [#k35506fc]
-パス: [[linux-2.6.33/]]
-パス: [[linux-2.6.33/arch/arm/kernel/entry-armv.S]]

-FIXME: これは何?
--説明


**引数 [#b3a2b849]
-なし


**返り値 [#z29f2667]
-なし


**参考 [#k1516bbe]


*実装 [#dea800bb]
 	.align	5
-2^5 = 32バイト境界に配置する

 __pabt_svc:
 	svc_entry
 
-
--[[linux-2.6.33/svc_entry()]]

 	@
 	@ re-enable interrupts if appropriate
 	@
 	mrs	r9, cpsr
 	tst	r3, #PSR_I_BIT
 	biceq	r9, r9, #PSR_I_BIT
 
-
--[[linux-2.6.33/PSR_I_BIT]]

 	mov	r0, r2			@ pass address of aborted instruction.
 #ifdef MULTI_PABORT
-
--[[linux-2.6.33/MULTI_PABORT]]

 	ldr	r4, .LCprocfns
-
--[[linux-2.6.33/.LCprocfns()]]

 	mov	lr, pc
 	ldr	pc, [r4, #PROCESSOR_PABT_FUNC]
-
--[[linux-2.6.33/PROCESSOR_PABT_FUNC]]

 #else
 	bl	CPU_PABORT_HANDLER
-
--[[linux-2.6.33/CPU_PABORT_HANDLER()]]

 #endif
 	msr	cpsr_c, r9			@ Maybe enable interrupts
 	mov	r2, sp				@ regs
 	bl	do_PrefetchAbort		@ call abort handler
 
-
--[[linux-2.6.33/do_PrefetchAbort()]]

 	@
 	@ IRQs off again before pulling preserved data off the stack
 	@
 	disable_irq
 
-
--[[linux-2.6.33/disable_irq()]]

 	@
 	@ restore SPSR and restart the instruction
 	@
 	ldr	r2, [sp, #S_PSR]
 	svc_exit r2				@ return from exception
-
--[[linux-2.6.33/svc_exit()]]

  UNWIND(.fnend		)
-
--[[linux-2.6.33/UNWIND()]]

 ENDPROC(__pabt_svc)
-
--[[linux-2.6.33/ENDPROC()]]


*コメント [#beef510b]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS