aboutsummaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2019-10-10 16:16:54 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2019-10-10 22:38:38 +0000
commit03ef105daeff4fef1fd66dbffb8e17d1f779b9ea (patch)
tree8ff0605ba1cd68688784f5825c47fac28803c47d /src/reflect
parent6dc740f0928e4c1b43697d8e2d4dbc9804911e79 (diff)
downloadgo-03ef105daeff4fef1fd66dbffb8e17d1f779b9ea.tar.gz
go-03ef105daeff4fef1fd66dbffb8e17d1f779b9ea.zip
all: remove nacl (part 3, more amd64p32)
Part 1: CL 199499 (GOOS nacl) Part 2: CL 200077 (amd64p32 files, toolchain) Part 3: stuff that arguably should've been part of Part 2, but I forgot one of my grep patterns when splitting the original CL up into two parts. This one might also have interesting stuff to resurrect for any future x32 ABI support. Updates #30439 Change-Id: I2b4143374a253a003666f3c69e776b7e456bdb9c Reviewed-on: https://go-review.googlesource.com/c/go/+/200318 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/all_test.go3
-rw-r--r--src/reflect/type.go7
-rw-r--r--src/reflect/value.go14
3 files changed, 2 insertions, 22 deletions
diff --git a/src/reflect/all_test.go b/src/reflect/all_test.go
index 1fbc8dd61c..b6010f9265 100644
--- a/src/reflect/all_test.go
+++ b/src/reflect/all_test.go
@@ -6104,9 +6104,6 @@ var funcLayoutTests []funcLayoutTest
func init() {
var argAlign uintptr = PtrSize
- if runtime.GOARCH == "amd64p32" {
- argAlign = 2 * PtrSize
- }
roundup := func(x uintptr, a uintptr) uintptr {
return (x + a - 1) / a * a
}
diff --git a/src/reflect/type.go b/src/reflect/type.go
index 495679b52e..231b38b898 100644
--- a/src/reflect/type.go
+++ b/src/reflect/type.go
@@ -16,7 +16,6 @@
package reflect
import (
- "runtime"
"strconv"
"sync"
"unicode"
@@ -3015,9 +3014,6 @@ func funcLayout(t *funcType, rcvr *rtype) (frametype *rtype, argSize, retOffset
offset += arg.size
}
argSize = offset
- if runtime.GOARCH == "amd64p32" {
- offset += -offset & (8 - 1)
- }
offset += -offset & (ptrSize - 1)
retOffset = offset
for _, res := range t.out() {
@@ -3033,9 +3029,6 @@ func funcLayout(t *funcType, rcvr *rtype) (frametype *rtype, argSize, retOffset
size: offset,
ptrdata: uintptr(ptrmap.n) * ptrSize,
}
- if runtime.GOARCH == "amd64p32" {
- x.align = 8
- }
if ptrmap.n > 0 {
x.gcdata = &ptrmap.data[0]
}
diff --git a/src/reflect/value.go b/src/reflect/value.go
index 7fec09962c..ffcb204cda 100644
--- a/src/reflect/value.go
+++ b/src/reflect/value.go
@@ -555,9 +555,6 @@ func callReflect(ctxt *makeFuncImpl, frame unsafe.Pointer, retValid *bool) {
// Copy results back into argument frame.
if numOut > 0 {
off += -off & (ptrSize - 1)
- if runtime.GOARCH == "amd64p32" {
- off = align(off, 8)
- }
for i, typ := range ftyp.out() {
v := out[i]
if v.typ == nil {
@@ -697,8 +694,7 @@ func callMethod(ctxt *methodValue, frame unsafe.Pointer, retValid *bool) {
// Copy in receiver and rest of args.
storeRcvr(rcvr, scratch)
- // Align the first arg. Only on amd64p32 the alignment can be
- // larger than ptrSize.
+ // Align the first arg. The alignment can't be larger than ptrSize.
argOffset := uintptr(ptrSize)
if len(t.in()) > 0 {
argOffset = align(argOffset, uintptr(t.in()[0].align))
@@ -713,17 +709,11 @@ func callMethod(ctxt *methodValue, frame unsafe.Pointer, retValid *bool) {
// and then copies the results back into scratch.
call(frametype, fn, scratch, uint32(frametype.size), uint32(retOffset))
- // Copy return values. On amd64p32, the beginning of return values
- // is 64-bit aligned, so the caller's frame layout (which doesn't have
- // a receiver) is different from the layout of the fn call, which has
- // a receiver.
+ // Copy return values.
// Ignore any changes to args and just copy return values.
// Avoid constructing out-of-bounds pointers if there are no return values.
if frametype.size-retOffset > 0 {
callerRetOffset := retOffset - argOffset
- if runtime.GOARCH == "amd64p32" {
- callerRetOffset = align(argSize-argOffset, 8)
- }
// This copies to the stack. Write barriers are not needed.
memmove(add(frame, callerRetOffset, "frametype.size > retOffset"),
add(scratch, retOffset, "frametype.size > retOffset"),