1
0
mirror of https://github.com/golang/go synced 2024-11-25 14:37:56 -07:00

cmd/internal/obj/loong64: fixed operand assignment error for BFPT/BFPF instructions

The BFPT correspond to BCNEZ instruction of LoongArch64 which structure
is:
	| op-p1 | offs[15:0] | op-p2 | cj | offs[20:16] |
The register REG_FCC0 should be assigned to the source operand cj which named rj here.

Change-Id: I696d0a46028924da1cd7e240fbb40a1913f1a757
Reviewed-on: https://go-review.googlesource.com/c/go/+/565620
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: abner chenc <chenguoqi@loongson.cn>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Qiqi Huang <huangqiqi@loongson.cn>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
This commit is contained in:
limeidan 2024-01-06 17:26:37 +08:00 committed by abner chenc
parent 950fcf129e
commit ff0c2d9634

View File

@ -1373,7 +1373,7 @@ func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32) {
width = 21 width = 21
// FCC0 is the implicit source operand, now that we // FCC0 is the implicit source operand, now that we
// don't register-allocate from the FCC bank. // don't register-allocate from the FCC bank.
rd = REG_FCC0 rj = REG_FCC0
case ABEQ, ABNE: case ABEQ, ABNE:
if rd == 0 || rd == REGZERO || rj == REGZERO { if rd == 0 || rd == REGZERO || rj == REGZERO {
// BEQZ/BNEZ can be encoded with 21-bit offsets. // BEQZ/BNEZ can be encoded with 21-bit offsets.