mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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 <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: abner chenc <chenguoqi@loongson.cn> Reviewed-by: Junyang Shao <shaojunyang@google.com> Reviewed-by: Mark Freeman <markfreeman@google.com> Reviewed-by: Meidan Li <limeidan@loongson.cn>
This commit is contained in:
parent
a18294bb6a
commit
a318843a2a
1 changed files with 22 additions and 31 deletions
|
|
@ -65,26 +65,19 @@ var optab = []Optab{
|
||||||
{AMOVWU, C_REG, C_NONE, C_NONE, C_REG, C_NONE, 12, 4, 0, 0},
|
{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},
|
{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},
|
{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},
|
{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},
|
{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},
|
{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},
|
{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},
|
{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},
|
{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},
|
{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},
|
{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_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},
|
{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_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},
|
{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_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},
|
{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},
|
{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(ALL, r0)
|
||||||
opset(ALLV, 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:
|
case ASLL:
|
||||||
opset(ASRL, r0)
|
opset(ASRL, r0)
|
||||||
opset(ASRA, r0)
|
opset(ASRA, r0)
|
||||||
|
|
@ -1541,9 +1514,26 @@ func buildop(ctxt *obj.Link) {
|
||||||
case ASUB:
|
case ASUB:
|
||||||
opset(ASUBU, r0)
|
opset(ASUBU, r0)
|
||||||
opset(ANOR, r0)
|
opset(ANOR, r0)
|
||||||
|
opset(ASUBV, r0)
|
||||||
case ASUBV:
|
|
||||||
opset(ASUBVU, 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:
|
case ASYSCALL:
|
||||||
opset(ADBAR, r0)
|
opset(ADBAR, r0)
|
||||||
|
|
@ -1563,6 +1553,9 @@ func buildop(ctxt *obj.Link) {
|
||||||
opset(AALSLW, r0)
|
opset(AALSLW, r0)
|
||||||
opset(AALSLWU, r0)
|
opset(AALSLWU, r0)
|
||||||
|
|
||||||
|
case ANEGW:
|
||||||
|
opset(ANEGV, r0)
|
||||||
|
|
||||||
case AMOVW,
|
case AMOVW,
|
||||||
AMOVD,
|
AMOVD,
|
||||||
AMOVF,
|
AMOVF,
|
||||||
|
|
@ -1575,8 +1568,6 @@ func buildop(ctxt *obj.Link) {
|
||||||
AXVMOVQ,
|
AXVMOVQ,
|
||||||
AVSHUFB,
|
AVSHUFB,
|
||||||
AXVSHUFB,
|
AXVSHUFB,
|
||||||
ANEGW,
|
|
||||||
ANEGV,
|
|
||||||
AWORD,
|
AWORD,
|
||||||
APRELD,
|
APRELD,
|
||||||
APRELDX,
|
APRELDX,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue