123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- ; This test checks the effect of SET15 on multiplications.
- incdir "tests"
- include "dsp_base.inc"
- ; Results are in capitals like this: UNSIGNED
- test_main:
- CLR15
- ; Test MULXMVZ - SET15
- CLR $ACC0
- CLRP
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULXMVZ $AX0.L, $AX1.H, $ACC0 ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- CLRP
- SET15
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULXMVZ $AX0.L, $AX1.H, $ACC0 ; UNSIGNED
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MULXMV - SET15
- CLR $ACC0
- CLRP
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULXMV $AX0.L, $AX1.H, $ACC0 ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- CLRP
- SET15
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULXMV $AX0.L, $AX1.H, $ACC0 ; UNSIGNED
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MULXAC - SET15
- CLR $ACC0
- CLRP
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULXAC $AX0.L, $AX1.H, $ACC0 ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- CLRP
- SET15
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULXAC $AX0.L, $AX1.H, $ACC0 ; UNSIGNED
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MULX - SET15
- CLR $ACC0
- CLRP
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULX $AX0.L, $AX1.H ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- CLRP
- SET15
- LRI $AX0.L, #0xFFFF
- LRI $AX1.H, #0x100
- MULX $AX0.L, $AX1.H ; UNSIGNED
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MADDX - SET15
- CLR $ACC0
- CLRP
- LRI $AX0.L, #0xFFFF
- LRI $AX1.L, #0x100
- MADDX $AX0.L, $AX1.L ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- CLRP
- SET15
- LRI $AX0.L, #0xFFFF
- LRI $AX1.L, #0x100
- MADDX $AX0.L, $AX1.L ; SIGNED (!)
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MULC - SET15
- CLR $ACC0
- CLRP
- LRI $AC0.M, #0xFFFF
- LRI $AX0.H, #0x100
- MULC $AC0.M, $AX0.H ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- CLRP
- SET15
- LRI $AC0.M, #0xFFFF
- LRI $AX0.H, #0x100
- MULC $AC0.M, $AX0.H ; SIGNED (!)
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MULCAC - SET15
- CLR $ACC0
- CLRP
- LRI $AC0.M, #0xFFFF
- LRI $AX0.H, #0x100
- MULCAC $AC0.M, $AX0.H, $ACC0 ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- CLRP
- SET15
- LRI $AC0.M, #0xFFFF
- LRI $AX0.H, #0x100
- MULCAC $AC0.M, $AX0.H, $ACC0 ; SIGNED (!)
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MUL - SET15
- CLR $ACC0
- CLRP
- LRI $AX0.L, #0xFFFF
- LRI $AX0.H, #0x100
- MUL $AX0.L, $AX0.H ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- SET15
- LRI $AX0.L, #0xFFFF
- LRI $AX0.H, #0x100
- MUL $AX0.L, $AX0.H ; SIGNED (!)
- MOVP $ACC0
- call send_back
- CLR15
- ; Test MULAC - SET15
- CLR $ACC0
- CLRP
- LRI $AX0.L, #0xFFFF
- LRI $AX0.H, #0x100
- MULAC $AX0.L, $AX0.H, $ACC0 ; SIGNED
- MOVP $ACC0
- call send_back
- CLR $ACC0
- SET15
- LRI $AX0.L, #0xFFFF
- LRI $AX0.H, #0x100
- MULAC $AX0.L, $AX0.H, $ACC0 ; SIGNED (!)
- MOVP $ACC0
- call send_back
- CLR15
- ; We're done, DO NOT DELETE THIS LINE
- jmp end_of_test
- ; test accelerator
- ; TODO: DSPSpy puts a 16-bit ramp at 0x10000000
- LRIS $AC1.M, #0x0a ; 16-bit PCM audio
- ;SRS @SampleFormat, $AC1.M
- ; Start accelerator position
- LRI $AC1.M, #0x0100
- SRS @ACCAH, $AC1.M
- LRI $AC1.M, #0x1000
- SRS @ACCAH, $AC1.M
- ; Current accelerator position
- LRI $AC1.M, #0x0100
- SRS @ACCAH, $AC1.M
- LRI $AC1.M, #0x1000
- SRS @ACCAH, $AC1.M
- ; End accelerator position
- LRI $AC1.M, #0x0100
- SRS @ACCAH, $AC1.M
- LRI $AC1.M, #0x2000
- SRS @ACCAH, $AC1.M
- ; Now to the interesting parameter - gain.
- LRI $AC1.M, #0xFFFF
- SRS @GAIN, $AC1.M
- ; Let's now load a sample through the accelerator.
- LRS $AC1.M, @ARAM
- call send_back
- jmp end_of_test
- ; test addpaxz
- call send_back
- clrp
- lri $AX0.L, #0x1111
- lri $AX0.H, #0x2222
- call send_back
- clrp
- addpaxz $ACC0, $AX0.H
- call send_back
- clrp
- set40
- addpaxz $ACC0, $AX0.H
- set16
- call send_back
- clrp
- set15
- addpaxz $ACC0, $AX0.H
- clr15
- call send_back
- jmp end_of_test
|