From a4644dee4dde586c07b7df1abda896bd9b2e85f2 Mon Sep 17 00:00:00 2001 From: David Given Date: Mon, 24 Oct 2016 12:08:40 +0200 Subject: [PATCH] More opcodes. --- mach/proto/mcg/treebuilder.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/mach/proto/mcg/treebuilder.c b/mach/proto/mcg/treebuilder.c index 82fae8655..b64ff83ce 100644 --- a/mach/proto/mcg/treebuilder.c +++ b/mach/proto/mcg/treebuilder.c @@ -810,6 +810,19 @@ static void insn_ivalue(int opcode, arith value) break; } + case op_ldf: + { + struct ir* ptr = pop(EM_pointersize); + + push( + load( + EM_wordsize*2, + ptr, value + ) + ); + break; + } + case op_sti: { struct ir* ptr = pop(EM_pointersize); @@ -840,6 +853,21 @@ static void insn_ivalue(int opcode, arith value) break; } + case op_sdf: + { + struct ir* ptr = pop(EM_pointersize); + struct ir* val = pop(EM_wordsize*2); + + appendir( + store( + EM_wordsize*2, + ptr, value, + val + ) + ); + break; + } + case op_ads: { struct ir* off = pop(value); -- 2.34.1