From 2050f57141a01a3ab91d96b67f9bcb51820e7857 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 24 Apr 2015 13:41:57 -0400 Subject: [PATCH] runtime: change unused argument in fat write barriers from pointer to scalar MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The argument is unused, only present for alignment of the following argument. The compiler today always passes a zero but I'd rather not write anything there during the call sequence, so mark it as a scalar so the garbage collector won't look at it. As expected, no significant performance change. name old new delta BenchmarkBinaryTree17 17.9s × (0.99,1.00) 17.9s × (0.99,1.01) ~ BenchmarkFannkuch11 4.35s × (1.00,1.00) 4.35s × (1.00,1.00) ~ BenchmarkFmtFprintfEmpty 120ns × (0.94,1.05) 120ns × (0.93,1.06) ~ BenchmarkFmtFprintfString 477ns × (1.00,1.00) 479ns × (0.99,1.00) ~ BenchmarkFmtFprintfInt 450ns × (0.99,1.01) 452ns × (0.99,1.02) ~ BenchmarkFmtFprintfIntInt 765ns × (0.99,1.01) 766ns × (0.99,1.01) ~ BenchmarkFmtFprintfPrefixedInt 569ns × (0.99,1.01) 576ns × (0.98,1.01) ~ BenchmarkFmtFprintfFloat 728ns × (1.00,1.00) 730ns × (1.00,1.01) ~ BenchmarkFmtManyArgs 2.82µs × (0.99,1.01) 2.84µs × (0.99,1.00) ~ BenchmarkGobDecode 39.1ms × (0.99,1.01) 39.3ms × (0.98,1.01) ~ BenchmarkGobEncode 39.4ms × (0.99,1.01) 39.5ms × (0.99,1.01) ~ BenchmarkGzip 661ms × (0.99,1.01) 663ms × (1.00,1.01) ~ BenchmarkGunzip 143ms × (1.00,1.00) 143ms × (1.00,1.00) ~ BenchmarkHTTPClientServer 133µs × (0.99,1.01) 132µs × (0.99,1.01) ~ BenchmarkJSONEncode 57.3ms × (0.99,1.04) 57.4ms × (0.99,1.01) ~ BenchmarkJSONDecode 139ms × (0.99,1.00) 139ms × (0.99,1.00) ~ BenchmarkMandelbrot200 6.02ms × (1.00,1.00) 6.03ms × (1.00,1.00) ~ BenchmarkGoParse 9.72ms × (0.92,1.11) 10.31ms × (0.89,1.14) ~ BenchmarkRegexpMatchEasy0_32 209ns × (1.00,1.01) 209ns × (1.00,1.00) ~ BenchmarkRegexpMatchEasy0_1K 592ns × (0.99,1.00) 591ns × (0.99,1.00) ~ BenchmarkRegexpMatchEasy1_32 183ns × (0.98,1.01) 184ns × (0.99,1.02) ~ BenchmarkRegexpMatchEasy1_1K 1.01µs × (1.00,1.01) 1.01µs × (1.00,1.00) ~ BenchmarkRegexpMatchMedium_32 330ns × (1.00,1.00) 330ns × (1.00,1.00) ~ BenchmarkRegexpMatchMedium_1K 92.4µs × (1.00,1.00) 92.6µs × (1.00,1.00) ~ BenchmarkRegexpMatchHard_32 4.77µs × (0.95,1.01) 4.80µs × (0.95,1.00) ~ BenchmarkRegexpMatchHard_1K 136µs × (1.00,1.00) 136µs × (1.00,1.00) ~ BenchmarkRevcomp 906ms × (0.99,1.05) 900ms × (0.99,1.04) ~ BenchmarkTemplate 171ms × (0.99,1.01) 172ms × (1.00,1.00) ~ BenchmarkTimeParse 638ns × (1.00,1.00) 637ns × (1.00,1.00) ~ BenchmarkTimeFormat 745ns × (0.99,1.02) 744ns × (1.00,1.01) ~ Change-Id: I0aeac5dc7adfd75e2223e3aabfedc7818d339f9b Reviewed-on: https://go-review.googlesource.com/9320 Reviewed-by: Austin Clements --- src/cmd/internal/gc/builtin.go | 50 +++++++++++++------------- src/cmd/internal/gc/builtin/runtime.go | 50 +++++++++++++------------- src/cmd/internal/gc/walk.go | 2 +- src/runtime/wbfat.go | 50 +++++++++++++------------- src/runtime/wbfat_gen.go | 2 +- 5 files changed, 77 insertions(+), 77 deletions(-) diff --git a/src/cmd/internal/gc/builtin.go b/src/cmd/internal/gc/builtin.go index 13ee7d7289..6cf3a89671 100644 --- a/src/cmd/internal/gc/builtin.go +++ b/src/cmd/internal/gc/builtin.go @@ -91,31 +91,31 @@ const runtimeimport = "" + "func @\"\".writebarrierstring (@\"\".dst·1 *any, @\"\".src·2 any)\n" + "func @\"\".writebarrierslice (@\"\".dst·1 *any, @\"\".src·2 any)\n" + "func @\"\".writebarrieriface (@\"\".dst·1 *any, @\"\".src·2 any)\n" + - "func @\"\".writebarrierfat01 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat10 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat11 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat001 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat010 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat011 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat100 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat101 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat110 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat111 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat0001 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat0010 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat0011 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat0100 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat0101 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat0110 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat0111 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1000 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1001 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1010 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1011 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1100 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1101 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1110 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + - "func @\"\".writebarrierfat1111 (@\"\".dst·1 *any, _ *byte, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat01 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat10 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat11 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat001 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat010 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat011 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat100 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat101 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat110 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat111 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat0001 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat0010 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat0011 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat0100 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat0101 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat0110 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat0111 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1000 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1001 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1010 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1011 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1100 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1101 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1110 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + + "func @\"\".writebarrierfat1111 (@\"\".dst·1 *any, _ uintptr, @\"\".src·3 any)\n" + "func @\"\".typedmemmove (@\"\".typ·1 *byte, @\"\".dst·2 *any, @\"\".src·3 *any)\n" + "func @\"\".typedslicecopy (@\"\".typ·2 *byte, @\"\".dst·3 any, @\"\".src·4 any) (? int)\n" + "func @\"\".selectnbsend (@\"\".chanType·2 *byte, @\"\".hchan·3 chan<- any, @\"\".elem·4 *any) (? bool)\n" + diff --git a/src/cmd/internal/gc/builtin/runtime.go b/src/cmd/internal/gc/builtin/runtime.go index 0cf1fb2894..ec769e1e99 100644 --- a/src/cmd/internal/gc/builtin/runtime.go +++ b/src/cmd/internal/gc/builtin/runtime.go @@ -118,31 +118,31 @@ func writebarrieriface(dst *any, src any) // which is the maximum alignment on NaCl amd64p32 // (and possibly on 32-bit systems if we start 64-bit aligning uint64s). // The bitmap in the name tells which words being copied are pointers. -func writebarrierfat01(dst *any, _ *byte, src any) -func writebarrierfat10(dst *any, _ *byte, src any) -func writebarrierfat11(dst *any, _ *byte, src any) -func writebarrierfat001(dst *any, _ *byte, src any) -func writebarrierfat010(dst *any, _ *byte, src any) -func writebarrierfat011(dst *any, _ *byte, src any) -func writebarrierfat100(dst *any, _ *byte, src any) -func writebarrierfat101(dst *any, _ *byte, src any) -func writebarrierfat110(dst *any, _ *byte, src any) -func writebarrierfat111(dst *any, _ *byte, src any) -func writebarrierfat0001(dst *any, _ *byte, src any) -func writebarrierfat0010(dst *any, _ *byte, src any) -func writebarrierfat0011(dst *any, _ *byte, src any) -func writebarrierfat0100(dst *any, _ *byte, src any) -func writebarrierfat0101(dst *any, _ *byte, src any) -func writebarrierfat0110(dst *any, _ *byte, src any) -func writebarrierfat0111(dst *any, _ *byte, src any) -func writebarrierfat1000(dst *any, _ *byte, src any) -func writebarrierfat1001(dst *any, _ *byte, src any) -func writebarrierfat1010(dst *any, _ *byte, src any) -func writebarrierfat1011(dst *any, _ *byte, src any) -func writebarrierfat1100(dst *any, _ *byte, src any) -func writebarrierfat1101(dst *any, _ *byte, src any) -func writebarrierfat1110(dst *any, _ *byte, src any) -func writebarrierfat1111(dst *any, _ *byte, src any) +func writebarrierfat01(dst *any, _ uintptr, src any) +func writebarrierfat10(dst *any, _ uintptr, src any) +func writebarrierfat11(dst *any, _ uintptr, src any) +func writebarrierfat001(dst *any, _ uintptr, src any) +func writebarrierfat010(dst *any, _ uintptr, src any) +func writebarrierfat011(dst *any, _ uintptr, src any) +func writebarrierfat100(dst *any, _ uintptr, src any) +func writebarrierfat101(dst *any, _ uintptr, src any) +func writebarrierfat110(dst *any, _ uintptr, src any) +func writebarrierfat111(dst *any, _ uintptr, src any) +func writebarrierfat0001(dst *any, _ uintptr, src any) +func writebarrierfat0010(dst *any, _ uintptr, src any) +func writebarrierfat0011(dst *any, _ uintptr, src any) +func writebarrierfat0100(dst *any, _ uintptr, src any) +func writebarrierfat0101(dst *any, _ uintptr, src any) +func writebarrierfat0110(dst *any, _ uintptr, src any) +func writebarrierfat0111(dst *any, _ uintptr, src any) +func writebarrierfat1000(dst *any, _ uintptr, src any) +func writebarrierfat1001(dst *any, _ uintptr, src any) +func writebarrierfat1010(dst *any, _ uintptr, src any) +func writebarrierfat1011(dst *any, _ uintptr, src any) +func writebarrierfat1100(dst *any, _ uintptr, src any) +func writebarrierfat1101(dst *any, _ uintptr, src any) +func writebarrierfat1110(dst *any, _ uintptr, src any) +func writebarrierfat1111(dst *any, _ uintptr, src any) func typedmemmove(typ *byte, dst *any, src *any) func typedslicecopy(typ *byte, dst any, src any) int diff --git a/src/cmd/internal/gc/walk.go b/src/cmd/internal/gc/walk.go index 79a303855a..01319a771f 100644 --- a/src/cmd/internal/gc/walk.go +++ b/src/cmd/internal/gc/walk.go @@ -2265,7 +2265,7 @@ func applywritebarrier(n *Node, init **NodeList) *Node { name = fmt.Sprintf("writebarrierfat%d%d%d%d", bvget(applywritebarrier_bv, PtrBit), bvget(applywritebarrier_bv, obj.BitsPerPointer+PtrBit), bvget(applywritebarrier_bv, 2*obj.BitsPerPointer+PtrBit), bvget(applywritebarrier_bv, 3*obj.BitsPerPointer+PtrBit)) } - n = mkcall1(writebarrierfn(name, t, n.Right.Type), nil, init, l, nodnil(), n.Right) + n = mkcall1(writebarrierfn(name, t, n.Right.Type), nil, init, l, Nodintconst(0), n.Right) } else { r := n.Right for r.Op == OCONVNOP { diff --git a/src/runtime/wbfat.go b/src/runtime/wbfat.go index 75c58b26bd..8fe2cefd8d 100644 --- a/src/runtime/wbfat.go +++ b/src/runtime/wbfat.go @@ -3,74 +3,74 @@ package runtime //go:nosplit -func writebarrierfat01(dst *[2]uintptr, _ *byte, src [2]uintptr) { +func writebarrierfat01(dst *[2]uintptr, _ uintptr, src [2]uintptr) { dst[0] = src[0] writebarrierptr(&dst[1], src[1]) } //go:nosplit -func writebarrierfat10(dst *[2]uintptr, _ *byte, src [2]uintptr) { +func writebarrierfat10(dst *[2]uintptr, _ uintptr, src [2]uintptr) { writebarrierptr(&dst[0], src[0]) dst[1] = src[1] } //go:nosplit -func writebarrierfat11(dst *[2]uintptr, _ *byte, src [2]uintptr) { +func writebarrierfat11(dst *[2]uintptr, _ uintptr, src [2]uintptr) { writebarrierptr(&dst[0], src[0]) writebarrierptr(&dst[1], src[1]) } //go:nosplit -func writebarrierfat001(dst *[3]uintptr, _ *byte, src [3]uintptr) { +func writebarrierfat001(dst *[3]uintptr, _ uintptr, src [3]uintptr) { dst[0] = src[0] dst[1] = src[1] writebarrierptr(&dst[2], src[2]) } //go:nosplit -func writebarrierfat010(dst *[3]uintptr, _ *byte, src [3]uintptr) { +func writebarrierfat010(dst *[3]uintptr, _ uintptr, src [3]uintptr) { dst[0] = src[0] writebarrierptr(&dst[1], src[1]) dst[2] = src[2] } //go:nosplit -func writebarrierfat011(dst *[3]uintptr, _ *byte, src [3]uintptr) { +func writebarrierfat011(dst *[3]uintptr, _ uintptr, src [3]uintptr) { dst[0] = src[0] writebarrierptr(&dst[1], src[1]) writebarrierptr(&dst[2], src[2]) } //go:nosplit -func writebarrierfat100(dst *[3]uintptr, _ *byte, src [3]uintptr) { +func writebarrierfat100(dst *[3]uintptr, _ uintptr, src [3]uintptr) { writebarrierptr(&dst[0], src[0]) dst[1] = src[1] dst[2] = src[2] } //go:nosplit -func writebarrierfat101(dst *[3]uintptr, _ *byte, src [3]uintptr) { +func writebarrierfat101(dst *[3]uintptr, _ uintptr, src [3]uintptr) { writebarrierptr(&dst[0], src[0]) dst[1] = src[1] writebarrierptr(&dst[2], src[2]) } //go:nosplit -func writebarrierfat110(dst *[3]uintptr, _ *byte, src [3]uintptr) { +func writebarrierfat110(dst *[3]uintptr, _ uintptr, src [3]uintptr) { writebarrierptr(&dst[0], src[0]) writebarrierptr(&dst[1], src[1]) dst[2] = src[2] } //go:nosplit -func writebarrierfat111(dst *[3]uintptr, _ *byte, src [3]uintptr) { +func writebarrierfat111(dst *[3]uintptr, _ uintptr, src [3]uintptr) { writebarrierptr(&dst[0], src[0]) writebarrierptr(&dst[1], src[1]) writebarrierptr(&dst[2], src[2]) } //go:nosplit -func writebarrierfat0001(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat0001(dst *[4]uintptr, _ uintptr, src [4]uintptr) { dst[0] = src[0] dst[1] = src[1] dst[2] = src[2] @@ -78,7 +78,7 @@ func writebarrierfat0001(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat0010(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat0010(dst *[4]uintptr, _ uintptr, src [4]uintptr) { dst[0] = src[0] dst[1] = src[1] writebarrierptr(&dst[2], src[2]) @@ -86,7 +86,7 @@ func writebarrierfat0010(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat0011(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat0011(dst *[4]uintptr, _ uintptr, src [4]uintptr) { dst[0] = src[0] dst[1] = src[1] writebarrierptr(&dst[2], src[2]) @@ -94,7 +94,7 @@ func writebarrierfat0011(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat0100(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat0100(dst *[4]uintptr, _ uintptr, src [4]uintptr) { dst[0] = src[0] writebarrierptr(&dst[1], src[1]) dst[2] = src[2] @@ -102,7 +102,7 @@ func writebarrierfat0100(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat0101(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat0101(dst *[4]uintptr, _ uintptr, src [4]uintptr) { dst[0] = src[0] writebarrierptr(&dst[1], src[1]) dst[2] = src[2] @@ -110,7 +110,7 @@ func writebarrierfat0101(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat0110(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat0110(dst *[4]uintptr, _ uintptr, src [4]uintptr) { dst[0] = src[0] writebarrierptr(&dst[1], src[1]) writebarrierptr(&dst[2], src[2]) @@ -118,7 +118,7 @@ func writebarrierfat0110(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat0111(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat0111(dst *[4]uintptr, _ uintptr, src [4]uintptr) { dst[0] = src[0] writebarrierptr(&dst[1], src[1]) writebarrierptr(&dst[2], src[2]) @@ -126,7 +126,7 @@ func writebarrierfat0111(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1000(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1000(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) dst[1] = src[1] dst[2] = src[2] @@ -134,7 +134,7 @@ func writebarrierfat1000(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1001(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1001(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) dst[1] = src[1] dst[2] = src[2] @@ -142,7 +142,7 @@ func writebarrierfat1001(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1010(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1010(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) dst[1] = src[1] writebarrierptr(&dst[2], src[2]) @@ -150,7 +150,7 @@ func writebarrierfat1010(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1011(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1011(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) dst[1] = src[1] writebarrierptr(&dst[2], src[2]) @@ -158,7 +158,7 @@ func writebarrierfat1011(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1100(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1100(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) writebarrierptr(&dst[1], src[1]) dst[2] = src[2] @@ -166,7 +166,7 @@ func writebarrierfat1100(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1101(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1101(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) writebarrierptr(&dst[1], src[1]) dst[2] = src[2] @@ -174,7 +174,7 @@ func writebarrierfat1101(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1110(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1110(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) writebarrierptr(&dst[1], src[1]) writebarrierptr(&dst[2], src[2]) @@ -182,7 +182,7 @@ func writebarrierfat1110(dst *[4]uintptr, _ *byte, src [4]uintptr) { } //go:nosplit -func writebarrierfat1111(dst *[4]uintptr, _ *byte, src [4]uintptr) { +func writebarrierfat1111(dst *[4]uintptr, _ uintptr, src [4]uintptr) { writebarrierptr(&dst[0], src[0]) writebarrierptr(&dst[1], src[1]) writebarrierptr(&dst[2], src[2]) diff --git a/src/runtime/wbfat_gen.go b/src/runtime/wbfat_gen.go index 78d5b6271f..9482cfe5e6 100644 --- a/src/runtime/wbfat_gen.go +++ b/src/runtime/wbfat_gen.go @@ -27,7 +27,7 @@ func main() { for i := uint(2); i <= 4; i++ { for j := 1; j < 1<