- 02 May, 2018 1 commit
-
-
Martin Möhrmann authored
Rename memclrrange to signify that it does not handle all types of range clears. Simplify checks to detect the range clear idiom for arrays and slices. Add tests to verify the optimization for the slice range clear idiom is being applied by the compiler. Change-Id: I5c3b7c9a479699ebdb4c407fde692f30f377860c Reviewed-on: https://go-review.googlesource.com/110477 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 01 May, 2018 30 commits
-
-
Matthew Dempsky authored
flagiexport currently controls not just whether to use the indexed export format when writing out package data, but also how symbol import logic works. In particular, it enables lazy loading logic that currently doesn't work with packages imported via bimport. We could change the import logic to base decisions on the export data format used by the packages that individual symbols were loaded from, but since we expect to deprecate and remove bimport anyway and there's no need for mixing bimport and iimport, it's simpler to just disallow mixing them. Change-Id: I02dbac45062e9dd85a1a647ee46bfa0efbb67e9d Reviewed-on: https://go-review.googlesource.com/110715Reviewed-by: Robert Griesemer <gri@golang.org>
-
Agniva De Sarker authored
In ast/ast.go, added an Incomplete field inside CompositeLit to denote that fields are missing. In ast/filter.go, added a new function to go through the expression list checking for KeyValue expressions inside composite literals. Filter out entries with an unexported key. In printer/nodes.go, checking if the Incomplete field is set, and accordingly print the filtered message with proper indentation. Copying over similar functionality in doc/exports.go so as to maintain parity with ast/filter.go and such that godoc can show the output correctly. Fixes #22803 Change-Id: I57a3b999521933e32411a18e02d0b94d2ea2e6f6 Reviewed-on: https://go-review.googlesource.com/106395 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Josh Bleecher Snyder authored
Proves IsSliceInBounds one additional time building std+cmd, at encoding/hex/hex.go:187:8. The code is: if numAvail := len(d.in) / 2; len(p) > numAvail { p = p[:numAvail] } Previously we were unable to prove that numAvail >= 0. Change-Id: Ie74e0aef809f9194c45e129ee3dae60bc3eae02f Reviewed-on: https://go-review.googlesource.com/109415 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Giovanni Bajo <rasky@develer.com>
-
Josh Bleecher Snyder authored
Also do very minor code cleanup. name old time/op new time/op delta StackCopyPtr-8 84.8ms ± 6% 82.9ms ± 5% -2.19% (p=0.000 n=95+94) StackCopy-8 68.4ms ± 5% 65.3ms ± 4% -4.54% (p=0.000 n=99+99) StackCopyNoCache-8 107ms ± 2% 105ms ± 2% -2.13% (p=0.000 n=91+95) Change-Id: I2d85ede48bffada9584d437a08a82212c0da6d00 Reviewed-on: https://go-review.googlesource.com/109001 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Eric Pauley authored
The existing implementation only considers the special ASCII case when the lower character is an upper case letter. This means that most ASCII comparisons use unicode.SimpleFold even when it is not necessary. benchmark old ns/op new ns/op delta BenchmarkEqualFold-8 450 390 -13.33% Change-Id: I735ca3c30fc0145c186d2a54f31fd39caab2c3fa Reviewed-on: https://go-review.googlesource.com/110018Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
The explanation about VARDEF/VARKILL is from when liveness analysis was performed on Progs. Now that it's performed on SSA, it should reference their corresponding SSA ops (OpVarDef/OpVarKill) instead. Change-Id: Icc4385b52768f6987cda162824b75340aee0b223 Reviewed-on: https://go-review.googlesource.com/76313Reviewed-by: Robert Griesemer <gri@golang.org>
-
Josh Bleecher Snyder authored
Triggers 21 times during make.bash. Change-Id: I7efb34200439256151304bb66cd309913f7c9c9e Reviewed-on: https://go-review.googlesource.com/110557 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Martin Möhrmann <moehrmann@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
The Uname name was never being used because it always generated a too-long string. The new test looking for zero bytes wouldn't have caught it (I thought it would've), but is still nice to have. Updates #24701 Change-Id: I2648074452609e4ad1b9736973e1b3a95eac658d Reviewed-on: https://go-review.googlesource.com/110436Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Martin Möhrmann authored
Go runtime currently only populates hwcap for ppc64 and arm64. While the interpretation of hwcap is platform specific the hwcap information is generally available on linux. Changing the runtime variable name to cpu_hwcap for cpu.hwcap makes it consistent with the general naming of runtime variables that are linked to other packages. Change-Id: I1e1f932a73ed624a219b9298faafbb6355e47ada Reviewed-on: https://go-review.googlesource.com/94757Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
R11 is only used as a temporary by a very small set of instructions (DIV, MOD, MULH and extended MVC/XC instructions). By marking these instructions as clobbering R11 we can allocate R11 in the general case. Change-Id: I0d4ffe80e57c164d42a5ea5ef6308756a5b0f742 Reviewed-on: https://go-review.googlesource.com/110255 Run-TryBot: Michael Munday <mike.munday@ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Martin Möhrmann authored
The strconv shifts table is 320 bytes (amd64) and is present in many binaries since integer formatting is very common. Instead of using a precalculated table with shift amounts use a bounded bits.TrailingZeros to determine the shift amount to format numbers in a base that is a power of 2. amd64: name old time/op new time/op delta AppendUint 379ns ± 1% 286ns ± 2% -24.62% (p=0.000 n=20+19) Change-Id: Ib94d9b033321b41e975868943c7fcd9428c5111e Reviewed-on: https://go-review.googlesource.com/110478Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
erifan01 authored
The current code is not optimized for cases where the length of the substring to be searched is between 9 bytes and 32 bytes. This CL optimizes the situations. Benchmark: name old time/op new time/op delta pkg:strings goos:linux goarch:arm64 IndexHard1-8 1.06ms ± 0% 1.06ms ± 0% -0.44% (p=0.000 n=7+8) IndexHard2-8 1.25ms ± 1% 1.26ms ± 2% ~ (p=0.328 n=8+8) IndexHard3-8 2.85ms ± 1% 1.18ms ± 1% -58.59% (p=0.000 n=8+8) IndexHard4-8 2.90ms ± 1% 2.87ms ± 1% -0.96% (p=0.021 n=8+8) pkg:bytes goos:linux goarch:arm64 IndexByte/4M-8 726124.200000ns +- 6% 560021.400000ns +-20% -22.88% (p=0.008 n=5+5) IndexRune/4M-8 928768.600000ns +- 0% 793144.600000ns +- 6% -14.60% (p=0.008 n=5+5) Change-Id: Ieebeb784ae69b2a0642ea96e9486a1d120923568 Reviewed-on: https://go-review.googlesource.com/109895Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Martin Möhrmann authored
This makes math/bits not have any explicit imports even when compiling tests and thereby avoids import cycles when dependencies of testing want to import math/bits. Change-Id: I95eccae2f5c4310e9b18124abfa85212dfbd9daa Reviewed-on: https://go-review.googlesource.com/110479 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Updates #6163 Fixes #24808 Change-Id: I4f5c686ebf60f72f71f566199ee3e946076202bb Reviewed-on: https://go-review.googlesource.com/110439 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alexey Palazhchenko authored
Change-Id: I573172384eaf32daaca5021a9a1874bf0f3d340f Reviewed-on: https://go-review.googlesource.com/110575Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
The recent improvements to the prove pass make it possible to provide bounds hints to the compiler in some bvec routines. This speeds up the compilation of the code in name old time/op new time/op delta Pkg 7.93s ± 4% 7.69s ± 3% -2.98% (p=0.000 n=29+26) While we're here, clean up some C-isms. Updates #13554 Updates #20393 Change-Id: I47a0ec68543a9fc95c5359c3f37813fb529cb4f0 Reviewed-on: https://go-review.googlesource.com/110560 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Josh Bleecher Snyder authored
This is the scanstack analog of CL 104737, which made a similar change for copystack. name old time/op new time/op delta ScanStack-8 41.1ms ± 6% 38.9ms ± 5% -5.52% (p=0.000 n=50+48) Change-Id: I7427151dea2895ed3934f8a0f61d96b568019217 Reviewed-on: https://go-review.googlesource.com/105536 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Josh Bleecher Snyder authored
There are many possible stack scanning benchmarks, but this one is at least a start. cpuprofiling shows about 75% of CPU in func scanstack. Change-Id: I906b0493966f2165c1920636c4e057d16d6447e0 Reviewed-on: https://go-review.googlesource.com/105535 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Daniel Martí authored
Pick the low-hanging fruit, which are the gotos that don't go very far and labels that aren't used often. All of them have easy replacements with breaks and returns. One slightly tricky rewrite is defaultlitreuse. We cannot use a defer func to reset lineno, because one of its return paths does not reset lineno, and thus broke toolstash -cmp. Passes toolstash -cmp on std cmd. Change-Id: Id1c0967868d69bb073addc7c5c3017ca91ff966f Reviewed-on: https://go-review.googlesource.com/110063 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Daniel Martí authored
It was skipping dirs starting with ".", but it was missing the "_" prefix and the "testdata" name. From "go help packages": Directory and file names that begin with "." or "_" are ignored by the go tool, as are directories named "testdata". Before the change: $ go doc z # using src/cmd/go/testdata/testvendor/src/q/z package z // import "." After the fix, it falls back to the current directory, as expected when a single argument isn't found as a package in $GOPATH. TestMain needs a small adjustment to keep the tests working, as now their use of cmd/doc/testdata would normally not work. This is the second try for this fix; the first time around, we included cmd/doc/testdata to the dirs list by sending it to the channel via a goroutine. However, that can end up in a send to a closed channel, if GOROOT is a very small directory tree or missing. To avoid that possibility, include the extra directory by pre-populating the paths list, before the walking of GOROOT and GOPATH actually starts. Fixes #24462. Change-Id: I3b95b6431578e0d5cbb8342f305debc4ccb5f656 Reviewed-on: https://go-review.googlesource.com/109216 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Elias Naur <elias.naur@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Daniel Martí authored
Passes toolstash -cmp on std cmd. Change-Id: I17b9a816752af55b064b8e46146b8f5a878fa560 Reviewed-on: https://go-review.googlesource.com/109075 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Keith Randall authored
Update #17490 Change-Id: Ia0bb0ba10dc0bbb299290a60b8228275d55125d7 Reviewed-on: https://go-review.googlesource.com/110438 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Keith Randall authored
Moving mmap, munmap, madvise, usleep. Also introduce __error function to get at libc's errno variable. Change-Id: Ic47ac1d9eb71c64ba2668ce304644dd7e5bdfb5a Reviewed-on: https://go-review.googlesource.com/110437 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Matthew Dempsky authored
Make selectgo return recvOK as a result parameter instead. Change-Id: Iffd436371d360bf666b76d4d7503e7c3037a9f1d Reviewed-on: https://go-review.googlesource.com/37935Reviewed-by: Austin Clements <austin@google.com>
-
Matthew Dempsky authored
Registration now looks like: var cases [4]runtime.scases var order [8]uint16 cases[0].kind = caseSend cases[0].c = c1 cases[0].elem = &v1 if raceenabled || msanenabled { selectsetpc(&cases[0]) } cases[1].kind = caseRecv cases[1].c = c2 cases[1].elem = &v2 if raceenabled || msanenabled { selectsetpc(&cases[1]) } ... Change-Id: Ib9bcf426a4797fe4bfd8152ca9e6e08e39a70b48 Reviewed-on: https://go-review.googlesource.com/37934 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Matthew Dempsky authored
Now the registration phase looks like: var cases [4]runtime.scases var order [8]uint16 selectsend(&cases[0], c1, &v1) selectrecv(&cases[1], c2, &v2, nil) selectrecv(&cases[2], c3, &v3, &ok) selectdefault(&cases[3]) chosen := selectgo(&cases[0], &order[0], 4) Primarily, this is just preparation for having the compiler open-code selectsend, selectrecv, and selectdefault. As a minor benefit, order can now be layed out separately on the stack in the pointer-free segment, so it won't take up space in the function's stack pointer maps. Change-Id: I5552ba594201efd31fcb40084da20b42ea569a45 Reviewed-on: https://go-review.googlesource.com/37933 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Hiroshi Ioka authored
Fixes #25143 Change-Id: Ide654fe70651fda827cdeeaaa73d2a1f8aefd7e7 Reviewed-on: https://go-review.googlesource.com/110159Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Elias Naur authored
Convert raise from raw syscalls to using the system pthread library. As a bonus, raise will now target the current thread instead of the process. Updates #17490 Change-Id: I2e44f2000bf870e99a5b4dc5ff5e0799fba91bde Reviewed-on: https://go-review.googlesource.com/110475 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Keith Randall authored
Now we no longer need to mess with TLS on Darwin 386/amd64, we always rely on the pthread library to set it up. We now just use one entry in the TLS for the G. Return from mstart to let the pthread library clean up the OS thread. Change-Id: Iccf58049d545515d9b1d090b161f420e40ffd244 Reviewed-on: https://go-review.googlesource.com/110215Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Brian Kessler authored
Currently, there is no check for a negative modulus in ModInverse. Negative moduli are passed internally to GCD, which returns 0 for negative arguments. Mod is symmetric with respect to negative moduli, so the calculation can be done by just negating the modulus before passing the arguments to GCD. Fixes #24949 Change-Id: Ifd1e64c9b2343f0489c04ab65504e73a623378c7 Reviewed-on: https://go-review.googlesource.com/108115Reviewed-by: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org>
-
- 30 Apr, 2018 9 commits
-
-
Brian Kessler authored
Currently, the behavior of z.ModInverse(g, n) is undefined when g and n are not relatively prime. In that case, no ModInverse exists which can be easily checked during the computation of the ModInverse. Because the ModInverse does not indicate whether the inverse exists, there are reimplementations of a "checked" ModInverse in crypto/rsa. This change removes the undefined behavior. If the ModInverse does not exist, the receiver z is unchanged and the return value is nil. This matches the behavior of ModSqrt for the case where the square root does not exist. name old time/op new time/op delta ModInverse-4 2.40µs ± 4% 2.22µs ± 0% -7.74% (p=0.016 n=5+4) name old alloc/op new alloc/op delta ModInverse-4 1.36kB ± 0% 1.17kB ± 0% -14.12% (p=0.008 n=5+5) name old allocs/op new allocs/op delta ModInverse-4 10.0 ± 0% 9.0 ± 0% -10.00% (p=0.008 n=5+5) Fixes #24922 Change-Id: If7f9d491858450bdb00f1e317152f02493c9c8a8 Reviewed-on: https://go-review.googlesource.com/108996 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Elias Naur authored
CL 93658 moved stack trace printing inside a systemstack call to sidestep complexity in case the runtime is in a inconsistent state. Unfortunately, debuggers generating backtraces for a Go panic will be confused and come up with a technical correct but useless stack. This CL moves just the crash performing - typically a SIGABRT signal - outside the systemstack call to improve backtraces. Unfortunately, the crash function now needs to be marked nosplit and that triggers the no split stackoverflow check. To work around that, split fatalpanic in two: fatalthrow for runtime.throw and fatalpanic for runtime.gopanic. Only Go panics really needs crashes on the right stack and there is enough stack for gopanic. Example program: package main import "runtime/debug" func main() { debug.SetTraceback("crash") crash() } func crash() { panic("panic!") } Before: (lldb) bt * thread #1, name = 'simple', stop reason = signal SIGABRT * frame #0: 0x000000000044ffe4 simple`runtime.raise at <autogenerated>:1 frame #1: 0x0000000000438cfb simple`runtime.dieFromSignal(sig=<unavailable>) at signal_unix.go:424 frame #2: 0x0000000000438ec9 simple`runtime.crash at signal_unix.go:525 frame #3: 0x00000000004268f5 simple`runtime.dopanic_m(gp=<unavailable>, pc=<unavailable>, sp=<unavailable>) at panic.go:758 frame #4: 0x000000000044bead simple`runtime.fatalpanic.func1 at panic.go:657 frame #5: 0x000000000044d066 simple`runtime.systemstack at <autogenerated>:1 frame #6: 0x000000000042a980 simple at proc.go:1094 frame #7: 0x0000000000438ec9 simple`runtime.crash at signal_unix.go:525 frame #8: 0x00000000004268f5 simple`runtime.dopanic_m(gp=<unavailable>, pc=<unavailable>, sp=<unavailable>) at panic.go:758 frame #9: 0x000000000044bead simple`runtime.fatalpanic.func1 at panic.go:657 frame #10: 0x000000000044d066 simple`runtime.systemstack at <autogenerated>:1 frame #11: 0x000000000042a980 simple at proc.go:1094 frame #12: 0x00000000004268f5 simple`runtime.dopanic_m(gp=<unavailable>, pc=<unavailable>, sp=<unavailable>) at panic.go:758 frame #13: 0x000000000044bead simple`runtime.fatalpanic.func1 at panic.go:657 frame #14: 0x000000000044d066 simple`runtime.systemstack at <autogenerated>:1 frame #15: 0x000000000042a980 simple at proc.go:1094 frame #16: 0x000000000044bead simple`runtime.fatalpanic.func1 at panic.go:657 frame #17: 0x000000000044d066 simple`runtime.systemstack at <autogenerated>:1 After: (lldb) bt * thread #7, stop reason = signal SIGABRT * frame #0: 0x0000000000450024 simple`runtime.raise at <autogenerated>:1 frame #1: 0x0000000000438d1b simple`runtime.dieFromSignal(sig=<unavailable>) at signal_unix.go:424 frame #2: 0x0000000000438ee9 simple`runtime.crash at signal_unix.go:525 frame #3: 0x00000000004264e3 simple`runtime.fatalpanic(msgs=<unavailable>) at panic.go:664 frame #4: 0x0000000000425f1b simple`runtime.gopanic(e=<unavailable>) at panic.go:537 frame #5: 0x0000000000470c62 simple`main.crash at simple.go:11 frame #6: 0x0000000000470c00 simple`main.main at simple.go:6 frame #7: 0x0000000000427be7 simple`runtime.main at proc.go:198 frame #8: 0x000000000044ef91 simple`runtime.goexit at <autogenerated>:1 Updates #22716 Change-Id: Ib5fa35c13662c1dac2f1eac8b59c4a5824b98d92 Reviewed-on: https://go-review.googlesource.com/110065 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Balaram Makam authored
This change provides VZIP1, VZIP2, VTBL instruction for supporting ChaCha20Poly1305 implementation later. Change-Id: Ife7c87b8ab1a6495a444478eeb9d906ae4c5ffa9 Reviewed-on: https://go-review.googlesource.com/110015Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Richard Musiol authored
The general policy for the current state of js/wasm is that it only has to support tests that are also supported by nacl. The test nilptr3.go makes assumptions about which nil checks can be removed. Since WebAssembly does not signal on reading a null pointer, all nil checks have to be explicit. Updates #18892 Change-Id: I06a687860b8d22ae26b1c391499c0f5183e4c485 Reviewed-on: https://go-review.googlesource.com/110096Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Austin Clements authored
When deciding whether to flush the constant pool, the distance check in checkpool can fail to account for padding inserted before the next instruction by nacl. For example, see this failure: https://go-review.googlesource.com/c/go/+/109350/2#message-07085b591227824bb1d646a7192cbfa7e0b97066 Here, the pool should be flushed before a CALL instruction, but checkpool only considers the CALL instruction to be 4 bytes and doesn't account for the 8 extra bytes of alignment padding added before it by asmoutnacl. As a result, it flushes the pool after the CALL instruction, which is 4 bytes too late. Furthermore, there's no explanation for the rather convoluted expression used to decide if we need to emit the constant pool. This CL modifies checkpool to take the PC following the tentative instruction as an argument. The caller knows this already and this way checkpool doesn't have to guess (and get it wrong in the presence of padding). In the process, it rewrites the test to be structured and commented. Change-Id: I32a3d50ffb5a94d42be943e9bcd49036c7e9b95c Reviewed-on: https://go-review.googlesource.com/110017 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Richard Musiol authored
This commit only moves code in preparation for the following commit which adds the js/wasm architecture to the os package. There are no semantic changes in this commit. Updates #18892 Change-Id: Ia44484216f905c25395c565c34cfe6996c305ed6 Reviewed-on: https://go-review.googlesource.com/109976Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
It's also fewer system calls. Fall back to longer read only if it seems like the Uname result is truncated. Fixes #24701 Change-Id: Ib6550acede8dddaf184e8fa9de36377e17bbddab Reviewed-on: https://go-review.googlesource.com/110295Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Andrew Bonventre authored
Change-Id: I84334dfd02ad9a27b3fb6d46a6b1c015a3f03511 Reviewed-on: https://go-review.googlesource.com/110335Reviewed-by: Filippo Valsorda <filippo@golang.org>
-
Andrew Bonventre authored
Change-Id: I9699b22d3a308cda685aa684b32dcde99333df46 Reviewed-on: https://go-review.googlesource.com/110315Reviewed-by: Filippo Valsorda <filippo@golang.org>
-