@@ -373,7 +373,7 @@ LAUF_NOINLINE lauf_asm_inst* emit_body(lauf_asm_inst* ip, lauf_asm_builder* b,
373373 assert (insts[dest->offset ].op () == lauf::asm_op::block);
374374 auto dest_offset = dest->offset + 1 ;
375375
376- LAUF_BITFIELD_CONVERSION ( jump->jump .offset = std::int32_t (dest_offset - cur_offset));
376+ jump->jump .offset ( std::int32_t (dest_offset - cur_offset));
377377 }
378378
379379 return ip;
@@ -673,7 +673,7 @@ const lauf_asm_block* lauf_asm_inst_branch(lauf_asm_builder* b, const lauf_asm_b
673673 else if (!b->cur ->insts .empty () && b->cur ->insts .back ().op () == lauf::asm_op::cc)
674674 {
675675 // Remove the cc instruction.
676- auto cc = b->cur ->insts .back ().cc .value ;
676+ auto cc = b->cur ->insts .back ().cc .value () ;
677677 b->cur ->insts .pop_back ();
678678
679679 switch (cc)
@@ -1021,12 +1021,10 @@ void lauf_asm_inst_global_addr(lauf_asm_builder* b, const lauf_asm_global* globa
10211021
10221022 b->cur ->insts .push_back (*b, LAUF_BUILD_INST_VALUE (global_addr, global->allocation_idx ));
10231023 b->cur ->vstack .push_constant (*b, [&] {
1024- lauf_runtime_value result;
1025- lauf_runtime_address addr;
1026- LAUF_BITFIELD_CONVERSION (addr.allocation = global->allocation_idx );
1027- addr.offset = 0 ;
1028- addr.generation = 0 ; // Always true for globals.
1029- result.as_address = lauf_runtime_address_to_store (addr);
1024+ lauf_runtime_value result;
1025+ LAUF_BITFIELD_CONVERSION (result.as_address .allocation = global->allocation_idx );
1026+ result.as_address .offset = 0 ;
1027+ result.as_address .generation = 0 ; // Always true for globals.
10301028 return result;
10311029 }());
10321030}
@@ -1290,7 +1288,7 @@ load_store_constant load_store_constant_folding(lauf_asm_module* mod,
12901288 // TOCTOU is okay, we just can't constant fold because of it.
12911289 auto globals = lauf::get_globals (mod);
12921290
1293- auto constant_addr = lauf_runtime_address_from_store ( addr.as_constant .as_address ) ;
1291+ auto constant_addr = addr.as_constant .as_address ;
12941292 if (constant_addr.allocation >= globals.count && constant_addr.generation != 0
12951293 && constant_addr.offset != 0 )
12961294 return load_store_dynamic;
@@ -1332,10 +1330,8 @@ void lauf_asm_inst_load_field(lauf_asm_builder* b, lauf_asm_type type, size_t fi
13321330 else if (constant_folding == load_store_global)
13331331 {
13341332 add_pop_top_n (b, 1 );
1335- b->cur ->insts .push_back ( //
1336- *b, LAUF_BUILD_INST_VALUE ( //
1337- load_global_value,
1338- lauf_runtime_address_from_store (addr->as_constant .as_address ).allocation ));
1333+ b->cur ->insts .push_back (*b, LAUF_BUILD_INST_VALUE (load_global_value,
1334+ addr->as_constant .as_address .allocation ));
13391335 b->cur ->vstack .push_output (*b, 1 );
13401336 }
13411337 else if (type.layout .size == 0 && type.load_fn == nullptr )
@@ -1378,10 +1374,8 @@ void lauf_asm_inst_store_field(lauf_asm_builder* b, lauf_asm_type type, size_t f
13781374 else if (constant_folding == load_store_global)
13791375 {
13801376 add_pop_top_n (b, 1 );
1381- b->cur ->insts .push_back ( //
1382- *b, LAUF_BUILD_INST_VALUE ( //
1383- store_global_value,
1384- lauf_runtime_address_from_store (addr->as_constant .as_address ).allocation ));
1377+ b->cur ->insts .push_back (*b, LAUF_BUILD_INST_VALUE (store_global_value,
1378+ addr->as_constant .as_address .allocation ));
13851379 LAUF_BUILD_ASSERT (b->cur ->vstack .pop (1 ), " missing value" );
13861380 }
13871381 else if (type.layout .size == 0 && type.store_fn == nullptr )
0 commit comments