#if LJ_HASFFI
if (tviscdata(o)) {
CTState *cts = ctype_cts(L);
- CType *ct = lj_ctype_rawref(cts, cdataV(o)->typeid);
+ CType *ct = lj_ctype_rawref(cts, cdataV(o)->ctypeid);
if (ctype_isenum(ct->info)) ct = ctype_child(cts, ct);
if (ctype_isnum(ct->info) || ctype_iscomplex(ct->info)) {
if (LJ_DUALNUM && ctype_isinteger_or_bool(ct->info) &&
if (!tviscdata(o)) goto err_argtype;
if (param && param < L->top) lj_err_arg(L, 1, LJ_ERR_FFI_NUMPARAM);
cd = cdataV(o);
- return cd->typeid == CTID_CTYPEID ? *(CTypeID *)cdataptr(cd) : cd->typeid;
+ return cd->ctypeid == CTID_CTYPEID ? *(CTypeID *)cdataptr(cd) : cd->ctypeid;
}
}
{
CTState *cts = ctype_cts(L);
GCcdata *cd = ffi_checkcdata(L, 1);
- CTypeID id = cd->typeid;
+ CTypeID id = cd->ctypeid;
CType *ct;
cTValue *tv;
MMS mm = MM_call;
- if (cd->typeid == CTID_CTYPEID) {
+ if (cd->ctypeid == CTID_CTYPEID) {
id = *(CTypeID *)cdataptr(cd);
mm = MM_new;
} else {
{
GCcdata *cd = ffi_checkcdata(L, 1);
const char *msg = "cdata<%s>: %p";
- CTypeID id = cd->typeid;
+ CTypeID id = cd->ctypeid;
void *p = cdataptr(cd);
if (id == CTID_CTYPEID) {
msg = "ctype<%s>";
if (tviscdata(tv)) {
CTState *cts = ctype_cts(L);
GCcdata *cd = cdataV(tv);
- CType *s = ctype_get(cts, cd->typeid);
+ CType *s = ctype_get(cts, cd->ctypeid);
if (ctype_isextern(s->info)) {
CTypeID sid = ctype_cid(s->info);
void *sp = *(void **)cdataptr(cd);
if (o < L->top && tviscdata(tv)) {
CTState *cts = ctype_cts(L);
GCcdata *cd = cdataV(tv);
- CType *d = ctype_get(cts, cd->typeid);
+ CType *d = ctype_get(cts, cd->ctypeid);
if (ctype_isextern(d->info)) {
CTInfo qual = 0;
for (;;) { /* Skip attributes and collect qualifiers. */
{
GCcdata *cd = ffi_checkcdata(L, 1);
CTState *cts = ctype_cts(L);
- CType *ct = ctype_raw(cts, cd->typeid);
+ CType *ct = ctype_raw(cts, cd->ctypeid);
if (ctype_isptr(ct->info) && (LJ_32 || ct->size == 8)) {
MSize slot = lj_ccallback_ptr2slot(cts, *(void **)cdataptr(cd));
if (slot < cts->cb.sizeid && cts->cb.cbid[slot] != 0) {
L->top = o+1; /* Make sure this is the last item on the stack. */
if (!(ctype_isnum(d->info) || ctype_isptr(d->info) || ctype_isenum(d->info)))
lj_err_arg(L, 1, LJ_ERR_FFI_INVTYPE);
- if (!(tviscdata(o) && cdataV(o)->typeid == id)) {
+ if (!(tviscdata(o) && cdataV(o)->ctypeid == id)) {
GCcdata *cd = lj_cdata_new(cts, id, d->size);
lj_cconv_ct_tv(cts, d, cdataptr(cd), o, CCF_CAST);
setcdataV(L, o, cd);
int b = 0;
if (tviscdata(o)) {
GCcdata *cd = cdataV(o);
- CTypeID id2 = cd->typeid == CTID_CTYPEID ? *(CTypeID *)cdataptr(cd) :
- cd->typeid;
+ CTypeID id2 = cd->ctypeid == CTID_CTYPEID ? *(CTypeID *)cdataptr(cd) :
+ cd->ctypeid;
CType *ct1 = lj_ctype_rawref(cts, id1);
CType *ct2 = lj_ctype_rawref(cts, id2);
if (ct1 == ct2) {
TValue *fin = lj_lib_checkany(L, 2);
CTState *cts = ctype_cts(L);
GCtab *t = cts->finalizer;
- CType *ct = ctype_raw(cts, cd->typeid);
+ CType *ct = ctype_raw(cts, cd->ctypeid);
if (!(ctype_isptr(ct->info) || ctype_isstruct(ct->info) ||
ctype_isrefarray(ct->info)))
lj_err_arg(L, 1, LJ_ERR_FFI_INVTYPE);
static void asm_cnew(ASMState *as, IRIns *ir)
{
CTState *cts = ctype_ctsG(J2G(as->J));
- CTypeID typeid = (CTypeID)IR(ir->op1)->i;
+ CTypeID ctypeid = (CTypeID)IR(ir->op1)->i;
CTSize sz = (ir->o == IR_CNEWI || ir->op2 == REF_NIL) ?
- lj_ctype_size(cts, typeid) : (CTSize)IR(ir->op2)->i;
+ lj_ctype_size(cts, ctypeid) : (CTSize)IR(ir->op2)->i;
const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_mem_newgco];
IRRef args[2];
RegSet allow = (RSET_GPR & ~RSET_SCRATCH);
ofs -= 4; ir--;
}
}
- /* Initialize gct and typeid. lj_mem_newgco() already sets marked. */
+ /* Initialize gct and ctypeid. lj_mem_newgco() already sets marked. */
{
- uint32_t k = emit_isk12(ARMI_MOV, typeid);
- Reg r = k ? RID_R1 : ra_allock(as, typeid, allow);
+ uint32_t k = emit_isk12(ARMI_MOV, ctypeid);
+ Reg r = k ? RID_R1 : ra_allock(as, ctypeid, allow);
emit_lso(as, ARMI_STRB, RID_TMP, RID_RET, offsetof(GCcdata, gct));
- emit_lsox(as, ARMI_STRH, r, RID_RET, offsetof(GCcdata, typeid));
+ emit_lsox(as, ARMI_STRH, r, RID_RET, offsetof(GCcdata, ctypeid));
emit_d(as, ARMI_MOV|ARMI_K12|~LJ_TCDATA, RID_TMP);
if (k) emit_d(as, ARMI_MOV^k, RID_R1);
}
static void asm_cnew(ASMState *as, IRIns *ir)
{
CTState *cts = ctype_ctsG(J2G(as->J));
- CTypeID typeid = (CTypeID)IR(ir->op1)->i;
+ CTypeID ctypeid = (CTypeID)IR(ir->op1)->i;
CTSize sz = (ir->o == IR_CNEWI || ir->op2 == REF_NIL) ?
- lj_ctype_size(cts, typeid) : (CTSize)IR(ir->op2)->i;
+ lj_ctype_size(cts, ctypeid) : (CTSize)IR(ir->op2)->i;
const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_mem_newgco];
IRRef args[2];
RegSet allow = (RSET_GPR & ~RSET_SCRATCH);
ofs -= 4; if (LJ_BE) ir++; else ir--;
}
}
- /* Initialize gct and typeid. lj_mem_newgco() already sets marked. */
+ /* Initialize gct and ctypeid. lj_mem_newgco() already sets marked. */
emit_tsi(as, MIPSI_SB, RID_RET+1, RID_RET, offsetof(GCcdata, gct));
- emit_tsi(as, MIPSI_SH, RID_TMP, RID_RET, offsetof(GCcdata, typeid));
+ emit_tsi(as, MIPSI_SH, RID_TMP, RID_RET, offsetof(GCcdata, ctypeid));
emit_ti(as, MIPSI_LI, RID_RET+1, ~LJ_TCDATA);
- emit_ti(as, MIPSI_LI, RID_TMP, typeid); /* Lower 16 bit used. Sign-ext ok. */
+ emit_ti(as, MIPSI_LI, RID_TMP, ctypeid); /* Lower 16 bit used. Sign-ext ok. */
asm_gencall(as, ci, args);
ra_allockreg(as, (int32_t)(sz+sizeof(GCcdata)),
ra_releasetmp(as, ASMREF_TMP1));
static void asm_cnew(ASMState *as, IRIns *ir)
{
CTState *cts = ctype_ctsG(J2G(as->J));
- CTypeID typeid = (CTypeID)IR(ir->op1)->i;
+ CTypeID ctypeid = (CTypeID)IR(ir->op1)->i;
CTSize sz = (ir->o == IR_CNEWI || ir->op2 == REF_NIL) ?
- lj_ctype_size(cts, typeid) : (CTSize)IR(ir->op2)->i;
+ lj_ctype_size(cts, ctypeid) : (CTSize)IR(ir->op2)->i;
const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_mem_newgco];
IRRef args[2];
RegSet allow = (RSET_GPR & ~RSET_SCRATCH);
ofs -= 4; ir++;
}
}
- /* Initialize gct and typeid. lj_mem_newgco() already sets marked. */
+ /* Initialize gct and ctypeid. lj_mem_newgco() already sets marked. */
emit_tai(as, PPCI_STB, RID_RET+1, RID_RET, offsetof(GCcdata, gct));
- emit_tai(as, PPCI_STH, RID_TMP, RID_RET, offsetof(GCcdata, typeid));
+ emit_tai(as, PPCI_STH, RID_TMP, RID_RET, offsetof(GCcdata, ctypeid));
emit_ti(as, PPCI_LI, RID_RET+1, ~LJ_TCDATA);
- emit_ti(as, PPCI_LI, RID_TMP, typeid); /* Lower 16 bit used. Sign-ext ok. */
+ emit_ti(as, PPCI_LI, RID_TMP, ctypeid); /* Lower 16 bit used. Sign-ext ok. */
asm_gencall(as, ci, args);
ra_allockreg(as, (int32_t)(sz+sizeof(GCcdata)),
ra_releasetmp(as, ASMREF_TMP1));
static void asm_cnew(ASMState *as, IRIns *ir)
{
CTState *cts = ctype_ctsG(J2G(as->J));
- CTypeID typeid = (CTypeID)IR(ir->op1)->i;
+ CTypeID ctypeid = (CTypeID)IR(ir->op1)->i;
CTSize sz = (ir->o == IR_CNEWI || ir->op2 == REF_NIL) ?
- lj_ctype_size(cts, typeid) : (CTSize)IR(ir->op2)->i;
+ lj_ctype_size(cts, ctypeid) : (CTSize)IR(ir->op2)->i;
const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_mem_newgco];
IRRef args[2];
lua_assert(sz != CTSIZE_INVALID);
lua_assert(sz == 4 || sz == 8);
}
- /* Combine initialization of marked, gct and typeid. */
+ /* Combine initialization of marked, gct and ctypeid. */
emit_movtomro(as, RID_ECX, RID_RET, offsetof(GCcdata, marked));
emit_gri(as, XG_ARITHi(XOg_OR), RID_ECX,
- (int32_t)((~LJ_TCDATA<<8)+(typeid<<16)));
+ (int32_t)((~LJ_TCDATA<<8)+(ctypeid<<16)));
emit_gri(as, XG_ARITHi(XOg_AND), RID_ECX, LJ_GC_WHITES);
emit_opgl(as, XO_MOVZXb, RID_ECX, gc.currentwhite);
tp = BCDUMP_KGC_CHILD;
#if LJ_HASFFI
} else if (o->gch.gct == ~LJ_TCDATA) {
- CTypeID id = gco2cd(o)->typeid;
+ CTypeID id = gco2cd(o)->ctypeid;
need = 1+4*5;
if (id == CTID_INT64) {
tp = BCDUMP_KGC_I64;
for (i = 0; i < 2; i++, o++) {
if (tviscdata(o)) {
GCcdata *cd = cdataV(o);
- CTypeID id = (CTypeID)cd->typeid;
+ CTypeID id = (CTypeID)cd->ctypeid;
CType *ct = ctype_raw(cts, id);
uint8_t *p = (uint8_t *)cdataptr(cd);
if (ctype_isptr(ct->info)) {
{
cTValue *tv = NULL;
if (tviscdata(L->base))
- tv = lj_ctype_meta(cts, cdataV(L->base)->typeid, mm);
+ tv = lj_ctype_meta(cts, cdataV(L->base)->ctypeid, mm);
if (!tv && L->base+1 < L->top && tviscdata(L->base+1))
- tv = lj_ctype_meta(cts, cdataV(L->base+1)->typeid, mm);
+ tv = lj_ctype_meta(cts, cdataV(L->base+1)->ctypeid, mm);
if (!tv) {
const char *repr[2];
int i;
if (tvisnumber(o)) {
return CTID_DOUBLE;
} else if (tviscdata(o)) {
- CTypeID id = cdataV(o)->typeid;
+ CTypeID id = cdataV(o)->ctypeid;
CType *s = ctype_get(cts, id);
if (ctype_isrefarray(s->info)) {
return lj_ctype_intern(cts,
int lj_ccall_func(lua_State *L, GCcdata *cd)
{
CTState *cts = ctype_cts(L);
- CType *ct = ctype_raw(cts, cd->typeid);
+ CType *ct = ctype_raw(cts, cd->ctypeid);
CTSize sz = CTSIZE_PTR;
if (ctype_isptr(ct->info)) {
sz = ct->size;
flags |= CCF_FROMTV;
} else if (tviscdata(o)) {
sp = cdataptr(cdataV(o));
- sid = cdataV(o)->typeid;
+ sid = cdataV(o)->ctypeid;
s = ctype_get(cts, sid);
if (ctype_isref(s->info)) { /* Resolve reference for value. */
lua_assert(s->size == CTSIZE_PTR);
newwhite(g, obj2gco(cd));
cd->marked |= 0x80;
cd->gct = ~LJ_TCDATA;
- cd->typeid = id;
+ cd->ctypeid = id;
return cd;
}
setgcref(g->gc.mmudata, obj2gco(cd));
}
} else if (LJ_LIKELY(!cdataisv(cd))) {
- CType *ct = ctype_raw(ctype_ctsG(g), cd->typeid);
+ CType *ct = ctype_raw(ctype_ctsG(g), cd->ctypeid);
CTSize sz = ctype_hassize(ct->info) ? ct->size : CTSIZE_PTR;
lua_assert(ctype_hassize(ct->info) || ctype_isfunc(ct->info) ||
ctype_isextern(ct->info));
CTInfo *qual)
{
uint8_t *p = (uint8_t *)cdataptr(cd);
- CType *ct = ctype_get(cts, cd->typeid);
+ CType *ct = ctype_get(cts, cd->ctypeid);
ptrdiff_t idx;
/* Resolve reference for cdata object. */
}
} else if (tviscdata(key)) { /* Integer cdata key. */
GCcdata *cdk = cdataV(key);
- CType *ctk = ctype_raw(cts, cdk->typeid);
+ CType *ctk = ctype_raw(cts, cdk->ctypeid);
if (ctype_isenum(ctk->info)) ctk = ctype_child(cts, ctk);
if (ctype_isinteger(ctk->info)) {
lj_cconv_ct_ct(cts, ctype_get(cts, CTID_INT_PSZ), ctk,
return ct;
}
}
- } else if (cd->typeid == CTID_CTYPEID) {
+ } else if (cd->ctypeid == CTID_CTYPEID) {
/* Allow indexing a (pointer to) struct constructor to get constants. */
CType *sct = ctype_raw(cts, *(CTypeID *)p);
if (ctype_isptr(sct->info))
#endif
cd = (GCcdata *)lj_mem_newgco(cts->L, sizeof(GCcdata) + sz);
cd->gct = ~LJ_TCDATA;
- cd->typeid = ctype_check(cts, id);
+ cd->ctypeid = ctype_check(cts, id);
return cd;
}
{
GCcdata *cd = (GCcdata *)lj_mem_newgco(L, sizeof(GCcdata) + sz);
cd->gct = ~LJ_TCDATA;
- cd->typeid = id;
+ cd->ctypeid = id;
return cd;
}
GCcdata *cd;
if (!tviscdata(o)) lj_err_argtype(cp->L, o-cp->L->base+1, "type parameter");
cd = cdataV(o);
- if (cd->typeid == CTID_CTYPEID)
+ if (cd->ctypeid == CTID_CTYPEID)
cp->val.id = *(CTypeID *)cdataptr(cd);
else
- cp->val.id = cd->typeid;
+ cp->val.id = cd->ctypeid;
return '$';
}
}
/* Parse constant initializer. */
/* NYI: FP constants and strings as initializers. */
-static CTypeID cp_decl_constinit(CPState *cp, CType **ctp, CTypeID typeid)
+static CTypeID cp_decl_constinit(CPState *cp, CType **ctp, CTypeID ctypeid)
{
- CType *ctt = ctype_get(cp->cts, typeid);
+ CType *ctt = ctype_get(cp->cts, ctypeid);
CTInfo info;
CTSize size;
CPValue k;
CTypeID constid;
while (ctype_isattrib(ctt->info)) { /* Skip attributes. */
- typeid = ctype_cid(ctt->info); /* Update ID, too. */
- ctt = ctype_get(cp->cts, typeid);
+ ctypeid = ctype_cid(ctt->info); /* Update ID, too. */
+ ctt = ctype_get(cp->cts, ctypeid);
}
info = ctt->info;
size = ctt->size;
cp_check(cp, '=');
cp_expr_sub(cp, &k, 0);
constid = lj_ctype_new(cp->cts, ctp);
- (*ctp)->info = CTINFO(CT_CONSTVAL, CTF_CONST|typeid);
+ (*ctp)->info = CTINFO(CT_CONSTVAL, CTF_CONST|ctypeid);
k.u32 <<= 8*(4-size);
if ((info & CTF_UNSIGNED))
k.u32 >>= 8*(4-size);
CPARSE_MODE_DIRECT|CPARSE_MODE_ABSTRACT|CPARSE_MODE_FIELD;
for (;;) {
- CTypeID typeid;
+ CTypeID ctypeid;
if (lastdecl) cp_err_token(cp, '}');
/* Parse field declarator. */
decl.bits = CTSIZE_INVALID;
cp_declarator(cp, &decl);
- typeid = cp_decl_intern(cp, &decl);
+ ctypeid = cp_decl_intern(cp, &decl);
if ((scl & CDF_STATIC)) { /* Static constant in struct namespace. */
CType *ct;
- CTypeID fieldid = cp_decl_constinit(cp, &ct, typeid);
+ CTypeID fieldid = cp_decl_constinit(cp, &ct, ctypeid);
ctype_get(cp->cts, lastid)->sib = fieldid;
lastid = fieldid;
ctype_setname(ct, decl.name);
CTSize bsz = CTBSZ_FIELD; /* Temp. for layout phase. */
CType *ct;
CTypeID fieldid = lj_ctype_new(cp->cts, &ct); /* Do this first. */
- CType *tct = ctype_raw(cp->cts, typeid);
+ CType *tct = ctype_raw(cp->cts, ctypeid);
if (decl.bits == CTSIZE_INVALID) { /* Regular field. */
if (ctype_isarray(tct->info) && tct->size == CTSIZE_INVALID)
if (!((ctype_isstruct(tct->info) && !(tct->info & CTF_VLA)) ||
ctype_isenum(tct->info)))
cp_err_token(cp, CTOK_IDENT);
- ct->info = CTINFO(CT_ATTRIB, CTATTRIB(CTA_SUBTYPE) + typeid);
+ ct->info = CTINFO(CT_ATTRIB, CTATTRIB(CTA_SUBTYPE) + ctypeid);
ct->size = ctype_isstruct(tct->info) ?
(decl.attr|0x80000000u) : 0; /* For layout phase. */
goto add_field;
}
/* Create temporary field for layout phase. */
- ct->info = CTINFO(CT_FIELD, typeid + (bsz << CTSHIFT_BITCSZ));
+ ct->info = CTINFO(CT_FIELD, ctypeid + (bsz << CTSHIFT_BITCSZ));
ct->size = decl.attr;
if (decl.name) ctype_setname(ct, decl.name);
if (cp->tok != ')') {
do {
CPDecl decl;
- CTypeID typeid, fieldid;
+ CTypeID ctypeid, fieldid;
CType *ct;
if (cp_opt(cp, '.')) { /* Vararg function. */
cp_check(cp, '.'); /* Workaround for the minimalistic lexer. */
cp_decl_spec(cp, &decl, CDF_REGISTER);
decl.mode = CPARSE_MODE_DIRECT|CPARSE_MODE_ABSTRACT;
cp_declarator(cp, &decl);
- typeid = cp_decl_intern(cp, &decl);
- ct = ctype_raw(cp->cts, typeid);
+ ctypeid = cp_decl_intern(cp, &decl);
+ ct = ctype_raw(cp->cts, ctypeid);
if (ctype_isvoid(ct->info))
break;
else if (ctype_isrefarray(ct->info))
- typeid = lj_ctype_intern(cp->cts,
+ ctypeid = lj_ctype_intern(cp->cts,
CTINFO(CT_PTR, CTALIGN_PTR|ctype_cid(ct->info)), CTSIZE_PTR);
else if (ctype_isfunc(ct->info))
- typeid = lj_ctype_intern(cp->cts,
- CTINFO(CT_PTR, CTALIGN_PTR|typeid), CTSIZE_PTR);
+ ctypeid = lj_ctype_intern(cp->cts,
+ CTINFO(CT_PTR, CTALIGN_PTR|ctypeid), CTSIZE_PTR);
/* Add new parameter. */
fieldid = lj_ctype_new(cp->cts, &ct);
if (anchor)
anchor = fieldid;
lastid = fieldid;
if (decl.name) ctype_setname(ct, decl.name);
- ct->info = CTINFO(CT_FIELD, typeid);
+ ct->info = CTINFO(CT_FIELD, ctypeid);
ct->size = nargs++;
} while (cp_opt(cp, ','));
}
goto decl_end; /* Accept empty declaration of struct/union/enum. */
}
for (;;) {
- CTypeID typeid;
+ CTypeID ctypeid;
cp_declarator(cp, &decl);
- typeid = cp_decl_intern(cp, &decl);
+ ctypeid = cp_decl_intern(cp, &decl);
if (decl.name && !decl.nameid) { /* NYI: redeclarations are ignored. */
CType *ct;
CTypeID id;
if ((scl & CDF_TYPEDEF)) { /* Create new typedef. */
id = lj_ctype_new(cp->cts, &ct);
- ct->info = CTINFO(CT_TYPEDEF, typeid);
+ ct->info = CTINFO(CT_TYPEDEF, ctypeid);
goto noredir;
- } else if (ctype_isfunc(ctype_get(cp->cts, typeid)->info)) {
+ } else if (ctype_isfunc(ctype_get(cp->cts, ctypeid)->info)) {
/* Treat both static and extern function declarations as extern. */
- ct = ctype_get(cp->cts, typeid);
+ ct = ctype_get(cp->cts, ctypeid);
/* We always get new anonymous functions (typedefs are copied). */
lua_assert(gcref(ct->name) == NULL);
- id = typeid; /* Just name it. */
+ id = ctypeid; /* Just name it. */
} else if ((scl & CDF_STATIC)) { /* Accept static constants. */
- id = cp_decl_constinit(cp, &ct, typeid);
+ id = cp_decl_constinit(cp, &ct, ctypeid);
goto noredir;
} else { /* External references have extern or no storage class. */
id = lj_ctype_new(cp->cts, &ct);
- ct->info = CTINFO(CT_EXTERN, typeid);
+ ct->info = CTINFO(CT_EXTERN, ctypeid);
}
if (decl.redir) { /* Add attribute for redirected symbol name. */
CType *cta;
lj_trace_err(J, LJ_TRERR_BADTYPE);
cd = cdataV(o);
/* Specialize to the CTypeID. */
- trtypeid = emitir(IRT(IR_FLOAD, IRT_U16), tr, IRFL_CDATA_TYPEID);
- emitir(IRTG(IR_EQ, IRT_INT), trtypeid, lj_ir_kint(J, (int32_t)cd->typeid));
+ trtypeid = emitir(IRT(IR_FLOAD, IRT_U16), tr, IRFL_CDATA_CTYPEID);
+ emitir(IRTG(IR_EQ, IRT_INT), trtypeid, lj_ir_kint(J, (int32_t)cd->ctypeid));
return cd;
}
static CTypeID crec_constructor(jit_State *J, GCcdata *cd, TRef tr)
{
CTypeID id;
- lua_assert(tref_iscdata(tr) && cd->typeid == CTID_CTYPEID);
+ lua_assert(tref_iscdata(tr) && cd->ctypeid == CTID_CTYPEID);
id = *(CTypeID *)cdataptr(cd);
tr = emitir(IRT(IR_ADD, IRT_PTR), tr, lj_ir_kintp(J, sizeof(GCcdata)));
tr = emitir(IRT(IR_XLOAD, IRT_INT), tr, 0);
return cp.val.id;
} else {
GCcdata *cd = argv2cdata(J, tr, o);
- return cd->typeid == CTID_CTYPEID ? crec_constructor(J, cd, tr) :
- cd->typeid;
+ return cd->ctypeid == CTID_CTYPEID ? crec_constructor(J, cd, tr) :
+ cd->ctypeid;
}
}
}
} else { /* NYI: tref_istab(sp), tref_islightud(sp). */
IRType t;
- sid = argv2cdata(J, sp, sval)->typeid;
+ sid = argv2cdata(J, sp, sval)->ctypeid;
s = ctype_raw(cts, sid);
svisnz = cdataptr(cdataV(sval));
if (ctype_isenum(s->info)) s = ctype_child(cts, s);
ptrdiff_t ofs = sizeof(GCcdata);
GCcdata *cd = argv2cdata(J, ptr, &rd->argv[0]);
CTState *cts = ctype_ctsG(J2G(J));
- CType *ct = ctype_raw(cts, cd->typeid);
+ CType *ct = ctype_raw(cts, cd->ctypeid);
CTypeID sid = 0;
/* Resolve pointer or reference for cdata object. */
}
} else if (tref_iscdata(idx)) {
GCcdata *cdk = cdataV(&rd->argv[1]);
- CType *ctk = ctype_raw(cts, cdk->typeid);
+ CType *ctk = ctype_raw(cts, cdk->ctypeid);
IRType t;
if (ctype_isenum(ctk->info)) ctk = ctype_child(cts, ctk);
if (ctype_ispointer(ct->info) &&
}
} else if (tref_isstr(idx)) {
GCstr *name = strV(&rd->argv[1]);
- if (cd->typeid == CTID_CTYPEID)
+ if (cd->ctypeid == CTID_CTYPEID)
ct = ctype_raw(cts, crec_constructor(J, cd, ptr));
if (ctype_isstruct(ct->info)) {
CTSize fofs;
static int crec_call(jit_State *J, RecordFFData *rd, GCcdata *cd)
{
CTState *cts = ctype_ctsG(J2G(J));
- CType *ct = ctype_raw(cts, cd->typeid);
+ CType *ct = ctype_raw(cts, cd->ctypeid);
IRType tp = IRT_PTR;
if (ctype_isptr(ct->info)) {
tp = (LJ_64 && ct->size == 8) ? IRT_P64 : IRT_P32;
{
CTState *cts = ctype_ctsG(J2G(J));
GCcdata *cd = argv2cdata(J, J->base[0], &rd->argv[0]);
- CTypeID id = cd->typeid;
+ CTypeID id = cd->ctypeid;
CType *ct;
cTValue *tv;
MMS mm = MM_call;
cTValue *tv = NULL;
if (J->base[0]) {
if (tviscdata(&rd->argv[0]))
- tv = lj_ctype_meta(cts, argv2cdata(J, J->base[0], &rd->argv[0])->typeid,
+ tv = lj_ctype_meta(cts, argv2cdata(J, J->base[0], &rd->argv[0])->ctypeid,
(MMS)rd->data);
if (!tv && J->base[1] && tviscdata(&rd->argv[1]))
- tv = lj_ctype_meta(cts, argv2cdata(J, J->base[1], &rd->argv[1])->typeid,
+ tv = lj_ctype_meta(cts, argv2cdata(J, J->base[1], &rd->argv[1])->ctypeid,
(MMS)rd->data);
}
if (tv) {
if (!tr) {
goto trymeta;
} else if (tref_iscdata(tr)) {
- CTypeID id = argv2cdata(J, tr, &rd->argv[i])->typeid;
+ CTypeID id = argv2cdata(J, tr, &rd->argv[i])->ctypeid;
ct = ctype_raw(cts, id);
if (ctype_isptr(ct->info)) { /* Resolve pointer or reference. */
IRType t = (LJ_64 && ct->size == 8) ? IRT_P64 : IRT_P32;
void LJ_FASTCALL lj_crecord_tonumber(jit_State *J, RecordFFData *rd)
{
CTState *cts = ctype_ctsG(J2G(J));
- CType *d, *ct = lj_ctype_rawref(cts, cdataV(&rd->argv[0])->typeid);
+ CType *d, *ct = lj_ctype_rawref(cts, cdataV(&rd->argv[0])->ctypeid);
if (ctype_isenum(ct->info)) ct = ctype_child(cts, ct);
if (ctype_isnum(ct->info) || ctype_iscomplex(ct->info)) {
if (ctype_isinteger_or_bool(ct->info) && ct->size <= 4 &&
_(UDATA_META, offsetof(GCudata, metatable)) \
_(UDATA_UDTYPE, offsetof(GCudata, udtype)) \
_(UDATA_FILE, sizeof(GCudata)) \
- _(CDATA_TYPEID, offsetof(GCcdata, typeid)) \
+ _(CDATA_CTYPEID, offsetof(GCcdata, ctypeid)) \
_(CDATA_PTR, sizeof(GCcdata)) \
_(CDATA_INT, sizeof(GCcdata)) \
_(CDATA_INT64, sizeof(GCcdata)) \
/* C data object. Payload follows. */
typedef struct GCcdata {
GCHeader;
- uint16_t typeid; /* C type ID. */
+ uint16_t ctypeid; /* C type ID. */
} GCcdata;
/* Prepended to variable-sized or realigned C data objects. */
}
/* The C type ID of cdata objects is immutable. */
-LJFOLD(FLOAD KGC IRFL_CDATA_TYPEID)
+LJFOLD(FLOAD KGC IRFL_CDATA_CTYPEID)
LJFOLDF(fload_cdata_typeid_kgc)
{
if (LJ_LIKELY(J->flags & JIT_F_OPT_FOLD))
- return INTFOLD((int32_t)ir_kcdata(fleft)->typeid);
+ return INTFOLD((int32_t)ir_kcdata(fleft)->ctypeid);
return NEXTFOLD;
}
return NEXTFOLD;
}
-LJFOLD(FLOAD CNEW IRFL_CDATA_TYPEID)
-LJFOLD(FLOAD CNEWI IRFL_CDATA_TYPEID)
+LJFOLD(FLOAD CNEW IRFL_CDATA_CTYPEID)
+LJFOLD(FLOAD CNEWI IRFL_CDATA_CTYPEID)
LJFOLDF(fload_cdata_typeid_cnew)
{
if (LJ_LIKELY(J->flags & JIT_F_OPT_FOLD))
}
LJFOLD(FLOAD any IRFL_STR_LEN)
-LJFOLD(FLOAD any IRFL_CDATA_TYPEID)
+LJFOLD(FLOAD any IRFL_CDATA_CTYPEID)
LJFOLD(FLOAD any IRFL_CDATA_PTR)
LJFOLD(FLOAD any IRFL_CDATA_INT)
LJFOLD(FLOAD any IRFL_CDATA_INT64)
if (e->k == VKCDATA) { /* Fold in-place since cdata is not interned. */
GCcdata *cd = cdataV(&e->u.nval);
int64_t *p = (int64_t *)cdataptr(cd);
- if (cd->typeid == CTID_COMPLEX_DOUBLE)
+ if (cd->ctypeid == CTID_COMPLEX_DOUBLE)
p[1] ^= (int64_t)U64x(80000000,00000000);
else
*p = -*p;