|
@@ -2703,15 +2703,14 @@ int hl_jit_function( jit_ctx *ctx, hl_module *m, hl_function *f ) {
|
|
|
break;
|
|
|
default:
|
|
|
size = pad_before_call(ctx,HL_WSIZE*4);
|
|
|
- if( hl_is_ptr(rb->t) ) op64(ctx,PUSH,fetch(rb),UNUSED); else push_reg(ctx,rb);
|
|
|
+ op64(ctx,PUSH,fetch(rb),UNUSED);
|
|
|
op64(ctx,MOV,r,pconst64(&p,(int_val)rb->t));
|
|
|
op64(ctx,PUSH,r,UNUSED);
|
|
|
break;
|
|
|
}
|
|
|
op32(ctx,MOV,r,pconst(&p,dst->t->virt->fields[o->p2].hashed_name));
|
|
|
op64(ctx,PUSH,r,UNUSED);
|
|
|
- op64(ctx,PUSH,obj,UNUSED);
|
|
|
- if( rb->current ) RUNLOCK(rb->current); // we might need a free register for later use
|
|
|
+ op64(ctx,PUSH,obj,UNUSED);
|
|
|
call_native(ctx,get_dynset(rb->t),size);
|
|
|
# endif
|
|
|
XJump_small(JAlways,jend);
|