cmd/internal/obj/riscv: fix JMP name<>(SB)

It was being rejected. Now it isn't and can be used in the runtime.

Change-Id: I4626bf9fc2e0bc26fffb87d11bede459964324b3
Reviewed-on: https://go-review.googlesource.com/c/go/+/292129
Trust: Russ Cox <rsc@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
Russ Cox 2021-02-15 13:58:45 -05:00
parent 01f05d8ff1
commit 6fe8981620

View file

@ -119,7 +119,7 @@ func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) {
switch p.To.Name { switch p.To.Name {
case obj.NAME_NONE: case obj.NAME_NONE:
p.As = AJALR p.As = AJALR
case obj.NAME_EXTERN: case obj.NAME_EXTERN, obj.NAME_STATIC:
// Handled in preprocess. // Handled in preprocess.
default: default:
ctxt.Diag("unsupported name %d for %v", p.To.Name, p) ctxt.Diag("unsupported name %d for %v", p.To.Name, p)
@ -267,7 +267,7 @@ func rewriteMOV(ctxt *obj.Link, newprog obj.ProgAlloc, p *obj.Prog) {
p.As = movToStore(p.As) p.As = movToStore(p.As)
p.To.Reg = addrToReg(p.To) p.To.Reg = addrToReg(p.To)
case obj.NAME_EXTERN: case obj.NAME_EXTERN, obj.NAME_STATIC:
// AUIPC $off_hi, TMP // AUIPC $off_hi, TMP
// S $off_lo, TMP, R // S $off_lo, TMP, R
as := p.As as := p.As
@ -666,7 +666,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
switch p.To.Type { switch p.To.Type {
case obj.TYPE_MEM: case obj.TYPE_MEM:
switch p.To.Name { switch p.To.Name {
case obj.NAME_EXTERN: case obj.NAME_EXTERN, obj.NAME_STATIC:
// JMP to symbol. // JMP to symbol.
jalrToSym(ctxt, p, newprog, REG_ZERO) jalrToSym(ctxt, p, newprog, REG_ZERO)
} }