]> gitweb.factorcode.org Git - factor.git/blob - extra/cpu/ppc/assembler/assembler-tests.factor
Fix bugs in unix ffi usage
[factor.git] / extra / cpu / ppc / assembler / assembler-tests.factor
1 USING: cpu.ppc.assembler tools.test arrays kernel namespaces
2 make vocabs sequences byte-arrays.hex ;
3 FROM: cpu.ppc.assembler => B ;
4 IN: cpu.ppc.assembler.tests
5
6 : test-assembler ( expected quot -- )
7     [ 1array ] [ [ B{ } make ] curry ] bi* unit-test ;
8
9 HEX{ 38 22 00 03 } [ 1 2 3 ADDI ] test-assembler
10 HEX{ 3c 22 00 03 } [ 1 2 3 ADDIS ] test-assembler
11 HEX{ 30 22 00 03 } [ 1 2 3 ADDIC ] test-assembler
12 HEX{ 34 22 00 03 } [ 1 2 3 ADDIC. ] test-assembler
13 HEX{ 38 40 00 01 } [ 1 2 LI ] test-assembler
14 HEX{ 3c 40 00 01 } [ 1 2 LIS ] test-assembler
15 HEX{ 38 22 ff fd } [ 1 2 3 SUBI ] test-assembler
16 HEX{ 1c 22 00 03 } [ 1 2 3 MULI ] test-assembler
17 HEX{ 7c 22 1a 14 } [ 1 2 3 ADD ] test-assembler
18 HEX{ 7c 22 1a 15 } [ 1 2 3 ADD. ] test-assembler
19 HEX{ 7c 22 1e 14 } [ 1 2 3 ADDO ] test-assembler
20 HEX{ 7c 22 1e 15 } [ 1 2 3 ADDO. ] test-assembler
21 HEX{ 7c 22 18 14 } [ 1 2 3 ADDC ] test-assembler
22 HEX{ 7c 22 18 15 } [ 1 2 3 ADDC. ] test-assembler
23 HEX{ 7c 22 1e 14 } [ 1 2 3 ADDO ] test-assembler
24 HEX{ 7c 22 1c 15 } [ 1 2 3 ADDCO. ] test-assembler
25 HEX{ 7c 22 19 14 } [ 1 2 3 ADDE ] test-assembler
26 HEX{ 7c 41 18 38 } [ 1 2 3 AND ] test-assembler
27 HEX{ 7c 41 18 39 } [ 1 2 3 AND. ] test-assembler
28 HEX{ 7c 22 1b d6 } [ 1 2 3 DIVW ] test-assembler
29 HEX{ 7c 22 1b 96 } [ 1 2 3 DIVWU ] test-assembler
30 HEX{ 7c 41 1a 38 } [ 1 2 3 EQV ] test-assembler
31 HEX{ 7c 41 1b b8 } [ 1 2 3 NAND ] test-assembler
32 HEX{ 7c 41 18 f8 } [ 1 2 3 NOR ] test-assembler
33 HEX{ 7c 41 10 f8 } [ 1 2 NOT ] test-assembler
34 HEX{ 60 41 00 03 } [ 1 2 3 ORI ] test-assembler
35 HEX{ 64 41 00 03 } [ 1 2 3 ORIS ] test-assembler
36 HEX{ 7c 41 1b 78 } [ 1 2 3 OR ] test-assembler
37 HEX{ 7c 41 13 78 } [ 1 2 MR ] test-assembler
38 HEX{ 7c 22 18 96 } [ 1 2 3 MULHW ] test-assembler
39 HEX{ 1c 22 00 03 } [ 1 2 3 MULLI ] test-assembler
40 HEX{ 7c 22 18 16 } [ 1 2 3 MULHWU ] test-assembler
41 HEX{ 7c 22 19 d6 } [ 1 2 3 MULLW ] test-assembler
42 HEX{ 7c 41 18 30 } [ 1 2 3 SLW ] test-assembler
43 HEX{ 7c 41 1e 30 } [ 1 2 3 SRAW ] test-assembler
44 HEX{ 7c 41 1c 30 } [ 1 2 3 SRW ] test-assembler
45 HEX{ 7c 41 1e 70 } [ 1 2 3 SRAWI ] test-assembler
46 HEX{ 7c 22 18 50 } [ 1 2 3 SUBF ] test-assembler
47 HEX{ 7c 22 18 10 } [ 1 2 3 SUBFC ] test-assembler
48 HEX{ 7c 22 19 10 } [ 1 2 3 SUBFE ] test-assembler
49 HEX{ 7c 41 07 74 } [ 1 2 EXTSB ] test-assembler
50 HEX{ 68 41 00 03 } [ 1 2 3 XORI ] test-assembler
51 HEX{ 7c 41 1a 78 } [ 1 2 3 XOR ] test-assembler
52 HEX{ 7c 22 00 d0 } [ 1 2 NEG ] test-assembler
53 HEX{ 2c 22 00 03 } [ 1 2 3 CMPI ] test-assembler
54 HEX{ 28 22 00 03 } [ 1 2 3 CMPLI ] test-assembler
55 HEX{ 7c 41 18 00 } [ 1 2 3 CMP ] test-assembler
56 HEX{ 54 22 19 0a } [ 1 2 3 4 5 RLWINM ] test-assembler
57 HEX{ 54 22 18 38 } [ 1 2 3 SLWI ] test-assembler
58 HEX{ 54 22 e8 fe } [ 1 2 3 SRWI ] test-assembler
59 HEX{ 88 22 00 03 } [ 1 2 3 LBZ ] test-assembler
60 HEX{ 8c 22 00 03 } [ 1 2 3 LBZU ] test-assembler
61 HEX{ a8 22 00 03 } [ 1 2 3 LHA ] test-assembler
62 HEX{ ac 22 00 03 } [ 1 2 3 LHAU ] test-assembler
63 HEX{ a0 22 00 03 } [ 1 2 3 LHZ ] test-assembler
64 HEX{ a4 22 00 03 } [ 1 2 3 LHZU ] test-assembler
65 HEX{ 80 22 00 03 } [ 1 2 3 LWZ ] test-assembler
66 HEX{ 84 22 00 03 } [ 1 2 3 LWZU ] test-assembler
67 HEX{ 7c 41 18 ae } [ 1 2 3 LBZX ] test-assembler
68 HEX{ 7c 41 18 ee } [ 1 2 3 LBZUX ] test-assembler
69 HEX{ 7c 41 1a ae } [ 1 2 3 LHAX ] test-assembler
70 HEX{ 7c 41 1a ee } [ 1 2 3 LHAUX ] test-assembler
71 HEX{ 7c 41 1a 2e } [ 1 2 3 LHZX ] test-assembler
72 HEX{ 7c 41 1a 6e } [ 1 2 3 LHZUX ] test-assembler
73 HEX{ 7c 41 18 2e } [ 1 2 3 LWZX ] test-assembler
74 HEX{ 7c 41 18 6e } [ 1 2 3 LWZUX ] test-assembler
75 HEX{ 7c 41 1c 2e } [ 1 2 3 LFSX ] test-assembler
76 HEX{ 7c 41 1c 6e } [ 1 2 3 LFSUX ] test-assembler
77 HEX{ 7c 41 1c ae } [ 1 2 3 LFDX ] test-assembler
78 HEX{ 7c 41 1c ee } [ 1 2 3 LFDUX ] test-assembler
79 HEX{ 7c 41 1d 2e } [ 1 2 3 STFSX ] test-assembler
80 HEX{ 7c 41 1d 6e } [ 1 2 3 STFSUX ] test-assembler
81 HEX{ 7c 41 1d ae } [ 1 2 3 STFDX ] test-assembler
82 HEX{ 7c 41 1d ee } [ 1 2 3 STFDUX ] test-assembler
83 HEX{ 48 00 00 01 } [ 1 B ] test-assembler
84 HEX{ 48 00 00 01 } [ 1 BL ] test-assembler
85 HEX{ 41 80 00 04 } [ 1 BLT ] test-assembler
86 HEX{ 41 81 00 04 } [ 1 BGT ] test-assembler
87 HEX{ 40 81 00 04 } [ 1 BLE ] test-assembler
88 HEX{ 40 80 00 04 } [ 1 BGE ] test-assembler
89 HEX{ 41 80 00 04 } [ 1 BLT ] test-assembler
90 HEX{ 40 82 00 04 } [ 1 BNE ] test-assembler
91 HEX{ 41 82 00 04 } [ 1 BEQ ] test-assembler
92 HEX{ 41 83 00 04 } [ 1 BO ] test-assembler
93 HEX{ 40 83 00 04 } [ 1 BNO ] test-assembler
94 HEX{ 4c 20 00 20 } [ 1 BCLR ] test-assembler
95 HEX{ 4e 80 00 20 } [ BLR ] test-assembler
96 HEX{ 4e 80 00 21 } [ BLRL ] test-assembler
97 HEX{ 4c 20 04 20 } [ 1 BCCTR ] test-assembler
98 HEX{ 4e 80 04 20 } [ BCTR ] test-assembler
99 HEX{ 7c 61 02 a6 } [ 3 MFXER ] test-assembler
100 HEX{ 7c 68 02 a6 } [ 3 MFLR ] test-assembler
101 HEX{ 7c 69 02 a6 } [ 3 MFCTR ] test-assembler
102 HEX{ 7c 61 03 a6 } [ 3 MTXER ] test-assembler
103 HEX{ 7c 68 03 a6 } [ 3 MTLR ] test-assembler
104 HEX{ 7c 69 03 a6 } [ 3 MTCTR ] test-assembler
105 HEX{ 7c 61 02 a6 } [ 3 MFXER ] test-assembler
106 HEX{ 7c 68 02 a6 } [ 3 MFLR ] test-assembler
107 HEX{ c0 22 00 03 } [ 1 2 3 LFS ] test-assembler
108 HEX{ c4 22 00 03 } [ 1 2 3 LFSU ] test-assembler
109 HEX{ c8 22 00 03 } [ 1 2 3 LFD ] test-assembler
110 HEX{ cc 22 00 03 } [ 1 2 3 LFDU ] test-assembler
111 HEX{ d0 22 00 03 } [ 1 2 3 STFS ] test-assembler
112 HEX{ d4 22 00 03 } [ 1 2 3 STFSU ] test-assembler
113 HEX{ d8 22 00 03 } [ 1 2 3 STFD ] test-assembler
114 HEX{ dc 22 00 03 } [ 1 2 3 STFDU ] test-assembler
115 HEX{ fc 20 10 90 } [ 1 2 FMR ] test-assembler
116 HEX{ fc 40 08 90 } [ 2 1 FMR ] test-assembler
117 HEX{ fc 20 10 91 } [ 1 2 FMR. ] test-assembler
118 HEX{ fc 40 08 91 } [ 2 1 FMR. ] test-assembler
119 HEX{ fc 20 10 1e } [ 1 2 FCTIWZ ] test-assembler
120 HEX{ fc 22 18 2a } [ 1 2 3 FADD ] test-assembler
121 HEX{ fc 22 18 2b } [ 1 2 3 FADD. ] test-assembler
122 HEX{ fc 22 18 28 } [ 1 2 3 FSUB ] test-assembler
123 HEX{ fc 22 00 f2 } [ 1 2 3 FMUL ] test-assembler
124 HEX{ fc 22 18 24 } [ 1 2 3 FDIV ] test-assembler
125 HEX{ fc 20 10 2c } [ 1 2 FSQRT ] test-assembler
126 HEX{ fc 41 18 00 } [ 1 2 3 FCMPU ] test-assembler
127 HEX{ fc 41 18 40 } [ 1 2 3 FCMPO ] test-assembler
128 HEX{ 3c 60 12 34 60 63 56 78 } [ HEX: 12345678 3 LOAD ] test-assembler