An error occurred fetching the project authors.
- 23 Feb, 2015 1 commit
-
-
Russ Cox authored
Change-Id: I58e00a39cf63df07813d21453f91e68eef6a413c Reviewed-on: https://go-review.googlesource.com/5635Reviewed-by:
Rob Pike <r@golang.org>
-
- 04 Feb, 2015 1 commit
-
-
Russ Cox authored
Add Addr-checking for all Progs on input to liblink, in liblink/pass.c, including requiring use of TYPE_ADDR, not TYPE_CONST. Update compilers and assemblers to satisfy checks. Change-Id: Idac36b9f6805f0451cb541d2338992ca5eaf3963 Reviewed-on: https://go-review.googlesource.com/3801Reviewed-by:
Austin Clements <austin@google.com>
-
- 03 Feb, 2015 3 commits
-
-
Russ Cox authored
Like the TEXT/GLOBL flags, this was split between from.scale and reg, neither of which is appropriate. Change-Id: I2a16ef066a53b6edb7afb16cce108c0d1d26389c Reviewed-on: https://go-review.googlesource.com/3576Reviewed-by:
Aram Hăvărneanu <aram@mgk.ro> Reviewed-by:
Austin Clements <austin@google.com>
-
Russ Cox authored
Before, amd64 and 386 stored the flags in p->from.scale and arm and ppc64 stored the flags in p->reg. Both caused special cases in printing and in handling of the addresses. To avoid possible conflicts with the real meaning of p->from and to avoid storing a non-register value in a reg field, use from3 to hold a TYPE_CONST value giving the flags. There is still a special case for printing, because the flags are specified without a $, and normally a TYPE_CONST prints with a $. But that's much less special than what came before. This allows us to remove the textflag and settextflag methods from LinkArch. They are no longer architecture-specific. Change-Id: I931da8e1ecd92e127cd9aa44ef5a73c42e730110 Reviewed-on: https://go-review.googlesource.com/3572Reviewed-by:
Austin Clements <austin@google.com>
-
Russ Cox authored
Change-Id: I3417a8c5ddd7f405939edc9fdef086e4741495a1 Reviewed-on: https://go-review.googlesource.com/3571Reviewed-by:
Austin Clements <austin@google.com>
-
- 30 Jan, 2015 1 commit
-
-
Russ Cox authored
Change-Id: I19ed283962aa0221cf806307bde9ea0773a1bfd4 Reviewed-on: https://go-review.googlesource.com/3518Reviewed-by:
Austin Clements <austin@google.com>
-
- 29 Oct, 2014 1 commit
-
-
Russ Cox authored
I removed support for jumping between functions years ago, as part of doing the instruction layout for each function separately. Given that, it makes sense to treat labels as function-scoped. This lets each function have its own 'loop' label, for example. Makes the assembly much cleaner and removes the last reason anyone would reach for the 123(PC) form instead. Note that this is on the dev.power64 branch, but it changes all the assemblers. The change will ship in Go 1.5 (perhaps after being ported into the new assembler). Came up as part of CL 167730043. LGTM=r R=r CC=austin, dave, golang-codereviews, minux https://golang.org/cl/159670043
-
- 08 Sep, 2014 1 commit
-
-
Russ Cox authored
This CL adjusts code referring to src/pkg to refer to src. Immediately after submitting this CL, I will submit a change doing 'hg mv src/pkg/* src'. That change will be too large to review with Rietveld but will contain only the 'hg mv'. This CL will break the build. The followup 'hg mv' will fix it. For more about the move, see golang.org/s/go14nopkg. LGTM=r R=r CC=golang-codereviews https://golang.org/cl/134570043
-
- 11 Dec, 2013 1 commit
-
-
Russ Cox authored
When I renamed LAddr back to Addr (before sending the original linker CLs), I missed the .y files in my global substitute. Since the .y files are only processed when running make in one of those directories (not during all.bash), they were behind the generated files. R=golang-dev, iant CC=golang-dev https://golang.org/cl/40770044
-
- 09 Dec, 2013 1 commit
-
-
Russ Cox authored
Preparation for golang.org/s/go13linker work. This CL does not build by itself. It depends on 35740044 and 35790044 and will be submitted at the same time. R=iant CC=golang-dev https://golang.org/cl/35830043
-
- 19 Jul, 2013 1 commit
-
-
Keith Randall authored
whose argument size is unknown (C vararg functions, and assembly code without an explicit specification). We used to use 0 to mean "unknown" and 1 to mean "zero". Now we use ArgsSizeUnknown (0x80000000) to mean "unknown". R=golang-dev, rsc CC=golang-dev https://golang.org/cl/11590043
-
- 18 Jul, 2013 1 commit
-
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/11397043
-
- 16 Jul, 2013 1 commit
-
-
Russ Cox authored
In cmd/5a, also add support for argument size in TEXT instruction. R=ken2 CC=golang-dev https://golang.org/cl/11357044
-
- 27 Mar, 2013 1 commit
-
-
Ian Lance Taylor authored
This CL was written by rsc. I just tweaked 8l. This CL adds TLS relocation to the ELF .o file we write during external linking, so that the host linker (gcc) can decide the final location of m and g. Similar relocations are not necessary on OS X because we use an alternate program start-time mechanism to acquire thread-local storage. Similar relocations are not necessary on ARM or Plan 9 or Windows because external linking mode is not yet supported on those systems. On almost all ELF systems, the references we use are like %fs:-0x4 or %gs:-0x4, which we write in 6a/8a as -0x4(FS) or -0x4(GS). On Linux/ELF, however, Xen's lack of support for this mode forced us long ago to use a two-instruction sequence: first we load %gs:0x0 into a register r, and then we use -0x4(r). (The ELF program loader arranges that %gs:0x0 contains a regular pointer to that same memory location.) In order to relocate those -0x4(r) references, the linker must know where they are. This CL adds the equivalent notation -0x4(r)(GS*1) for this purpose: it assembles to the same encoding as -0x4(r) but the (GS*1) indicates to the linker that this is one of those thread-local references that needs relocation. Thanks to Elias Naur for reminding me about this missing piece and also for writing the test. R=r CC=golang-dev https://golang.org/cl/7891047
-
- 07 Mar, 2013 1 commit
-
-
Keith Randall authored
Instructions for use in AES hashing. See CL#7543043 R=rsc CC=golang-dev https://golang.org/cl/7548043
-
- 06 Dec, 2012 1 commit
-
-
Rémy Oudompheng authored
R=rsc, golang-dev CC=golang-dev https://golang.org/cl/6884046
-
- 07 Oct, 2012 1 commit
-
-
Russ Cox authored
R=ken CC=golang-dev https://golang.org/cl/6614063
-
- 29 May, 2012 1 commit
-
-
Russ Cox authored
The old code generated for a bounds check was CMP JLT ok CALL panicindex ok: ... The new code is (once the linker finishes with it): CMP JGE panic ... panic: CALL panicindex which moves the calls out of line, putting more useful code in each cache line. This matters especially in tight loops, such as in Fannkuch. The benefit is more modest elsewhere, but real. From test/bench/go1, amd64: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 6096092000 6088808000 -0.12% BenchmarkFannkuch11 6151404000 4020463000 -34.64% BenchmarkGobDecode 28990050 28894630 -0.33% BenchmarkGobEncode 12406310 12136730 -2.17% BenchmarkGzip 179923 179903 -0.01% BenchmarkGunzip 11219 11130 -0.79% BenchmarkJSONEncode 86429350 86515900 +0.10% BenchmarkJSONDecode 334593800 315728400 -5.64% BenchmarkRevcomp25M 1219763000 1180767000 -3.20% BenchmarkTemplate 492947600 483646800 -1.89% And 386: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 6354902000 6243000000 -1.76% BenchmarkFannkuch11 8043769000 7326965000 -8.91% BenchmarkGobDecode 19010800 18941230 -0.37% BenchmarkGobEncode 14077500 13792460 -2.02% BenchmarkGzip 194087 193619 -0.24% BenchmarkGunzip 12495 12457 -0.30% BenchmarkJSONEncode 125636400 125451400 -0.15% BenchmarkJSONDecode 696648600 685032800 -1.67% BenchmarkRevcomp25M 2058088000 2052545000 -0.27% BenchmarkTemplate 602140000 589876800 -2.04% To implement this, two new instruction forms: JLT target // same as always JLT $0, target // branch expected not taken JLT $1, target // branch expected taken The linker could also emit the prediction prefixes, but it does not: expected taken branches are reversed so that the expected case is not taken (as in example above), and the default expectaton for such a jump is not taken already. R=golang-dev, gri, r, dave CC=golang-dev https://golang.org/cl/6248049
-
- 11 Nov, 2011 1 commit
-
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/5373074
-
- 29 Aug, 2011 1 commit
-
-
Yuval Pavel Zholkover authored
8l: fix handling CALL $(constant) code generated by 8a. 8a,8l: add indirect call instruction: CALL *data(SB). R=rsc, iant CC=golang-dev https://golang.org/cl/4817054
-
- 27 Jun, 2011 1 commit
-
-
Lucio De Re authored
8a/a.h: . Removed <u.h> and <libc.h> includes as they work better in "a.y". . Made definition of EOF conditional as it's defined in the Plan 9 header files, but not elsewhere. 8a/a.y: . Added <u.h> and <libc.h> because <stdio.h> in Plan 9 needs them. Sequence <u.h>, <stdio.h>, <libc.h> recommended by RSC. 8a/lex.c: . Added <u.h> and <libc.h> as now needed by "a.h". . Dropped <ctype.h>. cc/lexbody: . exit() -> exits(). . Dropped unwanted incrementation. cc/macbody: . Adjusted a few format specifications. R=rsc CC=golang-dev https://golang.org/cl/4644047
-
- 07 Oct, 2010 1 commit
-
-
Luuk van Dijk authored
R=rsc, ken2, r, rsc1 CC=golang-dev https://golang.org/cl/2297042
-
- 13 Nov, 2009 1 commit
-
-
Russ Cox authored
<stdio.h>, which we weren't even #including R=r https://golang.org/cl/154108
-
- 21 Sep, 2009 1 commit
-
-
Russ Cox authored
R=ken OCL=34845 CL=34845
-
- 20 Mar, 2009 1 commit
-
-
Russ Cox authored
add "extern register" support to 8c. extern register means allocate in the FS-relative segment. make 8l generate segmented stack checks. R=ken OCL=26600 CL=26606
-
- 06 Jan, 2009 2 commits
- 13 Jul, 2008 1 commit
-
-
Ken Thompson authored
automatically generated in 6g and 6c, manually set in 6a. format is TEXT a(SB),, $a-b where a is auto size and b is parameter size SVN=126946
-
- 27 Jun, 2008 1 commit
-
-
Ken Thompson authored
SVN=125151
-
- 04 Jun, 2008 1 commit
-
-
Rob Pike authored
SVN=121164
-