1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: functors assocs kernel accessors compiler.cfg.instructions
5 IN: compiler.cfg.renaming.functor
7 FUNCTOR: define-renaming ( NAME DEF-QUOT USE-QUOT TEMP-QUOT -- )
9 rename-insn-defs DEFINES ${NAME}-insn-defs
10 rename-insn-uses DEFINES ${NAME}-insn-uses
11 rename-insn-temps DEFINES ${NAME}-insn-temps
15 GENERIC: rename-insn-defs ( insn -- )
17 M: ##flushable rename-insn-defs
21 M: ##fixnum-overflow rename-insn-defs
25 M: _fixnum-overflow rename-insn-defs
29 M: insn rename-insn-defs drop ;
31 GENERIC: rename-insn-uses ( insn -- )
33 M: ##effect rename-insn-uses
37 M: ##unary rename-insn-uses
41 M: ##binary rename-insn-uses
46 M: ##binary-imm rename-insn-uses
50 M: ##slot rename-insn-uses
55 M: ##slot-imm rename-insn-uses
59 M: ##set-slot rename-insn-uses
65 M: ##string-nth rename-insn-uses
70 M: ##set-string-nth-fast rename-insn-uses
76 M: ##set-slot-imm rename-insn-uses
81 M: ##alien-getter rename-insn-uses
86 M: ##alien-setter rename-insn-uses
91 M: ##conditional-branch rename-insn-uses
96 M: ##compare-imm-branch rename-insn-uses
100 M: ##dispatch rename-insn-uses
104 M: ##fixnum-overflow rename-insn-uses
109 M: ##phi rename-insn-uses
110 [ USE-QUOT assoc-map ] change-inputs
113 M: insn rename-insn-uses drop ;
115 GENERIC: rename-insn-temps ( insn -- )
117 M: ##write-barrier rename-insn-temps
118 TEMP-QUOT change-card#
119 TEMP-QUOT change-table
122 M: ##unary/temp rename-insn-temps
123 TEMP-QUOT change-temp drop ;
125 M: ##allot rename-insn-temps
126 TEMP-QUOT change-temp drop ;
128 M: ##dispatch rename-insn-temps
129 TEMP-QUOT change-temp drop ;
131 M: ##slot rename-insn-temps
132 TEMP-QUOT change-temp drop ;
134 M: ##set-slot rename-insn-temps
135 TEMP-QUOT change-temp drop ;
137 M: ##string-nth rename-insn-temps
138 TEMP-QUOT change-temp drop ;
140 M: ##set-string-nth-fast rename-insn-temps
141 TEMP-QUOT change-temp drop ;
143 M: ##compare rename-insn-temps
144 TEMP-QUOT change-temp drop ;
146 M: ##compare-imm rename-insn-temps
147 TEMP-QUOT change-temp drop ;
149 M: ##compare-float rename-insn-temps
150 TEMP-QUOT change-temp drop ;
152 M: ##gc rename-insn-temps
153 TEMP-QUOT change-temp1
154 TEMP-QUOT change-temp2
157 M: _dispatch rename-insn-temps
158 TEMP-QUOT change-temp drop ;
160 M: insn rename-insn-temps drop ;
164 SYNTAX: RENAMING: scan scan-object scan-object scan-object define-renaming ;