1 #include "mips-codegen.h"
5 unsigned int *code, * p;
7 code = p = malloc (sizeof (int) * 1024);
10 mips_addi (p, 3, 4, 5);
11 mips_addu (p, 3, 4, 5);
12 mips_addiu (p, 3, 4, 5);
13 mips_sub (p, 3, 4, 5);
14 mips_subu (p, 3, 4, 5);
15 mips_dadd (p, 3, 4, 5);
16 mips_daddi (p, 3, 4, 5);
17 mips_daddu (p, 3, 4, 5);
18 mips_daddiu (p, 3, 4, 5);
19 mips_dsub (p, 3, 4, 5);
20 mips_dsubu (p, 3, 4, 5);
27 mips_dmultu (p, 6, 7);
31 mips_sll (p, 3, 4, 5);
32 mips_sllv (p, 3, 4, 5);
33 mips_sra (p, 3, 4, 5);
34 mips_srav (p, 3, 4, 5);
35 mips_srl (p, 3, 4, 5);
36 mips_srlv (p, 3, 4, 5);
37 mips_dsll (p, 3, 4, 5);
38 mips_dsll32 (p, 3, 4, 5);
39 mips_dsllv (p, 3, 4, 5);
40 mips_dsra (p, 3, 4, 5);
41 mips_dsra32 (p, 3, 4, 5);
42 mips_dsrav (p, 3, 4, 5);
43 mips_dsrl (p, 3, 4, 5);
44 mips_dsrl32 (p, 3, 4, 5);
45 mips_dsrlv (p, 3, 4, 5);
47 mips_and (p, 8, 9, 10);
48 mips_andi (p, 8, 9, 10);
49 mips_nor (p, 8, 9, 10);
50 mips_or (p, 8, 9, 10);
51 mips_ori (p, 8, 9, 10);
52 mips_xor (p, 8, 9, 10);
53 mips_xori (p, 8, 9, 10);
55 mips_slt (p, 8, 9, 10);
56 mips_slti (p, 8, 9, 10);
57 mips_sltu (p, 8, 9, 10);
58 mips_sltiu (p, 8, 9, 10);
60 mips_beq (p, 8, 9, 0xff1f);
61 mips_beql (p, 8, 9, 0xff1f);
62 mips_bne (p, 8, 9, 0xff1f);
63 mips_bnel (p, 8, 9, 0xff1f);
64 mips_bgez (p, 11, 0xff1f);
65 mips_bgezal (p, 11, 0xff1f);
66 mips_bgezall (p, 11, 0xff1f);
67 mips_bgezl (p, 11, 0xff1f);
68 mips_bgtz (p, 11, 0xff1f);
69 mips_bgtzl (p, 11, 0xff1f);
70 mips_blez (p, 11, 0xff1f);
71 mips_blezl (p, 11, 0xff1f);
72 mips_bltz (p, 11, 0xff1f);
73 mips_bltzal (p, 11, 0xff1f);
74 mips_bltzall (p, 11, 0xff1f);
75 mips_bltzl (p, 11, 0xff1f);
77 mips_jump (p, 0xff1f);
78 mips_jumpl (p, 0xff1f);
79 mips_jalr (p, 12, mips_ra);
82 mips_lb (p, 13, 14, 128);
83 mips_lbu (p, 13, 14, 128);
84 mips_ld (p, 13, 14, 128);
85 mips_ldl (p, 13, 14, 128);
86 mips_ldr (p, 13, 14, 128);
87 mips_lh (p, 13, 14, 128);
88 mips_lhu (p, 13, 14, 128);
89 mips_ll (p, 13, 14, 128);
90 mips_lld (p, 13, 14, 128);
91 mips_lui (p, 13, 14, 128);
92 mips_lw (p, 13, 14, 128);
93 mips_lwl (p, 13, 14, 128);
94 mips_lwr (p, 13, 14, 128);
95 mips_lwu (p, 13, 14, 128);
96 mips_sb (p, 13, 14, 128);
97 mips_sc (p, 13, 14, 128);
98 mips_scd (p, 13, 14, 128);
99 mips_sd (p, 13, 14, 128);
100 mips_sdl (p, 13, 14, 128);
101 mips_sdr (p, 13, 14, 128);
102 mips_sh (p, 13, 14, 128);
103 mips_sw (p, 13, 14, 128);
104 mips_swl (p, 13, 14, 128);
105 mips_swr (p, 13, 14, 128);
107 mips_move (p, 15, 16);
116 mips_fabsd (p, 16, 18);
117 mips_fnegd (p, 16, 18);
118 mips_fsqrtd (p, 16, 18);
119 mips_faddd (p, 16, 18, 20);
120 mips_fdivd (p, 16, 18, 20);
121 mips_fmuld (p, 16, 18, 20);
122 mips_fsubd (p, 16, 18, 20);
124 mips_fcmpd (p, MIPS_FPU_EQ, 18, 20);
125 mips_fbfalse (p, 0xff1f);
126 mips_fbfalsel (p, 0xff1f);
127 mips_fbtrue (p, 0xff1f);
128 mips_fbtruel (p, 0xff1f);
130 mips_ceilwd (p, 20, 22);
131 mips_ceilld (p, 20, 22);
132 mips_floorwd (p, 20, 22);
133 mips_floorld (p, 20, 22);
134 mips_roundwd (p, 20, 22);
135 mips_roundld (p, 20, 22);
136 mips_truncwd (p, 20, 22);
137 mips_truncld (p, 20, 22);
138 mips_cvtdw (p, 20, 22);
139 mips_cvtds (p, 20, 22);
140 mips_cvtdl (p, 20, 22);
141 mips_cvtld (p, 20, 22);
142 mips_cvtsd (p, 20, 22);
143 mips_cvtwd (p, 20, 22);
145 mips_fmovd (p, 20, 22);
146 printf ("size: %d\n", p - code);