Commit Graph

15298 Commits

Author SHA1 Message Date
Shenghou Ma c229cec23a [dev.power64] runtime: implemnt runtime.switchtoM and runtime.onM
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/129860043
2014-08-12 21:55:43 -04:00
Shenghou Ma ca7f2c796f [dev.power64] reflect: add assembly stubs
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/126090043
2014-08-12 21:43:31 -04:00
Russ Cox 53b78c84bc [dev.power64] cmd/9a: use new flag parser
Copy main from 6a. Fixes various things, but the
main thing is the use of the new flag parser.
The go command expects to be able to use -trimpath
and not have it be interpreted as -t rimpath.

LGTM=minux
R=minux
CC=golang-codereviews
https://golang.org/cl/126100043
2014-08-12 21:41:42 -04:00
Russ Cox 27627fd8ed [dev.power64] hash/crc32: use portable castagnoli on power64
LGTM=minux
R=minux
CC=golang-codereviews
https://golang.org/cl/128110044
2014-08-12 21:38:50 -04:00
Shenghou Ma 3e4dfdad34 [dev.power64] cmd/9g, cmd/gc, cmd/ld: fix build.
1. disable nonsplit stack overflow check
2. disable OLROT recognition
3. emit correct instructions for adding offsets to an address

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123310043
2014-08-12 21:22:27 -04:00
Shenghou Ma 860f941e7f [dev.power64] cmd/9c: fix endian issue in integer to floating point conversion
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/129850043
2014-08-12 20:58:05 -04:00
Shenghou Ma 560cf4c6de [dev.power64] cmd/9l: remove MAXIO (fix build)
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/124270043
2014-08-12 20:57:54 -04:00
Shenghou Ma f4529adabe [dev.power64] liblink: support stack split, long conditional branches
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123300043
2014-08-12 20:57:45 -04:00
Shenghou Ma 5e4989cf0a [dev.power64] cmd/gc: handle thechar=='9', disable nilopt() for now
LGTM=rsc
R=rsc, iant, dave
CC=golang-codereviews
https://golang.org/cl/121630043
2014-08-12 20:57:32 -04:00
Shenghou Ma b1c9a8bce3 [dev.power64] cmd/9g: implement zerorange
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/121540043
2014-08-12 19:51:01 -04:00
Shenghou Ma 56949d33d8 [dev.power64] sync/atomic: implement for asm_power64x.s
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/124220043
2014-08-12 19:50:51 -04:00
Shenghou Ma e7e668d717 [dev.power64] math: implement Abs, add power64/power64le forwarding assembly functions
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/119670043
2014-08-12 19:50:40 -04:00
Shenghou Ma ab29d5b4ae [dev.power64] runtime: add defs3_linux.go to generate defs_linux_power64{,le}.h
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/128070043
2014-08-12 19:50:30 -04:00
Shenghou Ma 91447ab502 [dev.power64] runtime: auto-generated headers for linux/power64 and linux/power64le
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123280043
2014-08-12 19:50:18 -04:00
Shenghou Ma fb57459b48 [dev.power64] runtime: move noasm_arm.goc to noasm.goc
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/121590043
2014-08-12 19:50:03 -04:00
Shenghou Ma 2abf3c5583 [dev.power64] runtime: changes to the portable part for linux/power64 and linux/power64le
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/121580044
2014-08-12 19:49:52 -04:00
Shenghou Ma f2d43ec7cd [dev.power64] os/signal: support for linux/power64 and linux/power64le
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/121580043
2014-08-12 19:49:41 -04:00
Shenghou Ma c74a4d4add [dev.power64] syscall: script changes for power64
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123290043
2014-08-12 19:49:31 -04:00
Shenghou Ma e0aaf2b2db [dev.power64] syscall: auto-generated source for linux/power64 and linux/power64le.
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/127170043
2014-08-12 19:49:18 -04:00
Shenghou Ma f3e2023764 [dev.power64] syscall: the manually written parts for linux/power64 and linux/power64le
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/129800043
2014-08-12 19:49:03 -04:00
Shenghou Ma 5f691cfaf1 [dev.power64] runtime: manually written parts for linux/power64 and linux/power64le, checkpoint
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/122430043
2014-08-12 19:48:49 -04:00
Shenghou Ma 4928b2074b [dev.power64] cmd/9g: first check point
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123170043
2014-08-11 23:44:55 -04:00
Shenghou Ma 552d8b79dd [dev.power64] cmd/9l/9.out.h: introduce NFREG, REGG, REGRT1 and REGRT2
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/125990043
2014-08-11 23:44:38 -04:00
Shenghou Ma 1a1d450712 [dev.power64] cmd/9l: introduce the power64 linker, based loosely on 5l
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123940043
2014-08-11 23:44:23 -04:00
Shenghou Ma 6e692b35bb [dev.power64] cmd/cgo: add {ppc,power}64{,le} to pointer and int size maps
LGTM=rsc
R=rsc, iant, dave
CC=golang-codereviews
https://golang.org/cl/119640043
2014-08-11 23:43:51 -04:00
Shenghou Ma 059d089fc0 [dev.power64] debug/elf: add power64 support along with relocation test
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/125910043
2014-08-11 23:43:34 -04:00
Shenghou Ma 5cb7da7547 [dev.power64] syscall: remove duplicated constants
Without this CL, simply running mkall.sh for Linux will generate duplicated constants
for termios. I verified that after this CL, mkall.sh will generate almost identical
z* files for linux/amd64.

LGTM=rsc
R=rsc, iant, r
CC=golang-codereviews
https://golang.org/cl/124990043
2014-08-11 23:43:15 -04:00
Shenghou Ma 8881e032d4 [dev.power64] runtime: ignore rt_sigaction error if it's for SIGRTMAX.
Workaround a qemu linux user space emulation bug.
ref: http://git.qemu.org/?p=qemu.git;a=blob;f=linux-user/signal.c;h=1141054be2170128d6f7a340b41484b49a255936;hb=HEAD#l82

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/124900043
2014-08-11 23:32:33 -04:00
Shenghou Ma 26c9bbf736 [dev.power64] runtime: rename traceback_arm.c to traceback_lr.c
Also make it more portable by not hardcoding pointer sizes.

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/127780043
2014-08-11 23:32:08 -04:00
Shenghou Ma 40d7a6d582 [dev.power64] cmd/ld: add MAXIO back in lib.h
It was accidentally removed.

LGTM=dave
R=rsc, iant, dave
CC=golang-codereviews
https://golang.org/cl/124880043
2014-08-11 23:31:28 -04:00
Shenghou Ma 05d72029db [dev.power64] cmd/9c: add Makefile
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/121370043
2014-08-07 18:41:37 -04:00
Shenghou Ma 5b0ac5f76e [dev.power64] liblink: handle $i64. symbols, add debug output for -S -v, show rel addend in hex for RISC arches
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/127770043
2014-08-07 18:41:09 -04:00
Shenghou Ma 6e02e1cfc2 [dev.power64] cmd/ld: update for power64
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/121380043
2014-08-07 18:36:42 -04:00
Shenghou Ma 95e8a3a1da [dev.power64] cmd/9c: fix switch bug
The cmd/cc bundled with 9c has additional code compared to our cmd/cc, and
without those code, 9c couldn't handle switch statement where the expression
is not just a simple int32 or int64 variable (e.g. g->status or int8 variable).

All credit goes to rsc.

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/125840043
2014-08-07 18:34:25 -04:00
Shenghou Ma 4be75c8f26 [dev.power64] include/link.h, liblink: convert 9l functions to liblink
This replaces CL 122990043.

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123010043
2014-08-07 15:13:25 -04:00
Shenghou Ma 7c33e5078f [dev.power64] cmd/9l: update header files for liblink
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/128720044
2014-08-07 14:56:59 -04:00
Shenghou Ma bcf7f61f83 [dev.power64] cmd/9a: use liblink, add required additional instructions.
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/127730043
2014-08-07 14:49:41 -04:00
Shenghou Ma 83f6aadf16 [dev.power64] cmd/9c: use liblink, use Go argument passing rules, support both endians
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/126800043
2014-08-07 14:36:34 -04:00
Shenghou Ma 2358603f0c [dev.power64] liblink: move span and asmout related function from obj9.c to asm9.c
To reduce delta for the upcoming liblink CL.
Just code movement, no semantic changes.

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/124830043
2014-08-07 12:02:36 -04:00
Shenghou Ma c689eb9b21 [dev.power64] cmd/dist: power64/power64le support.
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/117670045
2014-08-06 23:59:14 -04:00
Shenghou Ma 7582ecc996 [dev.power64] cmd/9g: add doc.go to prevent build failures.
After CL 117670045, cmd/dist will expect to have a cmd/9g directory.

LGTM=rsc, dave
R=rsc, iant, dave
CC=golang-codereviews
https://golang.org/cl/126780043
2014-08-06 23:43:36 -04:00
Shenghou Ma 117b1d4685 [dev.power64] cmd/9a, cmd/9c, cmd/9l, liblink: import code from Vita Nuova.
No modifications other than adding copyright header to each file, and
concatenating several cmd/9l files together to form the liblink files.

LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/123840043
2014-08-06 23:41:29 -04:00
Shenghou Ma 9512e470e1 [dev.power64] cmd/dist: recognize power64 and power64le as GOHOSTARCH
LGTM=rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/125760043
2014-08-06 16:16:28 -04:00
Russ Cox ffb07c0e6c [dev.power64] all: merge default, for codereview update
LGTM=minux
R=minux
CC=golang-codereviews
https://golang.org/cl/124820043
2014-08-06 16:15:22 -04:00
Russ Cox 7aa3031eba cmd/gc: make liveness ~10x faster
1) The arrayindexof lookup function is O(n). Replace with O(1) lookups.

2) The checkptxt function is O(n²) and is purely for debugging.
Only run when the debugging flags are turned on.

3) Iterating over sparse bitmaps can be done faster word by word.
Introduce and use bvnext for that.

Run times before and after, on my 2.5 GHz Core i5 MacBook Pro.

x.go       9.48  0.84  issue 8259

x100.go    0.01  0.01  issue 8354
x1000.go   0.10  0.10
x2000.go   0.62  0.19
x3000.go   1.33  0.34
x4000.go   2.29  0.49
x5000.go   3.89  0.67
x6000.go   5.00  0.90
x7000.go   6.70  1.13
x8000.go   9.44  1.38
x9000.go  11.23  1.87
x10000.go 13.78  2.09

Fixes #8259.
Fixes #8354.

LGTM=iant, r
R=golang-codereviews, iant, r
CC=golang-codereviews
https://golang.org/cl/125720043
2014-08-06 15:46:33 -04:00
Russ Cox 245ed93c20 all: merge default, for codereview fixes
LGTM=minux
R=minux
CC=golang-codereviews
https://golang.org/cl/124810043
2014-08-06 15:36:24 -04:00
Russ Cox bd69b4479a cmd/dist: generate anames9.c
LGTM=minux
R=minux
CC=golang-codereviews
https://golang.org/cl/120690043
2014-08-06 15:12:08 -04:00
Derek Parker c0ccf6f314 debug/dwarf: fix Reader panic on DW_TAG_unspecified_type
The linker currently produces the DWARF 3 DW_TAG_unspecified_type tag, however the Reader in debug/dwarf will panic whenever that tag is encountered.

Fixes #8437.

LGTM=rsc
R=golang-codereviews, bradfitz, iant, rsc
CC=golang-codereviews
https://golang.org/cl/117280043
2014-08-06 12:11:37 -07:00
Russ Cox ccd880f290 cmd/dist, go/build: add power64, power64le to known GOARCH lists
LGTM=dave, minux, aram
R=minux, dave, bradfitz, aram
CC=golang-codereviews
https://golang.org/cl/119470043
2014-08-06 14:58:17 -04:00
Russ Cox e5e547c71f runtime: turn off 'unexpected return pc' print on arm traceback
It can happen legitimately if a profiling signal arrives at just the wrong moment.
It's harmless.

Fixes #8153.

LGTM=minux
R=golang-codereviews, minux
CC=golang-codereviews, iant, r
https://golang.org/cl/118670043
2014-08-06 14:50:09 -04:00