summaryrefslogtreecommitdiff
path: root/1002-cmd-compile-don-t-merge-symbols-on-riscv64-when-dyna.patch
diff options
context:
space:
mode:
Diffstat (limited to '1002-cmd-compile-don-t-merge-symbols-on-riscv64-when-dyna.patch')
-rw-r--r--1002-cmd-compile-don-t-merge-symbols-on-riscv64-when-dyna.patch87
1 files changed, 42 insertions, 45 deletions
diff --git a/1002-cmd-compile-don-t-merge-symbols-on-riscv64-when-dyna.patch b/1002-cmd-compile-don-t-merge-symbols-on-riscv64-when-dyna.patch
index 010f3ea..4819b92 100644
--- a/1002-cmd-compile-don-t-merge-symbols-on-riscv64-when-dyna.patch
+++ b/1002-cmd-compile-don-t-merge-symbols-on-riscv64-when-dyna.patch
@@ -1,4 +1,4 @@
-From f11737fca5ac7ec43bbd25c07bae6faa6319cddc Mon Sep 17 00:00:00 2001
+From 215de81513286c010951624243c2923f7dc79675 Mon Sep 17 00:00:00 2001
From: Meng Zhuo <mengzhuo1203@gmail.com>
Date: Thu, 12 Sep 2024 19:46:20 +0800
Subject: [PATCH] cmd/compile: don't merge symbols on riscv64 when dynamic
@@ -21,10 +21,10 @@ Reviewed-by: Cherry Mui <cherryyz@google.com>
2 files changed, 115 insertions(+), 121 deletions(-)
diff --git a/src/cmd/compile/internal/ssa/_gen/RISCV64.rules b/src/cmd/compile/internal/ssa/_gen/RISCV64.rules
-index c2df433315..00d0d91b46 100644
+index 9ae96043810cfd..a69df619a576c6 100644
--- a/src/cmd/compile/internal/ssa/_gen/RISCV64.rules
+++ b/src/cmd/compile/internal/ssa/_gen/RISCV64.rules
-@@ -271,65 +271,29 @@
+@@ -270,65 +270,29 @@
// We need to fold MOVaddr into the LD/MOVDstore ops so that the live variable analysis
// knows what variables are being read/written by the ops.
@@ -114,10 +114,10 @@ index c2df433315..00d0d91b46 100644
// Similarly, fold ADDI into MOVaddr to avoid confusing live variable analysis
// with OffPtr -> ADDI.
diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
-index f033b25bdd..9243702508 100644
+index aa44ab311e92af..3a044b5c9d2602 100644
--- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go
+++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
-@@ -3870,8 +3870,10 @@ func rewriteValueRISCV64_OpRISCV64FSUBS(v *Value) bool {
+@@ -4008,8 +4008,10 @@ func rewriteValueRISCV64_OpRISCV64FSUBS(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVBUload(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -129,7 +129,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVBUload [off1+off2] {mergeSym(sym1,sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -3883,7 +3885,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBUload(v *Value) bool {
+@@ -4021,7 +4023,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBUload(v *Value) bool {
sym2 := auxToSym(v_0.Aux)
base := v_0.Args[0]
mem := v_1
@@ -138,7 +138,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVBUload)
-@@ -4177,8 +4179,10 @@ func rewriteValueRISCV64_OpRISCV64MOVBUreg(v *Value) bool {
+@@ -4315,8 +4317,10 @@ func rewriteValueRISCV64_OpRISCV64MOVBUreg(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVBload(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -150,7 +150,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVBload [off1+off2] {mergeSym(sym1,sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -4190,7 +4194,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBload(v *Value) bool {
+@@ -4328,7 +4332,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBload(v *Value) bool {
sym2 := auxToSym(v_0.Aux)
base := v_0.Args[0]
mem := v_1
@@ -159,7 +159,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVBload)
-@@ -4303,8 +4307,10 @@ func rewriteValueRISCV64_OpRISCV64MOVBstore(v *Value) bool {
+@@ -4441,8 +4445,10 @@ func rewriteValueRISCV64_OpRISCV64MOVBstore(v *Value) bool {
v_2 := v.Args[2]
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -171,7 +171,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVBstore [off1+off2] {mergeSym(sym1,sym2)} base val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -4317,7 +4323,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBstore(v *Value) bool {
+@@ -4455,7 +4461,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBstore(v *Value) bool {
base := v_0.Args[0]
val := v_1
mem := v_2
@@ -180,7 +180,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVBstore)
-@@ -4471,9 +4477,11 @@ func rewriteValueRISCV64_OpRISCV64MOVBstore(v *Value) bool {
+@@ -4609,9 +4615,11 @@ func rewriteValueRISCV64_OpRISCV64MOVBstore(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -195,7 +195,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym1 := auxToSym(v.Aux)
-@@ -4482,20 +4490,20 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
+@@ -4620,20 +4628,20 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
}
off2 := auxIntToInt32(v_0.AuxInt)
sym2 := auxToSym(v_0.Aux)
@@ -221,7 +221,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym := auxToSym(v.Aux)
-@@ -4503,7 +4511,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
+@@ -4641,7 +4649,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
break
}
off2 := auxIntToInt64(v_0.AuxInt)
@@ -230,7 +230,7 @@ index f033b25bdd..9243702508 100644
mem := v_1
if !(is32Bit(int64(off1) + off2)) {
break
-@@ -4511,7 +4519,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
+@@ -4649,7 +4657,7 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
v.reset(OpRISCV64MOVBstorezero)
v.AuxInt = int32ToAuxInt(off1 + int32(off2))
v.Aux = symToAux(sym)
@@ -239,7 +239,7 @@ index f033b25bdd..9243702508 100644
return true
}
return false
-@@ -4519,8 +4527,10 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
+@@ -4657,8 +4665,10 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVDload(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -251,7 +251,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVDload [off1+off2] {mergeSym(sym1,sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -4532,7 +4542,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDload(v *Value) bool {
+@@ -4670,7 +4680,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDload(v *Value) bool {
sym2 := auxToSym(v_0.Aux)
base := v_0.Args[0]
mem := v_1
@@ -260,7 +260,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVDload)
-@@ -4599,8 +4609,10 @@ func rewriteValueRISCV64_OpRISCV64MOVDstore(v *Value) bool {
+@@ -4737,8 +4747,10 @@ func rewriteValueRISCV64_OpRISCV64MOVDstore(v *Value) bool {
v_2 := v.Args[2]
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -272,7 +272,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVDstore [off1+off2] {mergeSym(sym1,sym2)} base val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -4613,7 +4625,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDstore(v *Value) bool {
+@@ -4751,7 +4763,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDstore(v *Value) bool {
base := v_0.Args[0]
val := v_1
mem := v_2
@@ -281,7 +281,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVDstore)
-@@ -4665,9 +4677,11 @@ func rewriteValueRISCV64_OpRISCV64MOVDstore(v *Value) bool {
+@@ -4803,9 +4815,11 @@ func rewriteValueRISCV64_OpRISCV64MOVDstore(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -296,7 +296,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym1 := auxToSym(v.Aux)
-@@ -4676,20 +4690,20 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
+@@ -4814,20 +4828,20 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
}
off2 := auxIntToInt32(v_0.AuxInt)
sym2 := auxToSym(v_0.Aux)
@@ -322,7 +322,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym := auxToSym(v.Aux)
-@@ -4697,7 +4711,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
+@@ -4835,7 +4849,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
break
}
off2 := auxIntToInt64(v_0.AuxInt)
@@ -331,7 +331,7 @@ index f033b25bdd..9243702508 100644
mem := v_1
if !(is32Bit(int64(off1) + off2)) {
break
-@@ -4705,7 +4719,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
+@@ -4843,7 +4857,7 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
v.reset(OpRISCV64MOVDstorezero)
v.AuxInt = int32ToAuxInt(off1 + int32(off2))
v.Aux = symToAux(sym)
@@ -340,7 +340,7 @@ index f033b25bdd..9243702508 100644
return true
}
return false
-@@ -4713,8 +4727,10 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
+@@ -4851,8 +4865,10 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVHUload(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -352,7 +352,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVHUload [off1+off2] {mergeSym(sym1,sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -4726,7 +4742,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHUload(v *Value) bool {
+@@ -4864,7 +4880,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHUload(v *Value) bool {
sym2 := auxToSym(v_0.Aux)
base := v_0.Args[0]
mem := v_1
@@ -361,7 +361,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVHUload)
-@@ -4877,8 +4893,10 @@ func rewriteValueRISCV64_OpRISCV64MOVHUreg(v *Value) bool {
+@@ -5015,8 +5031,10 @@ func rewriteValueRISCV64_OpRISCV64MOVHUreg(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVHload(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -373,7 +373,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVHload [off1+off2] {mergeSym(sym1,sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -4890,7 +4908,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHload(v *Value) bool {
+@@ -5028,7 +5046,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHload(v *Value) bool {
sym2 := auxToSym(v_0.Aux)
base := v_0.Args[0]
mem := v_1
@@ -382,7 +382,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVHload)
-@@ -5047,8 +5065,10 @@ func rewriteValueRISCV64_OpRISCV64MOVHstore(v *Value) bool {
+@@ -5185,8 +5203,10 @@ func rewriteValueRISCV64_OpRISCV64MOVHstore(v *Value) bool {
v_2 := v.Args[2]
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -394,7 +394,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVHstore [off1+off2] {mergeSym(sym1,sym2)} base val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -5061,7 +5081,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHstore(v *Value) bool {
+@@ -5199,7 +5219,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHstore(v *Value) bool {
base := v_0.Args[0]
val := v_1
mem := v_2
@@ -403,7 +403,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVHstore)
-@@ -5181,9 +5201,11 @@ func rewriteValueRISCV64_OpRISCV64MOVHstore(v *Value) bool {
+@@ -5319,9 +5339,11 @@ func rewriteValueRISCV64_OpRISCV64MOVHstore(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -418,7 +418,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym1 := auxToSym(v.Aux)
-@@ -5192,20 +5214,20 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
+@@ -5330,20 +5352,20 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
}
off2 := auxIntToInt32(v_0.AuxInt)
sym2 := auxToSym(v_0.Aux)
@@ -444,7 +444,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym := auxToSym(v.Aux)
-@@ -5213,7 +5235,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
+@@ -5351,7 +5373,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
break
}
off2 := auxIntToInt64(v_0.AuxInt)
@@ -453,7 +453,7 @@ index f033b25bdd..9243702508 100644
mem := v_1
if !(is32Bit(int64(off1) + off2)) {
break
-@@ -5221,7 +5243,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
+@@ -5359,7 +5381,7 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
v.reset(OpRISCV64MOVHstorezero)
v.AuxInt = int32ToAuxInt(off1 + int32(off2))
v.Aux = symToAux(sym)
@@ -462,7 +462,7 @@ index f033b25bdd..9243702508 100644
return true
}
return false
-@@ -5229,8 +5251,10 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
+@@ -5367,8 +5389,10 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVWUload(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -474,7 +474,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVWUload [off1+off2] {mergeSym(sym1,sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -5242,7 +5266,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWUload(v *Value) bool {
+@@ -5380,7 +5404,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWUload(v *Value) bool {
sym2 := auxToSym(v_0.Aux)
base := v_0.Args[0]
mem := v_1
@@ -483,7 +483,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVWUload)
-@@ -5417,8 +5441,10 @@ func rewriteValueRISCV64_OpRISCV64MOVWUreg(v *Value) bool {
+@@ -5555,8 +5579,10 @@ func rewriteValueRISCV64_OpRISCV64MOVWUreg(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVWload(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -495,7 +495,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVWload [off1+off2] {mergeSym(sym1,sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -5430,7 +5456,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWload(v *Value) bool {
+@@ -5568,7 +5594,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWload(v *Value) bool {
sym2 := auxToSym(v_0.Aux)
base := v_0.Args[0]
mem := v_1
@@ -504,7 +504,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVWload)
-@@ -5741,8 +5767,10 @@ func rewriteValueRISCV64_OpRISCV64MOVWstore(v *Value) bool {
+@@ -5879,8 +5905,10 @@ func rewriteValueRISCV64_OpRISCV64MOVWstore(v *Value) bool {
v_2 := v.Args[2]
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -516,7 +516,7 @@ index f033b25bdd..9243702508 100644
// result: (MOVWstore [off1+off2] {mergeSym(sym1,sym2)} base val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
-@@ -5755,7 +5783,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWstore(v *Value) bool {
+@@ -5893,7 +5921,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWstore(v *Value) bool {
base := v_0.Args[0]
val := v_1
mem := v_2
@@ -525,7 +525,7 @@ index f033b25bdd..9243702508 100644
break
}
v.reset(OpRISCV64MOVWstore)
-@@ -5841,9 +5869,11 @@ func rewriteValueRISCV64_OpRISCV64MOVWstore(v *Value) bool {
+@@ -5979,9 +6007,11 @@ func rewriteValueRISCV64_OpRISCV64MOVWstore(v *Value) bool {
func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -540,7 +540,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym1 := auxToSym(v.Aux)
-@@ -5852,20 +5882,20 @@ func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool {
+@@ -5990,20 +6020,20 @@ func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool {
}
off2 := auxIntToInt32(v_0.AuxInt)
sym2 := auxToSym(v_0.Aux)
@@ -566,7 +566,7 @@ index f033b25bdd..9243702508 100644
for {
off1 := auxIntToInt32(v.AuxInt)
sym := auxToSym(v.Aux)
-@@ -5873,7 +5903,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool {
+@@ -6011,7 +6041,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool {
break
}
off2 := auxIntToInt64(v_0.AuxInt)
@@ -575,7 +575,7 @@ index f033b25bdd..9243702508 100644
mem := v_1
if !(is32Bit(int64(off1) + off2)) {
break
-@@ -5881,7 +5911,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool {
+@@ -6019,7 +6049,7 @@ func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool {
v.reset(OpRISCV64MOVWstorezero)
v.AuxInt = int32ToAuxInt(off1 + int32(off2))
v.Aux = symToAux(sym)
@@ -584,6 +584,3 @@ index f033b25bdd..9243702508 100644
return true
}
return false
---
-2.48.1.windows.1
-