diff options
| author | 2025-11-21 16:49:53 +0100 | |
|---|---|---|
| committer | 2025-11-21 16:49:53 +0100 | |
| commit | ec4cfe9db9afc1d1c633a922174f5bb0685b0c32 (patch) | |
| tree | 2717b985346d2112f69539577df3a332acb8bd7a /amd64/emit.c | |
| parent | 285063eba442e2a8ac29fd42e0d17d996bcc5d00 (diff) | |
change op names to match 285063eba44
Diffstat (limited to 'amd64/emit.c')
| -rw-r--r-- | amd64/emit.c | 48 |
1 files changed, 24 insertions, 24 deletions
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; |