From 8d7c6372418641952a6d95d56c67d0928f2331d2 Mon Sep 17 00:00:00 2001 From: Ulf Norell Date: Mon, 23 Sep 2019 16:49:48 +0200 Subject: [PATCH] Don't confuse variables and store registers in fate asm generation --- src/aeso_fcode_to_fate.erl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/aeso_fcode_to_fate.erl b/src/aeso_fcode_to_fate.erl index 35f1807..7968b8c 100644 --- a/src/aeso_fcode_to_fate.erl +++ b/src/aeso_fcode_to_fate.erl @@ -42,7 +42,7 @@ -define(i(X), {immediate, X}). -define(a, {stack, 0}). --define(s(N), {var, -N}). +-define(s(N), {store, N}). -define(void, {var, 9999}). -record(env, { contract, vars = [], locals = [], current_function, tailpos = true }). @@ -646,11 +646,11 @@ pp_op(loop) -> "LOOP"; pp_op(I) -> aeb_fate_pp:format_op(I, #{}). -pp_arg(?i(I)) -> io_lib:format("~w", [I]); -pp_arg({arg, N}) -> io_lib:format("arg~p", [N]); -pp_arg({store, N}) -> io_lib:format("store~p", [N]); -pp_arg({var, N}) -> io_lib:format("var~p", [N]); -pp_arg(?a) -> "a". +pp_arg(?i(I)) -> io_lib:format("~w", [I]); +pp_arg({arg, N}) -> io_lib:format("arg~p", [N]); +pp_arg(?s(N)) -> io_lib:format("store~p", [-N]); +pp_arg({var, N}) -> io_lib:format("var~p", [N]); +pp_arg(?a) -> "a". %% -- Analysis -- @@ -1369,7 +1369,7 @@ desugar_args(I) when is_tuple(I) -> list_to_tuple([Op | lists:map(fun desugar_arg/1, Args)]); desugar_args(I) -> I. -desugar_arg({store, N}) -> {var, -N}; +desugar_arg(?s(N)) -> {var, -N}; desugar_arg(A) -> A. %% -- Phase III --------------------------------------------------------------