libFirm
gen_TEMPLATE_emitter.c
1 
9 #include "gen_TEMPLATE_emitter.h"
10 
11 #include "beemithlp.h"
12 #include "gen_TEMPLATE_new_nodes.h"
13 #include "TEMPLATE_emitter.h"
14 
15 static void emit_TEMPLATE_Add(ir_node const *const node)
16 {
17  TEMPLATE_emitf(node, "%D0 = add %S0, %S1");
18 }
19 
20 static void emit_TEMPLATE_And(ir_node const *const node)
21 {
22  TEMPLATE_emitf(node, "%D0 = and %S0, %S1");
23 }
24 
25 static void emit_TEMPLATE_Const(ir_node const *const node)
26 {
27  TEMPLATE_emitf(node, "%D0 = const %I");
28 }
29 
30 static void emit_TEMPLATE_Load(ir_node const *const node)
31 {
32  TEMPLATE_emitf(node, "%D0 = load (%S1)");
33 }
34 
35 static void emit_TEMPLATE_Minus(ir_node const *const node)
36 {
37  TEMPLATE_emitf(node, "%D0 = minus %S0");
38 }
39 
40 static void emit_TEMPLATE_Mul(ir_node const *const node)
41 {
42  TEMPLATE_emitf(node, "%D0 = mul %S0, %S1");
43 }
44 
45 static void emit_TEMPLATE_Not(ir_node const *const node)
46 {
47  TEMPLATE_emitf(node, "%D0 = not %S0");
48 }
49 
50 static void emit_TEMPLATE_Or(ir_node const *const node)
51 {
52  TEMPLATE_emitf(node, "%D0 = or %S0, %S1");
53 }
54 
55 static void emit_TEMPLATE_Shl(ir_node const *const node)
56 {
57  TEMPLATE_emitf(node, "%D0 = shl %S0, %S1");
58 }
59 
60 static void emit_TEMPLATE_Shr(ir_node const *const node)
61 {
62  TEMPLATE_emitf(node, "%D0 = shr %S0, %S1");
63 }
64 
65 static void emit_TEMPLATE_Store(ir_node const *const node)
66 {
67  TEMPLATE_emitf(node, "(%S1) = store %S2");
68 }
69 
70 static void emit_TEMPLATE_Sub(ir_node const *const node)
71 {
72  TEMPLATE_emitf(node, "%D0 = sub %S0, %S1");
73 }
74 
75 static void emit_TEMPLATE_Xor(ir_node const *const node)
76 {
77  TEMPLATE_emitf(node, "%D0 = xor %S0, %S1");
78 }
79 
80 static void emit_TEMPLATE_fAdd(ir_node const *const node)
81 {
82  TEMPLATE_emitf(node, "%D0 = fadd %S0, %S1");
83 }
84 
85 static void emit_TEMPLATE_fConst(ir_node const *const node)
86 {
87  TEMPLATE_emitf(node, "%D0 = fconst %I");
88 }
89 
90 static void emit_TEMPLATE_fDiv(ir_node const *const node)
91 {
92  TEMPLATE_emitf(node, "%D0 = fdiv %S0, %S1");
93 }
94 
95 static void emit_TEMPLATE_fLoad(ir_node const *const node)
96 {
97  TEMPLATE_emitf(node, "%D0 = fload (%S1)");
98 }
99 
100 static void emit_TEMPLATE_fMinus(ir_node const *const node)
101 {
102  TEMPLATE_emitf(node, "%D0 = fneg %S0");
103 }
104 
105 static void emit_TEMPLATE_fMul(ir_node const *const node)
106 {
107  TEMPLATE_emitf(node, "%D0 = fmul %S0, %S1");
108 }
109 
110 static void emit_TEMPLATE_fStore(ir_node const *const node)
111 {
112  TEMPLATE_emitf(node, "(%S1) = fstore %S2");
113 }
114 
115 static void emit_TEMPLATE_fSub(ir_node const *const node)
116 {
117  TEMPLATE_emitf(node, "%D0 = fsub %S0, %S1");
118 }
119 
120 
121 
122 void TEMPLATE_register_spec_emitters(void)
123 {
124  be_set_emitter(op_TEMPLATE_Add, emit_TEMPLATE_Add);
125  be_set_emitter(op_TEMPLATE_And, emit_TEMPLATE_And);
126  be_set_emitter(op_TEMPLATE_Const, emit_TEMPLATE_Const);
127  be_set_emitter(op_TEMPLATE_Load, emit_TEMPLATE_Load);
128  be_set_emitter(op_TEMPLATE_Minus, emit_TEMPLATE_Minus);
129  be_set_emitter(op_TEMPLATE_Mul, emit_TEMPLATE_Mul);
130  be_set_emitter(op_TEMPLATE_Not, emit_TEMPLATE_Not);
131  be_set_emitter(op_TEMPLATE_Or, emit_TEMPLATE_Or);
132  be_set_emitter(op_TEMPLATE_Shl, emit_TEMPLATE_Shl);
133  be_set_emitter(op_TEMPLATE_Shr, emit_TEMPLATE_Shr);
134  be_set_emitter(op_TEMPLATE_Store, emit_TEMPLATE_Store);
135  be_set_emitter(op_TEMPLATE_Sub, emit_TEMPLATE_Sub);
136  be_set_emitter(op_TEMPLATE_Xor, emit_TEMPLATE_Xor);
137  be_set_emitter(op_TEMPLATE_fAdd, emit_TEMPLATE_fAdd);
138  be_set_emitter(op_TEMPLATE_fConst, emit_TEMPLATE_fConst);
139  be_set_emitter(op_TEMPLATE_fDiv, emit_TEMPLATE_fDiv);
140  be_set_emitter(op_TEMPLATE_fLoad, emit_TEMPLATE_fLoad);
141  be_set_emitter(op_TEMPLATE_fMinus, emit_TEMPLATE_fMinus);
142  be_set_emitter(op_TEMPLATE_fMul, emit_TEMPLATE_fMul);
143  be_set_emitter(op_TEMPLATE_fStore, emit_TEMPLATE_fStore);
144  be_set_emitter(op_TEMPLATE_fSub, emit_TEMPLATE_fSub);
145 
146 }
147 
148 void TEMPLATE_register_spec_binary_emitters(void)
149 {
150 
151 }
struct ir_node ir_node
Procedure Graph Node.
Definition: firm_types.h:53