mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-12-26 19:44:30 +01:00
51c26d82a5
This makes the point where execution starts more obvious compared to a start_of_test label at the end of the include, and allows putting other functions at the start of the file. This change also modifies the existing tests to build with this change.
316 lines
5.3 KiB
Plaintext
316 lines
5.3 KiB
Plaintext
; This test checks the effect of the index looping registers (R8-R11)
|
|
incdir "tests"
|
|
include "dsp_base.inc"
|
|
|
|
; Tests done using AR1 = 0x0010, IX1 = 0. WR1 (wrap 1) means WR1.
|
|
; WR1 = 0
|
|
; 10, 10, 10, 10,
|
|
; WR1 = 1
|
|
; 10, 11, 10, 11,
|
|
; WR1 = 2
|
|
; 10, 12, 11, 13, 12, 11, 13, 12, 11, 13, 12, 11
|
|
; WR1 = 3
|
|
; 10, 13, 12, 11, 10, 13, 12...
|
|
; WR1 = 4
|
|
; 10, 14, 13, 17, 16, 15, 14, 13, 17, 16, 15, 14, 13, ...
|
|
; WR1 = 5
|
|
; 10, 15, 14, 13, 12, 17, 16, 15, 14, 13, 12, 17,
|
|
; WR1 = 6
|
|
; 10, 16, 15, 14, 13, 12, 11, 17, 16, 15, 14, 13
|
|
; WR1 = 7
|
|
; 10, 17, 16, 15, .. normal
|
|
; WR1 = 8
|
|
; 10, 18, 17, 1f, 1e, 1d, 1c, 1b, 1a, 19, 18, 17, 1f, 1e, .....
|
|
|
|
|
|
; I really don't know how the above could possibly be efficiently implemented in hardware.
|
|
; And thus it's tricky to implement in software too :p
|
|
|
|
; test using indexing register 1 - 0 is used in send_back
|
|
test_main:
|
|
lri $AR1, #16
|
|
lri $IX1, #32
|
|
lri $WR1, #0
|
|
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #2
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #3
|
|
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #4
|
|
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #5
|
|
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #6
|
|
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #7
|
|
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #8
|
|
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
nx'dr : $AR1
|
|
call send_back ; 1
|
|
|
|
|
|
lri $WR1, #0xFFFF
|
|
|
|
; We're done, DO NOT DELETE THIS LINE
|
|
jmp end_of_test
|