From 52df968d73367f6f7a09fb0822532d27cb4389b5 Mon Sep 17 00:00:00 2001 From: Aaron Kaiser Date: Mon, 22 Apr 2024 11:13:41 +0200 Subject: [PATCH] Spill variables --- src/agent.jazz | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/agent.jazz b/src/agent.jazz index 08f13ea..4667b2f 100644 --- a/src/agent.jazz +++ b/src/agent.jazz @@ -1,4 +1,4 @@ -from Jade require "crypto_scalarmult/curve25519/amd64/mulx/curve25519.jinc" +from Jade require "crypto_scalarmult/curve25519/amd64/mulx/scalarmult.jazz" inline fn extract_ipc_id(reg u64 sync_mem) -> reg u64 { reg u64 id; @@ -35,7 +35,11 @@ inline fn generate_key(reg u64 shared_mem sync_mem private_mem key_id) -> reg u6 pkptr = (u64)[sync_mem + 24]; pkptr += shared_mem; - jade_scalarmult_curve25519_mulx_base(pkptr, private_mem); + () = #spill(key_id); + + jade_scalarmult_curve25519_amd64_mulx_base(pkptr, private_mem); + + () = #unspill(key_id); return key_id; } @@ -43,23 +47,18 @@ inline fn generate_key(reg u64 shared_mem sync_mem private_mem key_id) -> reg u6 export fn agent_start(reg u64 shared_mem sync_mem private_mem) { stack u8[8] unused; reg u64 key_id; - stack u64 spill_sync_mem spill_shared_mem spill_private_mem; key_id = 0; - spill_sync_mem = sync_mem; - spill_shared_mem = shared_mem; - spill_private_mem = private_mem; + () = #spill(shared_mem, sync_mem, private_mem); while (true) { unused = unused; - sync_mem = spill_sync_mem; + () = #unspill(sync_mem); unused = #read(unused, sync_mem); - sync_mem = spill_sync_mem; - shared_mem = spill_shared_mem; - private_mem = spill_private_mem; - + () = #unspill(shared_mem, sync_mem, private_mem); + reg u64 id; id = extract_ipc_id(sync_mem); @@ -68,7 +67,7 @@ export fn agent_start(reg u64 shared_mem sync_mem private_mem) { key_id = generate_key(shared_mem, sync_mem, private_mem, key_id); } - sync_mem = spill_sync_mem; + () = #unspill(sync_mem); unused = #write(unused, sync_mem); }