Mercurial > touhou
changeset 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 | 988e5130fb00 |
files | src/th06/ecl_vm.rs |
diffstat | 1 files changed, 49 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/th06/ecl_vm.rs +++ b/src/th06/ecl_vm.rs @@ -168,9 +168,58 @@ use std::rc::{Rc, Weak}; if self.comparison_reg != 0 Instruction::RelativeJump(); } + // 35 + Instruction::Call(sub, param1, param2) { + // does insane stuff with the stack, not implemented + } + + // 36 + Instruction::Ret(frame, ip) { + // does insane stuff with the stack, not implemented + } + // 37 + Instruction::CallIfSuperior(sub, param1, param2, a, b) { + if(self._getval(b) <= self._getval(a)) { + Instruction::Call(sub, param1, param2); + } + } + // 38 + Instruction::CallIfSuperiorOrEqual(sub, param1, param2, a, b) { + if(self._getval(b) <= self._getval(a)) { + Instruction::Call(sub, param1, param2); + } + } + // 39 + Instruction::CallIfEqual(sub, param1, param2, a, b) { + if(self._getval(b) == self._getval(a)) { + Instruction::Call(sub, param1, param2); + } + } + // 40 + Instruction::CallIfEqual(sub, param1, param2, a, b) { + if(self._getval(b) == self._getval(a)) { + Instruction::Call(sub, param1, param2); + } + } + //41 + Instruction::CallIfInferior(sub, param1, param2, a, b) { + if(self._getval(a) < self._getval(b)) { + Instruction::Call(sub, param1, param2); + } + } + //42 + Instruction::CallIfInferiorOrEqual(sub, param1, param2, a, b) { + if(self._getval(a) <= self._getval(b)) { + Instruction::Call(sub, param1, param2); + } + } + + + +