mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07: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.
320 lines
5.6 KiB
Plaintext
320 lines
5.6 KiB
Plaintext
; This test checks the effect of the index looping registers (R8-R11)
|
|
incdir "tests"
|
|
include "dsp_base.inc"
|
|
|
|
; First theories, fitting tests with nice masks in the loop registers
|
|
; IR THEORY: if ((ar & lp) == lp) ar &= ~lp;
|
|
; DR THEORY: if ((ar & lp) == 0) ar |= lp;
|
|
; These were proven FALSE though by the following:
|
|
|
|
; Tests done using AR1 = 0x0010, IX1 = 0
|
|
; WR1 = 0
|
|
; 10, 11, 11, 11, 11......
|
|
; WR1 = 1
|
|
; 10, 11, 10, 11, 10......
|
|
; WR1 = 2
|
|
; 10, 11, 12, 13, 11, 12, 13, 11, 12, 13 ......
|
|
; WR1 = 3
|
|
; 10, 11, 12, 13, 10, 11, 12, 13, 10, 11, 12, 13.......
|
|
; WR1 = 4
|
|
; 10, 11, 12, 13, 14, 15, 16, 17, 13, 14, 15, 16, 17, 13, 14, 15 ......
|
|
; WR1 = 5
|
|
; 10, 11, 12, 13, 14, 15, 16, 17, 12, 13, 14, 15 ...
|
|
; WR1 = 6
|
|
; 10, 11, 12, 13, 14, 15, 16, 17, 11, 12, 13, 14...
|
|
; WR1 = 7
|
|
; 10, 11, 12, 13, 14, 15, 16, 17, 10, 11, ....
|
|
; WR1 = 8
|
|
; 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, 1c, 1d, 1e, 1f, 17, 18, 19, 1a, 1b.....
|
|
|
|
|
|
; 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_main:
|
|
; test using indexing register 1 - 0 is used in send_back
|
|
lri $AR1, #16
|
|
lri $IX1, #32
|
|
lri $WR1, #0
|
|
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #2
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #3
|
|
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #4
|
|
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #5
|
|
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #6
|
|
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #7
|
|
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
lri $AR1, #16
|
|
lri $WR1, #8
|
|
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
nx'ir : $AR1
|
|
call send_back ; 1
|
|
|
|
|
|
lri $WR1, #0xFFFF
|
|
|
|
; We're done, DO NOT DELETE THIS LINE
|
|
jmp end_of_test
|