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
f1f970ad21
minor cleanup, 64-bit /= and %= on 32-bit
...
R=ken
OCL=29806
CL=29808
2009-06-02 23:21:58 -07:00
Russ Cox
e81d97ea84
clean up gmove:
...
* conversions all in one place.
* no separate load, store phases;
direct memory addressing when possible
(this is the x86 after all!).
avoids extra registers, extra MOVQs.
* fixes int32 -> uint64 bug
(was zero-extending)
R=ken
OCL=29482
CL=29484
2009-05-27 23:55:14 -07:00
Ken Thompson
4238b18344
1. check for dups in complex literals
...
structtype{a:1, a:2}
maptypetype{"xx":1, "xx":2}
arraytypetype{5:1, 5:2}
2. bug in registerization concerning
alias of a struct and one of its elements
3. code optimization of struct.field
(which exposed bug in 2)
R=r
OCL=29315
CL=29315
2009-05-23 15:34:29 -07:00
Ken Thompson
62231e91d0
static initialization with DATA statements
...
structs and arrays are done
slices and maps are yet to do
R=r
OCL=28977
CL=28977
2009-05-17 19:16:16 -07:00
Ken Thompson
52b0f77bf9
static initialization
...
structure set up - no change yet
R=r
OCL=28966
CL=28966
2009-05-16 13:29:08 -07:00
Russ Cox
b3533dfd72
6g:
...
new type equality restrictions
better handling of renamed packages
"sys" is no longer available to programs
R=ken
OCL=28553
CL=28578
2009-05-08 15:40:31 -07:00
Russ Cox
d4fa253837
eqtype(t1, t2, 0) => eqtype(t1, t2)
...
R=ken
OCL=28559
CL=28562
2009-05-08 14:40:38 -07:00
Ken Thompson
a5a878986c
more code fiddling
...
R=r
OCL=28201
CL=28201
2009-05-03 15:17:03 -07:00
Ken Thompson
91ce0ef8f3
bug 139
...
R=r
OCL=27987
CL=27987
2009-04-28 13:52:56 -07:00
Ken Thompson
f9854978e2
bug 142
...
order of evaluation && and ||
R=r
OCL=27294
CL=27294
2009-04-09 19:11:24 -07:00
Ken Thompson
3657061550
change representation of strings
...
R=r
OCL=27293
CL=27293
2009-04-09 18:16:21 -07:00
Russ Cox
e5ba266e93
delete dregs: inarggen, genpanic, regret
...
R=ken
OCL=26916
CL=26918
2009-03-30 17:15:54 -07:00
Russ Cox
8f194bf5ff
make 6g constants behave as ken proposes. (i hope.)
...
various bug fixes and tests involving constants.
test/const1.go is the major new test case.
R=ken
OCL=26216
CL=26224
2009-03-12 19:04:38 -07:00
Russ Cox
0970c46863
closures - 6g support
...
R=ken
OCL=24501
CL=24566
2009-02-06 13:47:10 -08:00
Russ Cox
f61639d4e2
6g return struct fix:
...
make t->width of funarg struct be width of struct.
emit MOVSL for 4-byte copy.
R=ken
OCL=24108
CL=24111
2009-02-02 13:41:38 -08:00
Russ Cox
7b6bdfb735
two uses of uninitialized memory,
...
picked up by valgrind.
fixes test/escape.go on linux.
R=ken
OCL=23971
CL=23971
2009-01-30 15:11:46 -08:00
Russ Cox
4a43198390
update compiler to new func rules
...
R=ken
OCL=23958
CL=23961
2009-01-30 14:39:42 -08:00
Russ Cox
391425ae55
if take address of local, move to heap.
...
heuristic to not print bogus strings.
fix one error message format.
R=ken
OCL=23849
CL=23851
2009-01-29 17:38:58 -08:00
Russ Cox
8fb60768c3
in 6g -r (the rsc flag),
...
rewrite heap pointer moves as xchg.
R=ken
OCL=22665
CL=22665
2009-01-13 13:46:09 -08:00
Russ Cox
ae167bf08f
clean up automatic indirect, delete some dead code.
...
R=ken
OCL=22454
CL=22457
2009-01-09 15:21:41 -08:00
Russ Cox
a91af04c06
6g cleanup suggested by ken.
...
remove TPTR wrapper around TMAP, TCHAN, TSTRING.
R=ken
OCL=22406
CL=22409
2009-01-09 11:13:39 -08:00
Russ Cox
1b7881adb4
fix:
...
type T []int
var a []int
var t = T(a)
R=ken
OCL=22341
CL=22341
2009-01-08 15:01:22 -08:00
Russ Cox
d8c7980514
comment sudoaddable;
...
remove unused second parameter.
R=ken
OCL=22126
CL=22126
2009-01-06 11:23:58 -08:00
Russ Cox
2d259c817a
add comments and delete dead code
...
R=ken
OCL=22078
CL=22080
2009-01-05 17:32:23 -08:00
Ken Thompson
a91a0a6a7a
array compare (except = != nil) are illegal
...
R=r
OCL=21637
CL=21637
2008-12-19 14:26:52 -08:00
Ken Thompson
6fa74e0973
portability bug
...
cant assign to closed array
R=r
OCL=21634
CL=21634
2008-12-19 14:04:25 -08:00
Ken Thompson
c9954c63a8
bug in [const]
...
R=r
OCL=21569
CL=21569
2008-12-18 22:01:46 -08:00
Ken Thompson
dcc064fe94
cmp [] to nil
...
R=r
OCL=21567
CL=21567
2008-12-18 21:33:45 -08:00
Ken Thompson
4026500d18
arrays
...
R=r
OCL=21564
CL=21564
2008-12-18 20:06:28 -08:00
Ken Thompson
8f53bc0612
new convention, direction bit is
...
always left cleared. changed
compiler generated memcpy and
memset to assume CLD.
R=r
OCL=21215
CL=21215
2008-12-15 15:07:35 -08:00
Ken Thompson
23fc0ac061
more code optimization
...
R=r
OCL=21159
CL=21159
2008-12-14 17:06:06 -08:00
Ken Thompson
719b088697
code generation
...
R=r
OCL=21146
CL=21146
2008-12-13 16:41:47 -08:00
Ken Thompson
937ac13f26
code improvement
...
R=r
OCL=21144
CL=21144
2008-12-13 13:16:14 -08:00
Ken Thompson
c8a66a98ff
small code improvement to
...
used scaled indexing
R=r
OCL=20308
CL=20310
2008-12-02 19:54:51 -08:00
Ken Thompson
8e3fe10ee3
1. retract general field names
...
2. array bounds bug
3. ... optimization bug
R=r
OCL=19927
CL=19927
2008-11-24 14:01:12 -08:00
Ken Thompson
a6182dab47
indexing optimizations and bug fix
...
R=r
OCL=19886
CL=19886
2008-11-23 17:26:49 -08:00
Ken Thompson
e081f25c3e
reg and peep
...
R=r
OCL=19871
CL=19871
2008-11-22 17:58:53 -08:00
Ken Thompson
dc78c64f23
byte multiply
...
R=r
OCL=18807
CL=18807
2008-11-07 14:20:32 -08:00
Russ Cox
74e2e087e2
change type names to go live at the name, so that
...
type T struct {
next *T
}
and
type T *struct {
next T
}
are valid without needing forward declarations.
add "type T struct" syntax for forward struct declarations.
add "type T interface" syntax, but commented out
(need to fix semicolons first)
R=ken
DELTA=452 (259 added, 115 deleted, 78 changed)
OCL=16580
CL=16584
2008-10-06 16:44:17 -07:00
Ken Thompson
8545700af8
export
...
R=r
OCL=16018
CL=16022
2008-09-26 17:41:23 -07:00
Ken Thompson
adaec0c4f4
vectors bug
...
R=r
OCL=15664
CL=15664
2008-09-22 16:58:30 -07:00
Ken Thompson
8231e94520
now method/interface code
...
R=r
OCL=15627
CL=15627
2008-09-22 12:16:19 -07:00
Ken Thompson
904d4045d3
1 got rid if static 'fn wo return' test
...
2 added dynamic calls to throw for array bounds
and 'fn wo return'
3 small optimization on index[constant]
R=r
OCL=15281
CL=15281
2008-09-12 16:48:35 -07:00
Ken Thompson
193eac7917
bugs 29, 61, 62, 74
...
fixedbugs 49 now (correctly) fails
bugs 32, 41, 68, 77 shouldnt be bugs
R=r
OCL=14842
CL=14842
2008-09-04 17:15:15 -07:00
Ken Thompson
c6130e9f1f
get rid of static/dynamic array distinction
...
R=r
OCL=14634
CL=14634
2008-08-28 15:17:37 -07:00
Ken Thompson
66a603c986
arrays
...
R=r
OCL=14603
CL=14603
2008-08-27 17:28:30 -07:00
Ken Thompson
30fd44cf9d
fix fat copy of overlapping data
...
R=r
OCL=14417
CL=14417
2008-08-21 20:49:04 -07:00
Ken Thompson
b89c538473
fixed unary ^ opcode (bug082)
...
R=r
DELTA=11 (10 added, 1 deleted, 0 changed)
OCL=14047
CL=14047
2008-08-10 14:35:02 -07:00
Ken Thompson
9c2ade358d
mp constants
...
R=r
DELTA=381 (142 added, 26 deleted, 213 changed)
OCL=14011
CL=14016
2008-08-08 17:13:31 -07:00