diff 178cd4d1139b8ba928ddac19578643637a953a93 uncommitted --- a/sys/src/cmd/9a/lex.c +++ b/sys/src/cmd/9a/lex.c @@ -476,8 +476,11 @@ "FCTIDZCC", LFCONV, AFCTIDZCC, "FCFID", LFCONV, AFCFID, "FCFIDCC", LFCONV, AFCFIDCC, - "LDAR", LXLD, ALDAR, - "MOVD", LMOVW, AMOVD, + "LBAR", LXLD, ALBAR, + "LHAR", LXLD, ALHAR, + "LDAR", LXLD, ALDAR, + "LQAR", LXLD, ALQAR, + "MOVD", LMOVW, AMOVD, "MOVDU", LMOVW, AMOVDU, "MOVWZ", LMOVW, AMOVWZ, "MOVWZU", LMOVW, AMOVWZU, @@ -510,7 +513,10 @@ "SRAD", LSHW, ASRAD, "SRADCC", LSHW, ASRADCC, "SRDCC", LSHW, ASRDCC, + "STBCCC", LXST, ASTBCCC, + "STHCCC", LXST, ASTHCCC, "STDCCC", LXST, ASTDCCC, + "STQCCC", LXST, ASTQCCC, "TD", LADDW, ATD, /* pseudo instructions */ --- a/sys/src/cmd/9c/9.out.h +++ b/sys/src/cmd/9c/9.out.h @@ -362,6 +362,12 @@ AHRFID, ALWSYNC, + ALBAR, + ALHAR, + ALQAR, + ASTBCCC, + ASTHCCC, + ASTQCCC, ALAST }; --- a/sys/src/cmd/9l/asmout.c +++ b/sys/src/cmd/9l/asmout.c @@ -1452,10 +1452,14 @@ case AMOVHZ: return OPVCC(31,279,0,0); /* lhzx */ case AMOVHZU: return OPVCC(31,311,0,0); /* lhzux */ case AECIWX: return OPVCC(31,310,0,0); /* eciwx */ + case ALHAR: return OPVCC(31,116,0,0); /* lharx */ case ALWAR: return OPVCC(31,20,0,0); /* lwarx */ + case ALDAR: return OPVCC(31,84,0,0); /* ldarx */ + case ALQAR: return OPVCC(31,276,0,0); /* lqarx */ case ALSW: return OPVCC(31,533,0,0); /* lswx */ case AMOVD: return OPVCC(31,21,0,0); /* ldx */ case AMOVDU: return OPVCC(31,53,0,0); /* ldux */ + case ALBAR: return OPVCC(31,52,0,0); /* lbarx */ } diag("bad loadx opcode %A", a); return 0; @@ -1519,8 +1523,11 @@ case AMOVWU: return OPVCC(31,183,0,0); /* stwux */ case ASTSW: return OPVCC(31,661,0,0); /* stswx */ case AMOVWBR: return OPVCC(31,662,0,0); /* stwbrx */ + case ASTBCCC: return OPVCC(31,694,0,0); /* stbcx */ + case ASTHCCC: return OPVCC(31,726,0,0); /* sthcx */ case ASTWCCC: return OPVCC(31,150,0,1); /* stwcx. */ case ASTDCCC: return OPVCC(31,214,0,1); /* stwdx. */ + case ASTQCCC: return OPVCC(31,182,0,1); /* stqcx. */ case AECOWX: return OPVCC(31,438,0,0); /* ecowx */ case AMOVD: return OPVCC(31,149,0,0); /* stdx */ case AMOVDU: return OPVCC(31,181,0,0); /* stdux */ --- a/sys/src