From ec4cfe9db9afc1d1c633a922174f5bb0685b0c32 Mon Sep 17 00:00:00 2001 From: lemon Date: Fri, 21 Nov 2025 16:49:53 +0100 Subject: change op names to match 285063eba44 --- amd64/emit.c | 48 ++++++++++++++++++++++++------------------------ amd64/isel.c | 26 +++++++++++++------------- amd64/sysv.c | 22 +++++++++++----------- 3 files changed, 48 insertions(+), 48 deletions(-) (limited to 'amd64') diff --git a/amd64/emit.c b/amd64/emit.c index 6ef6df3..a7bf542 100644 --- a/amd64/emit.c +++ b/amd64/emit.c @@ -953,36 +953,36 @@ emitinstr(uchar **pcode, struct function *fn, struct block *blk, int curi, struc default: fatal(NULL, "amd64: in %y; unimplemented instr '%s'", fn->name, opnames[ins->op]); case Onop: break; - case Ostore1: cls = KI32, X = Xmovb; goto Store; - case Ostore2: cls = KI32, X = Xmovw; goto Store; - case Ostore4: cls = KI32, X = Xmov; goto Store; - case Ostore8: cls = KI64, X = Xmov; + case Ostore8: cls = KI32, X = Xmovb; goto Store; + case Ostore16: cls = KI32, X = Xmovw; goto Store; + case Ostore32: cls = KI32, X = Xmov; goto Store; + case Ostore64: cls = KI64, X = Xmov; Store: src = mkimmregoper(ins->r); if (cls == KI32 && src.t == OREG && src.reg >= XMM0) cls = KF32; if (cls == KI64 && src.t == OREG && src.reg >= XMM0) cls = KF64; X(pcode, cls, mkmemoper(ins->l), src); break; - case Oexts1: src = mkregoper(ins->l); goto Movsxb; - case Oextu1: src = mkregoper(ins->l); goto Movzxb; - case Oexts2: src = mkregoper(ins->l); goto Movsxw; - case Oextu2: src = mkregoper(ins->l); goto Movzxw; - case Oexts4: src = mkregoper(ins->l); goto Movsxl; - case Oextu4: src = mkregoper(ins->l); goto Movzxl; - case Oloads1: src = mkmemoper(ins->l); Movsxb: Xmovsxb(pcode, cls, reg2oper(ins->reg-1), src); break; - case Oloadu1: src = mkmemoper(ins->l); Movzxb: Xmovzxb(pcode, cls, reg2oper(ins->reg-1), src); break; - case Oloads2: src = mkmemoper(ins->l); Movsxw: Xmovsxw(pcode, cls, reg2oper(ins->reg-1), src); break; - case Oloadu2: src = mkmemoper(ins->l); Movzxw: Xmovzxw(pcode, cls, reg2oper(ins->reg-1), src); break; - case Oloads4: src = mkmemoper(ins->l); Movsxl: Xmovsxl(pcode, cls, reg2oper(ins->reg-1), src); break; - case Oloadu4: src = mkmemoper(ins->l); Movzxl: Xmov(pcode, KI32, reg2oper(ins->reg-1), src); break; - case Oloadf4: case Oloadf8: Xmov(pcode, cls, reg2oper(ins->reg-1), mkmemoper(ins->l)); break; - case Oloadi8: Xmov(pcode, KI64, reg2oper(ins->reg-1), mkmemoper(ins->l)); break; - case Ocvtf4f8: X = Xcvtss2sd; goto FloatsCvt; - case Ocvtf8f4: X = Xcvtsd2ss; goto FloatsCvt; - case Ocvtf4s: X = Xcvttss2si; goto FloatsCvt; - case Ocvtf8s: X = Xcvttsd2si; goto FloatsCvt; - case Ocvts4f: X = cls == KF32 ? Xcvtsi2ss : Xcvtsi2sd; cls = KI32; goto FloatsCvt; - case Ocvts8f: X = cls == KF32 ? Xcvtsi2ss : Xcvtsi2sd; cls = KI64; goto FloatsCvt; + case Oexts8: src = mkregoper(ins->l); goto Movsxb; + case Oextu8: src = mkregoper(ins->l); goto Movzxb; + case Oexts16: src = mkregoper(ins->l); goto Movsxw; + case Oextu16: src = mkregoper(ins->l); goto Movzxw; + case Oexts32: src = mkregoper(ins->l); goto Movsxl; + case Oextu32: src = mkregoper(ins->l); goto Movzxl; + case Oloads8: src = mkmemoper(ins->l); Movsxb: Xmovsxb(pcode, cls, reg2oper(ins->reg-1), src); break; + case Oloadu8: src = mkmemoper(ins->l); Movzxb: Xmovzxb(pcode, cls, reg2oper(ins->reg-1), src); break; + case Oloads16: src = mkmemoper(ins->l); Movsxw: Xmovsxw(pcode, cls, reg2oper(ins->reg-1), src); break; + case Oloadu16: src = mkmemoper(ins->l); Movzxw: Xmovzxw(pcode, cls, reg2oper(ins->reg-1), src); break; + case Oloads32: src = mkmemoper(ins->l); Movsxl: Xmovsxl(pcode, cls, reg2oper(ins->reg-1), src); break; + case Oloadu32: src = mkmemoper(ins->l); Movzxl: Xmov(pcode, KI32, reg2oper(ins->reg-1), src); break; + case Oloadf32: case Oloadf64: Xmov(pcode, cls, reg2oper(ins->reg-1), mkmemoper(ins->l)); break; + case Oloadi64: Xmov(pcode, KI64, reg2oper(ins->reg-1), mkmemoper(ins->l)); break; + case Ocvtf32f64: X = Xcvtss2sd; goto FloatsCvt; + case Ocvtf64f32: X = Xcvtsd2ss; goto FloatsCvt; + case Ocvtf32s: X = Xcvttss2si; goto FloatsCvt; + case Ocvtf64s: X = Xcvttsd2si; goto FloatsCvt; + case Ocvts32f: X = cls == KF32 ? Xcvtsi2ss : Xcvtsi2sd; cls = KI32; goto FloatsCvt; + case Ocvts64f: X = cls == KF32 ? Xcvtsi2ss : Xcvtsi2sd; cls = KI64; goto FloatsCvt; FloatsCvt: X(pcode, cls, reg2oper(ins->reg-1), mkdatregoper(ins->l)); break; diff --git a/amd64/isel.c b/amd64/isel.c index 904fdbd..b17e541 100644 --- a/amd64/isel.c +++ b/amd64/isel.c @@ -139,7 +139,7 @@ selcall(struct function *fn, struct instr *ins, struct block *blk, int *curi) *arg = mkinstr(Omove, call->abiarg[i].ty.cls, mkref(RREG, abi.reg), arg->r); } else { union ref adr = mkaddr((struct addr){mkref(RREG, RSP), .disp = abi.stk}); - *arg = mkinstr(Ostore1+ilog2(cls2siz[abi.ty.cls]), 0, adr, arg->r); + *arg = mkinstr(Ostore8+ilog2(cls2siz[abi.ty.cls]), 0, adr, arg->r); } } if (call->argstksiz) { @@ -485,32 +485,32 @@ sel(struct function *fn, struct instr *ins, struct block *blk, int *curi) if (op == Oadd && isaddrcon(ins->r,1)) /* no 3-address add if rhs is mem */ ins->inplace = 1; break; - case Oloads1: case Oloadu1: case Oloads2: case Oloadu2: - case Oloads4: case Oloadu4: case Oloadi8: case Oloadf4: case Oloadf8: + case Oloads8: case Oloadu8: case Oloads16: case Oloadu16: + case Oloads32: case Oloadu32: case Oloadi64: case Oloadf32: case Oloadf64: loadstoreaddr(blk, &ins->l, curi); break; - case Ostore1: case Ostore2: case Ostore4: case Ostore8: + case Ostore8: case Ostore16: case Ostore32: case Ostore64: loadstoreaddr(blk, &ins->l, curi); if (isaddrcon(ins->r,1) || ins->r.t == RADDR) ins->r = insertinstr(blk, (*curi)++, mkinstr(Ocopy, KPTR, ins->r)); else fixarg(&ins->r, ins, blk, curi); break; - case Ocvtu4f: + case Ocvtu32f: fixarg(&ins->l, ins, blk, curi); - ins->l = insertinstr(blk, (*curi)++, mkinstr(Oextu4, KI64, ins->l)); - ins->op = Ocvts8f; + ins->l = insertinstr(blk, (*curi)++, mkinstr(Oextu32, KI64, ins->l)); + ins->op = Ocvts64f; break; - case Ocvtf4u: case Ocvtf8u: + case Ocvtf32u: case Ocvtf64u: fixarg(&ins->l, ins, blk, curi); if (ins->cls == KI32) { - ins->l = insertinstr(blk, (*curi)++, mkinstr(ins->op == Ocvtf4u ? Ocvtf4s : Ocvtf8s, KI64, ins->l)); - ins->op = Oextu4; + ins->l = insertinstr(blk, (*curi)++, mkinstr(ins->op == Ocvtf32u ? Ocvtf32s : Ocvtf64s, KI64, ins->l)); + ins->op = Oextu32; } else assert(!"nyi flt -> u64"); break; - case Ocvtf4f8: case Ocvtf8f4: case Ocvtf4s: case Ocvtf8s: case Ocvts4f: case Ocvts8f: - case Ocvtu8f: - case Oexts1: case Oextu1: case Oexts2: case Oextu2: case Oexts4: case Oextu4: + case Ocvtf32f64: case Ocvtf64f32: case Ocvtf32s: case Ocvtf64s: case Ocvts32f: case Ocvts64f: + case Ocvtu64f: + case Oexts8: case Oextu8: case Oexts16: case Oextu16: case Oexts32: case Oextu32: if (isnumcon(ins->l)) { union ref it; bool ok = foldunop(&it, ins->op, ins->cls, ins->l); diff --git a/amd64/sysv.c b/amd64/sysv.c index e69797b..7410499 100644 --- a/amd64/sysv.c +++ b/amd64/sysv.c @@ -195,16 +195,16 @@ vastart(struct function *fn, struct block *blk, int *curi) *ins = mkinstr(Oadd, KPTR, ap, mkref(RICON, 16)); dst = mkref(RTMP, ins - instrtab); int i = *curi + 1; - insertinstr(blk, i++, mkinstr(Ostore8, 0, dst, rsave)); + insertinstr(blk, i++, mkinstr(Ostore64, 0, dst, rsave)); /* set ap->overflow_arg_area */ src = insertinstr(blk, i++, mkinstr(Oadd, KPTR, mkref(RREG, RBP), mkref(RICON, 16+stk0))); dst = insertinstr(blk, i++, mkinstr(Oadd, KPTR, ap, mkref(RICON, 8))); - insertinstr(blk, i++, mkinstr(Ostore8, 0, dst, src)); + insertinstr(blk, i++, mkinstr(Ostore64, 0, dst, src)); /* set ap->gp_offset */ - insertinstr(blk, i++, mkinstr(Ostore4, 0, ap, mkref(RICON, gpr0*8))); + insertinstr(blk, i++, mkinstr(Ostore32, 0, ap, mkref(RICON, gpr0*8))); /* set ap->fp_offset */ dst = insertinstr(blk, i++, mkinstr(Oadd, KPTR, ap, mkref(RICON, 4))); - insertinstr(blk, i++, mkinstr(Ostore4, 0, dst, mkref(RICON, 6*8 + fpr0*8))); + insertinstr(blk, i++, mkinstr(Ostore32, 0, dst, mkref(RICON, 6*8 + fpr0*8))); *curi = i; } @@ -230,7 +230,7 @@ vaarg(struct function *fn, struct block *blk, int *curi) union ref phi, phiargs[2]; if (ni) { /* l->gp_offset < 48 - num_gp * 8 */ - tmp = insertinstr(blk, (*curi)++, mkinstr(Oloadu4, KI32, ap)); + tmp = insertinstr(blk, (*curi)++, mkinstr(Oloadu32, KI32, ap)); tmp = insertinstr(blk, (*curi)++, mkinstr(Oulte, KI32, tmp, mkref(RICON, 48 - ni*8))); merge = blksplitafter(fn, blk, *curi); blk->jmp.t = 0; @@ -239,12 +239,12 @@ vaarg(struct function *fn, struct block *blk, int *curi) useblk(fn, blk->s1); { /* phi0: &l->reg_save_area[l->gp_offset] */ - union ref sav = addinstr(fn, mkinstr(Oloadi8, KPTR, irbinop(fn, Oadd, KPTR, ap, mkref(RICON, 16)))); - union ref gpoff = addinstr(fn, mkinstr(Oloadu4, KI32, ap)); + union ref sav = addinstr(fn, mkinstr(Oloadi64, KPTR, irbinop(fn, Oadd, KPTR, ap, mkref(RICON, 16)))); + union ref gpoff = addinstr(fn, mkinstr(Oloadu32, KI32, ap)); phiargs[0] = irbinop(fn, Oadd, KPTR, sav, gpoff); /* l->gp_offset += num_gp * 8 */ gpoff = irbinop(fn, Oadd, KI32, gpoff, mkref(RICON, ni * 8)); - addinstr(fn, mkinstr(Ostore4, 0, ap, gpoff)); + addinstr(fn, mkinstr(Ostore32, 0, ap, gpoff)); assert(merge->npred == 1); blkpred(merge, 0) = blk->s1; blk->s1->jmp.t = Jb; @@ -254,13 +254,13 @@ vaarg(struct function *fn, struct block *blk, int *curi) { /* phi1: l->overflow_arg_area */ union ref adr = irbinop(fn, Oadd, KPTR, ap, mkref(RICON, 8)); - union ref ovf = addinstr(fn, mkinstr(Oloadi8, KPTR, adr)); + union ref ovf = addinstr(fn, mkinstr(Oloadi64, KPTR, adr)); /* align no-op */ phiargs[1] = ovf; /* update l->overflow_arg_area += num_gp*8 */ int siz = 8; - addinstr(fn, mkinstr(Ostore8, 0, adr, irbinop(fn, Oadd, KPTR, ovf, mkref(RICON, siz)))); + addinstr(fn, mkinstr(Ostore64, 0, adr, irbinop(fn, Oadd, KPTR, ovf, mkref(RICON, siz)))); putbranch(fn, merge); } assert(merge->npred == 2); @@ -269,7 +269,7 @@ vaarg(struct function *fn, struct block *blk, int *curi) merge->ins.p[0] = var; phi = insertphi(merge, KPTR); memcpy(phitab.p[instrtab[phi.i].l.i], phiargs, sizeof phiargs); - instrtab[var] = mkinstr(cls[0] == KI32 ? Oloads4 : Oloadi8, cls[0], phi); + instrtab[var] = mkinstr(cls[0] == KI32 ? Oloads32 : Oloadi64, cls[0], phi); } else { assert(0&&nf); } -- cgit v1.2.3