mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/internal/obj/loong64: add {V,XV}NEG{B/H/W/V} instructions support
Go asm syntax:
VNEG{B/H/W/V} VJ, VD
XVNEG{B/H/W/V} XJ, XD
Equivalent platform assembler syntax:
vneg.{b/h/w/d} vd, vj
xvneg.{b/h/w/d} xd, xj
Change-Id: Ie0a82a434b0ffbcb77425a65b96eff56e030028c
Reviewed-on: https://go-review.googlesource.com/c/go/+/635935
Reviewed-by: abner chenc <chenguoqi@loongson.cn>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
38d146d572
commit
f41fdd962d
4 changed files with 52 additions and 0 deletions
|
|
@ -1659,6 +1659,10 @@ func buildop(ctxt *obj.Link) {
|
|||
opset(AVFRECIPD, r0)
|
||||
opset(AVFRSQRTF, r0)
|
||||
opset(AVFRSQRTD, r0)
|
||||
opset(AVNEGB, r0)
|
||||
opset(AVNEGH, r0)
|
||||
opset(AVNEGW, r0)
|
||||
opset(AVNEGV, r0)
|
||||
|
||||
case AXVPCNTB:
|
||||
opset(AXVPCNTH, r0)
|
||||
|
|
@ -1670,6 +1674,10 @@ func buildop(ctxt *obj.Link) {
|
|||
opset(AXVFRECIPD, r0)
|
||||
opset(AXVFRSQRTF, r0)
|
||||
opset(AXVFRSQRTD, r0)
|
||||
opset(AXVNEGB, r0)
|
||||
opset(AXVNEGH, r0)
|
||||
opset(AXVNEGW, r0)
|
||||
opset(AXVNEGV, r0)
|
||||
|
||||
case AVADDB:
|
||||
opset(AVADDH, r0)
|
||||
|
|
@ -3366,6 +3374,22 @@ func (c *ctxt0) oprr(a obj.As) uint32 {
|
|||
return 0x1da741 << 10 // xvfrsqrt.s
|
||||
case AXVFRSQRTD:
|
||||
return 0x1da742 << 10 // xvfrsqrt.d
|
||||
case AVNEGB:
|
||||
return 0x1ca70c << 10 // vneg.b
|
||||
case AVNEGH:
|
||||
return 0x1ca70d << 10 // vneg.h
|
||||
case AVNEGW:
|
||||
return 0x1ca70e << 10 // vneg.w
|
||||
case AVNEGV:
|
||||
return 0x1ca70f << 10 // vneg.d
|
||||
case AXVNEGB:
|
||||
return 0x1da70c << 10 // xvneg.b
|
||||
case AXVNEGH:
|
||||
return 0x1da70d << 10 // xvneg.h
|
||||
case AXVNEGW:
|
||||
return 0x1da70e << 10 // xvneg.w
|
||||
case AXVNEGV:
|
||||
return 0x1da70f << 10 // xvneg.d
|
||||
}
|
||||
|
||||
c.ctxt.Diag("bad rr opcode %v", a)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue