goto st;
st:
- if(f->op == OCONST) {
+ // 64-bit immediates only allowed for move into registers.
+ // this is not a move into a register.
+ if(f->op == OCONST || (f->op == OLITERAL && !t64)) {
gins(a, f, t);
return;
}
// so that it can be referred to by the runtime.
if(strcmp(buf, "interface { }") == 0)
strcpy(buf, "empty");
-
+
// special case: sigi.... is just too hard to read in assembly.
if(strcmp(buf, "...") == 0)
strcpy(buf, "dotdotdot");
return 0;
if(ta->etype != TFIELD || tb->etype != TFIELD)
return 0;
- if(!eqtype(ta->type, tb->type, 0))
+ if(!eqtype(ta->type, tb->type, d+1))
return 0;
ta = ta->down;
tb = tb->down;