From: Xiaolin Zhao Date: Tue, 18 Nov 2025 09:36:24 +0000 (+0800) Subject: cmd/internal/obj/loong64: optimize duplicate optab entries X-Git-Tag: go1.26rc1~167 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a318843a2ad17d853b13599a73b2912a13474490;p=gostls13.git cmd/internal/obj/loong64: optimize duplicate optab entries Change-Id: I28b79d178a2ed3d304f0e61613439813c4dcf79e Reviewed-on: https://go-review.googlesource.com/c/go/+/721600 LUCI-TryBot-Result: Go LUCI Reviewed-by: abner chenc Reviewed-by: Junyang Shao Reviewed-by: Mark Freeman Reviewed-by: Meidan Li --- diff --git a/src/cmd/internal/obj/loong64/asm.go b/src/cmd/internal/obj/loong64/asm.go index a39a668316..857ef31ca3 100644 --- a/src/cmd/internal/obj/loong64/asm.go +++ b/src/cmd/internal/obj/loong64/asm.go @@ -65,26 +65,19 @@ var optab = []Optab{ {AMOVWU, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 12, 4, 0, 0}, {ASUB, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, - {ASUBV, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AADD, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AADDV, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AAND, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {ASUB, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, - {ASUBV, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AADD, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AADDV, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AAND, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {ANEGW, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, - {ANEGV, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AMASKEQZ, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {ASLL, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {ASLL, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {ASLLV, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {ASLLV, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, - {AMUL, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, - {AMUL, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, - {AMULV, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, - {AMULV, C_REG, C_REG, C_NONE, C_REG, C_NONE, 2, 4, 0, 0}, {AADDF, C_FREG, C_NONE, C_NONE, C_FREG, C_NONE, 2, 4, 0, 0}, {AADDF, C_FREG, C_FREG, C_NONE, C_FREG, C_NONE, 2, 4, 0, 0}, {ACMPEQF, C_FREG, C_FREG, C_NONE, C_FCCREG, C_NONE, 2, 4, 0, 0}, @@ -1503,26 +1496,6 @@ func buildop(ctxt *obj.Link) { opset(ALL, r0) opset(ALLV, r0) - case AMUL: - opset(AMULU, r0) - opset(AMULH, r0) - opset(AMULHU, r0) - opset(AREM, r0) - opset(AREMU, r0) - opset(ADIV, r0) - opset(ADIVU, r0) - opset(AMULWVW, r0) - opset(AMULWVWU, r0) - - case AMULV: - opset(AMULVU, r0) - opset(AMULHV, r0) - opset(AMULHVU, r0) - opset(AREMV, r0) - opset(AREMVU, r0) - opset(ADIVV, r0) - opset(ADIVVU, r0) - case ASLL: opset(ASRL, r0) opset(ASRA, r0) @@ -1541,9 +1514,26 @@ func buildop(ctxt *obj.Link) { case ASUB: opset(ASUBU, r0) opset(ANOR, r0) - - case ASUBV: + opset(ASUBV, r0) opset(ASUBVU, r0) + opset(AMUL, r0) + opset(AMULU, r0) + opset(AMULH, r0) + opset(AMULHU, r0) + opset(AREM, r0) + opset(AREMU, r0) + opset(ADIV, r0) + opset(ADIVU, r0) + opset(AMULV, r0) + opset(AMULVU, r0) + opset(AMULHV, r0) + opset(AMULHVU, r0) + opset(AREMV, r0) + opset(AREMVU, r0) + opset(ADIVV, r0) + opset(ADIVVU, r0) + opset(AMULWVW, r0) + opset(AMULWVWU, r0) case ASYSCALL: opset(ADBAR, r0) @@ -1563,6 +1553,9 @@ func buildop(ctxt *obj.Link) { opset(AALSLW, r0) opset(AALSLWU, r0) + case ANEGW: + opset(ANEGV, r0) + case AMOVW, AMOVD, AMOVF, @@ -1575,8 +1568,6 @@ func buildop(ctxt *obj.Link) { AXVMOVQ, AVSHUFB, AXVSHUFB, - ANEGW, - ANEGV, AWORD, APRELD, APRELDX,