cmd/internal/obj/loong64: add FRINT{F,D} instructions

Go asm syntax:
        FRINTF	FJ, FD
        FRINTD	FJ, FD

Equivalent platform assembler syntax:
	frint.s	fd, fd
	frint.d	fd, fd

Change-Id: If26c1c26764ac1be6fc7e706a65e1dbbda094805
Reviewed-on: https://go-review.googlesource.com/c/go/+/771020
Reviewed-by: Meidan Li <limeidan@loongson.cn>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Guoqi Chen 2026-04-23 17:27:16 +08:00 committed by abner chenc
parent 15f44ffcc3
commit f93504bfd6
5 changed files with 14 additions and 0 deletions

View file

@ -395,6 +395,10 @@ lable2:
FTINTVF F0, F1 // 01241b01
FTINTVD F0, F1 // 01281b01
// FRINT{F,D} instructions
FRINTF F0, F1 // 01441e01
FRINTD F0, F1 // 01481e01
FMAXAF F4, F5, F6 // a6900c01
FMAXAF F4, F5 // a5900c01
FMAXAD F4, F5, F6 // a6100d01

View file

@ -269,6 +269,8 @@ var Anames = []string{
"FTINTRNEWD",
"FTINTRNEVF",
"FTINTRNEVD",
"FRINTF",
"FRINTD",
"FSEL",
"VMOVQ",
"XVMOVQ",

View file

@ -1332,6 +1332,8 @@ func buildop(ctxt *obj.Link) {
opset(AFTINTWD, r0)
opset(AFTINTVF, r0)
opset(AFTINTVD, r0)
opset(AFRINTF, r0)
opset(AFRINTD, r0)
opset(ANEGF, r0)
opset(ANEGD, r0)
opset(AABSD, r0)

View file

@ -355,6 +355,10 @@ const (
AFTINTRNEVF
AFTINTRNEVD
// 3.2.3.4
AFRINTF
AFRINTD
// 3.2.4.2
AFSEL

View file

@ -588,6 +588,8 @@ var oprr = map[obj.As]uint32{
AFTINTVF: 0x46c9 << 10, // ftint.l.s
AMOVDV: 0x46ca << 10, // ftint.l.d
AFTINTVD: 0x46ca << 10, // ftint.l.d
AFRINTF: 0x4791 << 10, // frint.s
AFRINTD: 0x4792 << 10, // frint.d
AMOVDF: 0x4646 << 10, // fcvt.s.d
AMOVFD: 0x4649 << 10, // fcvt.d.s
AABSF: 0x4501 << 10, // fabs.s