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