comparison src/th06/ecl_vm.rs @ 655:6b4d2b405442

More ECL stuff.
author Gauvain "GovanifY" Roussel-Tarbouriech <gauvain@govanify.com>
date Thu, 08 Aug 2019 17:01:42 +0200
parents ec7e888e88f3
children 53786d834444
comparison
equal deleted inserted replaced
654:ec7e888e88f3 655:6b4d2b405442
166 // 34 166 // 34
167 Instruction::RelativeJumpIfNotEqual(frame, ip) { 167 Instruction::RelativeJumpIfNotEqual(frame, ip) {
168 if self.comparison_reg != 0 168 if self.comparison_reg != 0
169 Instruction::RelativeJump(); 169 Instruction::RelativeJump();
170 } 170 }
171 171 // 35
172 172 Instruction::Call(sub, param1, param2) {
173 173 // does insane stuff with the stack, not implemented
174 174 }
175 175
176 176 // 36
177 Instruction::Ret(frame, ip) {
178 // does insane stuff with the stack, not implemented
179 }
180 // 37
181 Instruction::CallIfSuperior(sub, param1, param2, a, b) {
182 if(self._getval(b) <= self._getval(a)) {
183 Instruction::Call(sub, param1, param2);
184 }
185 }
186 // 38
187 Instruction::CallIfSuperiorOrEqual(sub, param1, param2, a, b) {
188 if(self._getval(b) <= self._getval(a)) {
189 Instruction::Call(sub, param1, param2);
190 }
191 }
192 // 39
193 Instruction::CallIfEqual(sub, param1, param2, a, b) {
194 if(self._getval(b) == self._getval(a)) {
195 Instruction::Call(sub, param1, param2);
196 }
197 }
198 // 40
199 Instruction::CallIfEqual(sub, param1, param2, a, b) {
200 if(self._getval(b) == self._getval(a)) {
201 Instruction::Call(sub, param1, param2);
202 }
203 }
204 //41
205 Instruction::CallIfInferior(sub, param1, param2, a, b) {
206 if(self._getval(a) < self._getval(b)) {
207 Instruction::Call(sub, param1, param2);
208 }
209 }
210 //42
211 Instruction::CallIfInferiorOrEqual(sub, param1, param2, a, b) {
212 if(self._getval(a) <= self._getval(b)) {
213 Instruction::Call(sub, param1, param2);
214 }
215 }
216
217
218
219
220
221
222
223
224
225