|
@@ -546,8 +546,11 @@ gb_internal lbValue lb_addr_get_ptr(lbProcedure *p, lbAddr const &addr) {
|
|
break;
|
|
break;
|
|
|
|
|
|
case lbAddr_Swizzle:
|
|
case lbAddr_Swizzle:
|
|
|
|
+ GB_PANIC("lbAddr_Swizzle should be handled elsewhere");
|
|
|
|
+ break;
|
|
|
|
+
|
|
case lbAddr_SwizzleLarge:
|
|
case lbAddr_SwizzleLarge:
|
|
- // TOOD(bill): is this good enough logic?
|
|
|
|
|
|
+ GB_PANIC("lbAddr_SwizzleLarge should be handled elsewhere");
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -922,7 +925,7 @@ gb_internal void lb_addr_store(lbProcedure *p, lbAddr addr, lbValue value) {
|
|
GB_ASSERT(value.value != nullptr);
|
|
GB_ASSERT(value.value != nullptr);
|
|
value = lb_emit_conv(p, value, lb_addr_type(addr));
|
|
value = lb_emit_conv(p, value, lb_addr_type(addr));
|
|
|
|
|
|
- lbValue dst = lb_addr_get_ptr(p, addr);
|
|
|
|
|
|
+ lbValue dst = addr.addr;
|
|
lbValue src = lb_address_from_load_or_generate_local(p, value);
|
|
lbValue src = lb_address_from_load_or_generate_local(p, value);
|
|
{
|
|
{
|
|
lbValue src_ptrs[4] = {};
|
|
lbValue src_ptrs[4] = {};
|
|
@@ -948,7 +951,7 @@ gb_internal void lb_addr_store(lbProcedure *p, lbAddr addr, lbValue value) {
|
|
GB_ASSERT(value.value != nullptr);
|
|
GB_ASSERT(value.value != nullptr);
|
|
value = lb_emit_conv(p, value, lb_addr_type(addr));
|
|
value = lb_emit_conv(p, value, lb_addr_type(addr));
|
|
|
|
|
|
- lbValue dst = lb_addr_get_ptr(p, addr);
|
|
|
|
|
|
+ lbValue dst = addr.addr;
|
|
lbValue src = lb_address_from_load_or_generate_local(p, value);
|
|
lbValue src = lb_address_from_load_or_generate_local(p, value);
|
|
for_array(i, addr.swizzle_large.indices) {
|
|
for_array(i, addr.swizzle_large.indices) {
|
|
lbValue src_ptr = lb_emit_array_epi(p, src, i);
|
|
lbValue src_ptr = lb_emit_array_epi(p, src, i);
|