]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj/loong64: merge two branch classes into one
authorlimeidan <limeidan@loongson.cn>
Tue, 16 Jan 2024 09:42:48 +0000 (17:42 +0800)
committerabner chenc <chenguoqi@loongson.cn>
Thu, 1 Aug 2024 00:51:17 +0000 (00:51 +0000)
When the kind of the operand is TYPE_BRANCH, we cannot determine
whether it is a long branch or a short branch, so we merge these
two classes into one.

Change-Id: I7d7fa8f62ff02791ec3de4e3e3f7610bc9cb1743
Reviewed-on: https://go-review.googlesource.com/c/go/+/565626
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
Reviewed-by: Qiqi Huang <huangqiqi@loongson.cn>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: abner chenc <chenguoqi@loongson.cn>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/cmd/internal/obj/loong64/a.out.go
src/cmd/internal/obj/loong64/asm.go
src/cmd/internal/obj/loong64/cnames.go

index 251c34c6abe68a41d87098943ac7dac555d754e2..29ee1bb2829636277ccc5c72cb51bf2f107abc8e 100644 (file)
@@ -212,8 +212,7 @@ const (
        C_LACON // $n(REG) where int12 < n <= int32
        C_EXTADDR // external symbol address
        C_DACON // $n(REG) where int32 < n
-       C_SBRA
-       C_LBRA
+       C_BRAN
        C_SAUTO
        C_LAUTO
        C_SEXT
index 933c9c978dd4da11ab2d4286c8d2062ef36f8257..2f2caa8b6d1de47a7e05ed869c58baefd0e8868d 100644 (file)
@@ -240,13 +240,13 @@ var optab = []Optab{
        {ASYSCALL, C_NONE, C_NONE, C_NONE, C_NONE, C_NONE, 5, 4, 0, 0},
        {ASYSCALL, C_ANDCON, C_NONE, C_NONE, C_NONE, C_NONE, 5, 4, 0, 0},
 
-       {ABEQ, C_REG, C_REG, C_NONE, C_SBRA, C_NONE, 6, 4, 0, 0},
-       {ABEQ, C_REG, C_NONE, C_NONE, C_SBRA, C_NONE, 6, 4, 0, 0},
-       {ABLEZ, C_REG, C_NONE, C_NONE, C_SBRA, C_NONE, 6, 4, 0, 0},
-       {ABFPT, C_NONE, C_NONE, C_NONE, C_SBRA, C_NONE, 6, 4, 0, NOTUSETMP},
+       {ABEQ, C_REG, C_REG, C_NONE, C_BRAN, C_NONE, 6, 4, 0, 0},
+       {ABEQ, C_REG, C_NONE, C_NONE, C_BRAN, C_NONE, 6, 4, 0, 0},
+       {ABLEZ, C_REG, C_NONE, C_NONE, C_BRAN, C_NONE, 6, 4, 0, 0},
+       {ABFPT, C_NONE, C_NONE, C_NONE, C_BRAN, C_NONE, 6, 4, 0, NOTUSETMP},
 
-       {AJMP, C_NONE, C_NONE, C_NONE, C_LBRA, C_NONE, 11, 4, 0, 0}, // b
-       {AJAL, C_NONE, C_NONE, C_NONE, C_LBRA, C_NONE, 11, 4, 0, 0}, // bl
+       {AJMP, C_NONE, C_NONE, C_NONE, C_BRAN, C_NONE, 11, 4, 0, 0}, // b
+       {AJAL, C_NONE, C_NONE, C_NONE, C_BRAN, C_NONE, 11, 4, 0, 0}, // bl
 
        {AJMP, C_NONE, C_NONE, C_NONE, C_ZOREG, C_NONE, 18, 4, REGZERO, 0}, // jirl r0, rj, 0
        {AJAL, C_NONE, C_NONE, C_NONE, C_ZOREG, C_NONE, 18, 4, REGLINK, 0}, // jirl r1, rj, 0
@@ -331,8 +331,8 @@ var optab = []Optab{
        {obj.ANOP, C_DCON, C_NONE, C_NONE, C_NONE, C_NONE, 0, 0, 0, 0}, // nop variants, see #40689
        {obj.ANOP, C_REG, C_NONE, C_NONE, C_NONE, C_NONE, 0, 0, 0, 0},
        {obj.ANOP, C_FREG, C_NONE, C_NONE, C_NONE, C_NONE, 0, 0, 0, 0},
-       {obj.ADUFFZERO, C_NONE, C_NONE, C_NONE, C_LBRA, C_NONE, 11, 4, 0, 0}, // same as AJMP
-       {obj.ADUFFCOPY, C_NONE, C_NONE, C_NONE, C_LBRA, C_NONE, 11, 4, 0, 0}, // same as AJMP
+       {obj.ADUFFZERO, C_NONE, C_NONE, C_NONE, C_BRAN, C_NONE, 11, 4, 0, 0}, // same as AJMP
+       {obj.ADUFFCOPY, C_NONE, C_NONE, C_NONE, C_BRAN, C_NONE, 11, 4, 0, 0}, // same as AJMP
 
        {obj.AXXX, C_NONE, C_NONE, C_NONE, C_NONE, C_NONE, 0, 4, 0, 0},
 }
@@ -807,7 +807,7 @@ func (c *ctxt0) aclass(a *obj.Addr) int {
                return C_LCON
 
        case obj.TYPE_BRANCH:
-               return C_SBRA
+               return C_BRAN
        }
 
        return C_GOK
@@ -950,11 +950,6 @@ func cmp(a int, b int) bool {
                        return true
                }
 
-       case C_LBRA:
-               if b == C_SBRA {
-                       return true
-               }
-
        case C_LEXT:
                if b == C_SEXT {
                        return true
index 955c464d2fce22ca6956a5364e1391e6bb218595..02b18272ca2d14815a285e9687ba9ede454f5aa3 100644 (file)
@@ -24,8 +24,7 @@ var cnames0 = []string{
        "LACON",
        "EXTADDR",
        "DACON",
-       "SBRA",
-       "LBRA",
+       "BRAN",
        "SAUTO",
        "LAUTO",
        "SEXT",