1# Blackfin testcase for playing with BYTEUNPACK 2# mach: bfin 3 4 .include "testutils.inc" 5 6 start 7 8 .macro _bu_pre_test i0:req, src0:req, src1:req 9 dmm32 I0, \i0 10 imm32 R0, \src0 11 imm32 R1, \src1 12 .endm 13 .macro _bu_chk_test dst0:req, dst1:req 14 imm32 R2, \dst0 15 imm32 R3, \dst1 16 CC = R5 == R2; 17 IF !CC jump 1f; 18 CC = R6 == R3; 19 IF !CC jump 1f; 20 .endm 21 .macro bu_test i0:req, dst0:req, dst1:req, src0:req, src1:req 22 _bu_pre_test \i0, \src0, \src1 23 (R6, R5) = BYTEUNPACK R1:0; 24 _bu_chk_test \dst0, \dst1 25 .endm 26 .macro bu_r_test i0:req, dst0:req, dst1:req, src0:req, src1:req 27 _bu_pre_test \i0, \src0, \src1 28 (R6, R5) = BYTEUNPACK R1:0 (R); 29 _bu_chk_test \dst0, \dst1 30 .endm 31 32 # Taken from PRM 33 bu_test 0, 0x00BA00DD, 0x00BE00EF, 0xBEEFBADD, 0xFEEDFACE 34 bu_test 1, 0x00EF00BA, 0x00CE00BE, 0xBEEFBADD, 0xFEEDFACE 35 bu_test 2, 0x00BE00EF, 0x00FA00CE, 0xBEEFBADD, 0xFEEDFACE 36 bu_test 3, 0x00CE00BE, 0x00ED00FA, 0xBEEFBADD, 0xFEEDFACE 37 38 # Taken from PRM 39 bu_r_test 0, 0x00FA00CE, 0x00FE00ED, 0xBEEFBADD, 0xFEEDFACE 40 bu_r_test 1, 0x00ED00FA, 0x00DD00FE, 0xBEEFBADD, 0xFEEDFACE 41 bu_r_test 2, 0x00FE00ED, 0x00BA00DD, 0xBEEFBADD, 0xFEEDFACE 42 bu_r_test 3, 0x00DD00FE, 0x00EF00BA, 0xBEEFBADD, 0xFEEDFACE 43 44 pass 451: fail 46