From 27c9b50409ffc264d4b3978103f023ee42d585c9 Mon Sep 17 00:00:00 2001 From: Erik Stenman Date: Thu, 14 Feb 2019 15:38:49 +0100 Subject: [PATCH] Handle jumpif. --- test/asm_code/arith.fate | 26 ++++++++++++++++++++++++++ test/asm_code/jumpif.fate | 9 +++++++++ 2 files changed, 35 insertions(+) create mode 100644 test/asm_code/arith.fate create mode 100644 test/asm_code/jumpif.fate diff --git a/test/asm_code/arith.fate b/test/asm_code/arith.fate new file mode 100644 index 0000000..ffd5311 --- /dev/null +++ b/test/asm_code/arith.fate @@ -0,0 +1,26 @@ +;; CONTRACT arith + +FUNCTION add (integer, integer) : integer + ADD a arg0 arg1 + RETURN + +FUNCTION sub (integer, integer) : integer + SUB a arg0 arg1 + RETURN + +FUNCTION mul (integer, integer) : integer + MUL a arg0 arg1 + RETURN + +FUNCTION div (integer, integer) : integer + DIV a arg0 arg1 + RETURN + +FUNCTION mod (integer, integer) : integer + MOD a arg0 arg1 + RETURN + +FUNCTION pow (integer, integer) : integer + POW a arg0 arg1 + RETURN + diff --git a/test/asm_code/jumpif.fate b/test/asm_code/jumpif.fate new file mode 100644 index 0000000..05855eb --- /dev/null +++ b/test/asm_code/jumpif.fate @@ -0,0 +1,9 @@ +;; CONTRACT jumpif +FUNCTION skip(integer, integer) : integer + PUSH arg1 + PUSH 0 + EQ a a arg0 + JUMPIF a 2 + INC + JUMP 2 + RETURN