instr->m_val = (m_uint)v->d.ptr;
} else if(v->d.ptr)
instr->m_val = *(m_uint*)v->d.ptr;
-}
-else if(v->d.ptr)
- memcpy(instr->ptr, v->d.ptr, v->type->size);
-// memcpy(&instr->m_val, v->d.ptr, v->type->size);
+ } else if(v->d.ptr)
+ memcpy(&instr->m_val, v->d.ptr, v->type->size);
else
- *(m_uint**)instr->ptr = v->d.ptr;
-// instr->m_val = v->d.ptr;
+ instr->m_val = v->d.ptr;
instr->m_val2 = size;
}
return GW_OK;
ANN static m_bool prim_float(const Emitter emit, const Exp_Primary* primary) {
const Instr instr = emit_add_instr(emit, RegPushImm2);
- *(m_float*)instr->ptr = primary->d.fnum;
+// *(m_float*)instr->ptr = primary->d.fnum;
+ instr->f = primary->d.fnum;
return GW_OK;
}
instr->m_val = switch_idx(emit->env) ?: emit_code_size(emit);
if(push) {
emit_switch_map(push, (Map)instr->m_val2);
- *(m_uint*)instr->ptr = SZ_INT;
+// *(m_uint*)instr->ptr = SZ_INT;
}
switch_end(emit->env);
pop_vector(&emit->code->stack_break, emit_code_size(emit));
reg += SZ_INT;
DISPATCH();
regpushfloat:
-// *(m_float*)reg = instr->f;
- *(m_float*)reg = *(m_float*)instr->ptr;
+ *(m_float*)reg = instr->f;
reg += SZ_FLOAT;
DISPATCH();
regpushother:
LOOP_OPTIM
for(m_uint i = 0; i <= instr->m_val2; i+= SZ_INT)
-// *(m_bit**)(reg+i) = (m_bit*)(instr->m_val + i);
- *(m_bit**)(reg+i) = (m_bit*)(instr->ptr + i);
+ *(m_bit**)(reg+i) = (m_bit*)(instr->m_val + i);
reg += instr->m_val2;
DISPATCH();
regpushaddr:
-// *(m_bit**)reg = &instr->m_val;
- *(m_bit**)reg = instr->ptr;
+ *(m_bit**)reg = &instr->m_val;
reg += SZ_INT;
DISPATCH()
regpushmem: