Russ Cox
30dd191171
gc: O(1) string comparison when lengths differ
...
R=ken2
CC=golang-dev
https://golang.org/cl/2331045
2010-10-06 09:53:12 -04:00
Russ Cox
9686ab2da9
8g: use FCHS, not FMUL, for minus float
...
Fixes #1052 .
R=ken2
CC=golang-dev
https://golang.org/cl/2055041
2010-08-27 14:02:00 -04:00
Russ Cox
9bac9d23d3
gc: index bounds tests and fixes
...
move constant index checking to front end
x[2:1] is a compile-time error now too
R=ken2
CC=golang-dev
https://golang.org/cl/1848056
2010-08-03 00:26:02 -07:00
Ken Thompson
e5d748a333
8g compiler missing call to splitclean().
...
fixes #887 .
R=rsc
CC=golang-dev
https://golang.org/cl/1675050
2010-06-28 12:19:12 -07:00
Russ Cox
6a060200cc
8g: out of register bug
...
Fixes #806 .
R=ken2
CC=golang-dev
https://golang.org/cl/1281042
2010-05-24 17:22:51 -07:00
Russ Cox
9fc9246bf3
gc: bug281 - bad overlap in stack copy
...
Fixes #807 .
R=ken2
CC=golang-dev
https://golang.org/cl/1283041
2010-05-24 16:54:24 -07:00
Russ Cox
c66b49845c
8g: bug272
...
Fixes #589 .
R=ken2
CC=golang-dev
https://golang.org/cl/1043042
2010-04-30 14:04:34 -07:00
Russ Cox
f75d0d224f
runtime: turn run time errors checks into panics
...
R=ken2, r
CC=golang-dev
https://golang.org/cl/871042
2010-04-01 22:31:27 -07:00
Russ Cox
16e6df9807
fix 386 a[i] = cmplx(r, j)
...
R=ken2
CC=golang-dev
https://golang.org/cl/384043
2010-03-10 13:06:35 -08:00
Ken Thompson
f229c8b546
identical complex implementation
...
for 6g and 8g. can also be used
for 5g. 5g is still a stub.
R=rsc
CC=golang-dev
https://golang.org/cl/362041
2010-03-09 12:49:24 -08:00
Ken Thompson
426099f42e
6g complex type usable
...
8g and 5g have stubs to ignore complex
R=rsc
CC=golang-dev
https://golang.org/cl/257042
2010-03-05 20:16:04 -08:00
Russ Cox
ac499ed7a5
gc: better compilation of floating point +=
...
R=ken2
CC=golang-dev
https://golang.org/cl/255042
2010-03-05 15:35:09 -08:00
Russ Cox
bc6878331a
8g: fix out of register bug in byte(x) code
...
R=ken2
CC=golang-dev
https://golang.org/cl/223070
2010-02-26 14:21:52 -08:00
Russ Cox
ba50599e46
8g: make a[byte(x)] truncate x
...
R=ken2
CC=golang-dev
https://golang.org/cl/223069
2010-02-26 13:15:29 -08:00
Russ Cox
fb5506600f
8g: respect ullman numbers in float comparison
...
Fixes #602 .
R=ken2
CC=golang-dev
https://golang.org/cl/212045
2010-02-17 15:28:45 -08:00
Russ Cox
69c0edd59b
8g: discard tempalloc/tempfree experiment
...
in favor of tempname.
allows optimizer to do more.
unfortunately, optimizer seems to be broken; disable it.
R=ken2
https://golang.org/cl/163091
2009-12-02 18:31:29 -08:00
Russ Cox
fdb030d86f
6g etc: groundwork for eliminating redundant bounds checks.
...
drop check in range over array.
drop check in [256]array indexed by byte.
R=ken2
https://golang.org/cl/163088
2009-12-02 17:30:07 -08:00
Evan Shaw
1664e81585
8g: Match sgen definition to declaration
...
R=rsc
CC=golang-dev
https://golang.org/cl/164069
2009-12-01 21:42:35 -08:00
Russ Cox
dc30800c28
8g: call throwindex for array out of bounds
...
R=ken2
https://golang.org/cl/160043
2009-11-23 12:58:28 -08:00
Russ Cox
652f55672d
x[lo:] - gc and runtime.
...
* add runtime sliceslice1 for x[lo:]
* remove runtime arraytoslice, rewriting &arr into arr[0:len(arr)].
* port cgen_inline into 8g, 5g.
* use native memmove in maps
R=ken2
https://golang.org/cl/157106
2009-11-20 09:11:46 -08:00
Russ Cox
ef46a9ddac
gc: fix up floating point NaN comparisons
...
Fixes #167 .
R=ken2
https://golang.org/cl/155062
2009-11-15 17:24:14 -08:00
Russ Cox
9dd2e1e30f
nil pointer checks in 8g.
...
fix nil pointer check in 6g.
was dereferencing after the ADD;
dereference before instead.
R=ken@golang.org
CC=iant
http://go/go-review/1016022
2009-11-01 21:04:16 -08:00
Russ Cox
b71c484c91
fix 386 build - register allocation and shift bug
...
R=ken
OCL=35140
CL=35142
2009-09-30 08:56:01 -07:00
Russ Cox
a95ee61aea
ideal bools and related fixes
...
R=ken
OCL=34859
CL=34865
2009-09-21 15:45:55 -07:00
Russ Cox
1a0860b93f
make 5g, 8g build again by disabling init code.
...
R=ken
OCL=34604
CL=34604
2009-09-14 14:27:19 -07:00
Russ Cox
89f69bb3be
gc: handle iface == nil in back end
...
R=ken
OCL=33778
CL=33781
2009-08-24 15:20:37 -07:00
Russ Cox
8a45917f3d
len and cap on chans
...
R=ken
OCL=33599
CL=33599
2009-08-20 11:12:04 -07:00
Russ Cox
b754b4348f
delete some code from walkexpr that is now
...
handled by typecheck.
second switch is gone
move floating point minus into back end
R=ken
OCL=32558
CL=32558
2009-07-30 18:56:44 -07:00
Russ Cox
ff3a73b407
typechecking checkpoint.
...
started to move typechecking to another file.
can build entire tree still, but lots of work
is duplicated. much to clean up.
R=ken
OCL=32536
CL=32543
2009-07-30 16:53:08 -07:00
Russ Cox
189153ed13
fix error that gcc thinks is a warning
...
R=ken
OCL=32264
CL=32386
2009-07-28 17:02:05 -07:00
Russ Cox
30228a3bc6
avoid register computing len(x), cap(x)
...
for slice or string x.
R=ken
OCL=32249
CL=32249
2009-07-27 15:55:27 -07:00
Russ Cox
7472f4c951
bug168 (dsymonds) + fix
...
R=ken
OCL=31399
CL=31399
2009-07-09 12:08:50 -07:00
Russ Cox
6da41be2d3
fix float32 comparison. was doing l op l instead of l op r.
...
R=ken
OCL=31190
CL=31190
2009-07-06 09:05:33 -07:00
Russ Cox
0aef57e37f
fix a 6g crash after type errors.
...
do not bother warning about marks left
on stack after syntax errors.
leave OCONV nodes in tree to avoid type errors
arising from multiple walks.
R=ken
OCL=30639
CL=30662
2009-06-23 15:30:59 -07:00
Russ Cox
3c06bd6201
an 8g checkpoint.
...
needs cleanup, optimizer,
but all.bash works.
R=ken
OCL=29974
CL=30000
2009-06-06 19:28:16 -07:00
Russ Cox
9a9ffb2b0e
more 8g progress.
...
likely to go back to registers for most temporaries.
most tests in lib pass. these fail:
datafmt
fmt
go/scanner
log
reflect
strconv
template
R=ken
OCL=29896
CL=29898
2009-06-04 15:24:01 -07:00
Russ Cox
ab3d40b271
trivial cut and paste: move 64-bit simulation into cgen64.c
...
R=ken
OCL=29812
CL=29812
2009-06-02 23:26:02 -07:00
Russ Cox
a00bfb5b49
8g:
...
* floating point -> integer conversions.
x86 defines that overflow/underflow
results in 1<<15, 1<<31, 1<<63 for
int16, int32, int64. when building the
unsigned conversions out of the native signed
ones, 8g turns overflow/underflow into zero.
the spec does not say what should happen.
* many tiny bug fixes. can run a large number
of files from go/test now, and can fmt.Printf.
* struggling with byte register allocation
and float32 computation.
R=ken
OCL=29642
CL=29811
2009-06-02 23:25:17 -07:00
Russ Cox
6e1762c06e
64-bit integer arithmetic.
...
passes ridiculous test from CL 29569.
R=ken
OCL=29571
CL=29573
2009-05-29 00:13:09 -07:00
Russ Cox
3aa006b8cd
better 64-bit handling in 8g.
...
fewer moves, fewer stupid LEALs.
powser1 runs (with evaln commented out).
beginnings of floating point.
R=ken
OCL=29540
CL=29543
2009-05-28 15:48:47 -07:00
Russ Cox
a8e4ed6a3d
8g: 64-bit arithmetic and assorted bug fixes;
...
can run 64-bit sieve and powser.
interfaces are limping along.
next hurdle is floating point.
R=ken
OCL=29418
CL=29423
2009-05-26 21:07:26 -07:00
Russ Cox
5ecd010beb
more 8g.
...
test/turing.go runs if you move the big array off its stack.
finally remembered to g4 add cgen.c gsubr.c
R=ken
OCL=29408
CL=29408
2009-05-26 16:23:54 -07:00