ats+.s 1.95 KB
/************************************************************************
  This RSP program implements the improved Algorithmic Test Sequence
  (ATS) memory test procedure for DMEM with wired-OR or wired-AND RAM
  construction.
 ************************************************************************/

#define	G0_START	0x0FFC
#define	G1_START	0x0FF4
#define	G2_START	0x0FF8

	.base 0x04001000

	nor	$31, $0,  $0

	ori	$30, $0,  1
	ori	$1,  $0,  G1_START
Step1:	sw	$0,  0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step1
	nop

	ori	$30, $0,  2
	ori	$1,  $0,  G2_START
Step2:	sw	$0,  0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step2
	nop

	ori	$30, $0,  3
	ori	$1,  $0,  G0_START
Step3:	sw	$31, 0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step3
	nop

	ori	$30, $0,  4
	ori	$1,  $0,  G1_START
Step4:	lw	$2,  0 ($1)
	bne	$2,  $0,  Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step4
	nop

	ori	$30, $0,  5
	ori	$1,  $0,  G1_START
Step5:	sw	$31, 0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step5
	nop

	ori	$30, $0,  6
	ori	$1,  $0,  G2_START
Step6:	lw	$2,  0 ($1)
	bne	$2,  $0,  Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step6
	nop

	ori	$30, $0,  7
	ori	$1,  $0,  G2_START
Step7:	sw	$31, 0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step7
	nop

	ori	$30, $0,  8
	ori	$1,  $0,  G0_START
Step8:	lw	$3,  0 ($1)
	bne	$3,  $31, Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step8
	nop

	ori	$30, $0,  9
	ori	$1,  $0,  G0_START
Step9:	sw	$0,  0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step9
	nop

	ori	$30, $0,  10
	ori	$1,  $0,  G1_START
Step10:	lw	$3,  0 ($1)
	bne	$3,  $31, Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step10
	nop

	ori	$30, $0,  11
	ori	$1,  $0,  G1_START
Step11:	sw	$31, 0 ($1)
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step11
	nop

	ori	$30, $0,  12
	ori	$1,  $0,  G2_START
Step12:	lw	$3,  0 ($1)
	bne	$3,  $31, Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step12
	nop

	ori	$30, $0,  13
	ori	$1,  $0,  G0_START
Step13:	lw	$2,  0 ($1)
	bne	$2,  $0,  Fail
	addi	$1,  $1,  0xFFF4
	bgez	$1,  Step13
	nop

	ori	$1,  $0,  0xFEED
Fail:	break