252 lines
3.7 KiB
Plaintext
252 lines
3.7 KiB
Plaintext
; 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
|
|
|