Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 749137a2 authored by LEROY Christophe's avatar LEROY Christophe Committed by Scott Wood
Browse files

powerpc/8xx: DataAccess exception not generated by MPC8xx



DataAccess exception is never generated by MPC8xx so do the job directly where
it is used to avoid an unnecessary branching.

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
parent 7439b37e
Loading
Loading
Loading
Loading
+10 −11
Original line number Original line Diff line number Diff line
@@ -219,19 +219,10 @@ MachineCheck:
	EXC_XFER_STD(0x200, machine_check_exception)
	EXC_XFER_STD(0x200, machine_check_exception)


/* Data access exception.
/* Data access exception.
 * This is "never generated" by the MPC8xx.  We jump to it for other
 * This is "never generated" by the MPC8xx.
 * translation errors.
 */
 */
	. = 0x300
	. = 0x300
DataAccess:
DataAccess:
	EXCEPTION_PROLOG
	mfspr	r10,SPRN_DSISR
	stw	r10,_DSISR(r11)
	mr	r5,r10
	mfspr	r4,SPRN_DAR
	li	r10,0x00f0
	mtspr	SPRN_DAR,r10	/* Tag DAR, to be used in DTLB Error */
	EXC_XFER_LITE(0x300, handle_page_fault)


/* Instruction access exception.
/* Instruction access exception.
 * This is "never generated" by the MPC8xx.
 * This is "never generated" by the MPC8xx.
@@ -491,7 +482,15 @@ DataTLBError:
	beq-	FixupDAR	/* must be a buggy dcbX, icbi insn. */
	beq-	FixupDAR	/* must be a buggy dcbX, icbi insn. */
DARFixed:/* Return from dcbx instruction bug workaround */
DARFixed:/* Return from dcbx instruction bug workaround */
	EXCEPTION_EPILOG_0
	EXCEPTION_EPILOG_0
	b	DataAccess
	EXCEPTION_PROLOG
	mfspr	r10,SPRN_DSISR
	stw	r10,_DSISR(r11)
	mr	r5,r10
	mfspr	r4,SPRN_DAR
	li	r10,0x00f0
	mtspr	SPRN_DAR,r10	/* Tag DAR, to be used in DTLB Error */
	/* 0x300 is DataAccess exception, needed by bad_page_fault() */
	EXC_XFER_LITE(0x300, handle_page_fault)


	EXCEPTION(0x1500, Trap_15, unknown_exception, EXC_XFER_EE)
	EXCEPTION(0x1500, Trap_15, unknown_exception, EXC_XFER_EE)
	EXCEPTION(0x1600, Trap_16, unknown_exception, EXC_XFER_EE)
	EXCEPTION(0x1600, Trap_16, unknown_exception, EXC_XFER_EE)