summaryrefslogtreecommitdiff
path: root/src/cmd/6l/pass.c
AgeCommit message (Collapse)AuthorFilesLines
2013-03-04Imported Upstream version 1.1~hg20130304upstream/1.1_hg20130304Michael Stapelberg1-14/+77
2012-04-06Imported Upstream version 1upstream/1Ondřej Surý1-9/+16
2011-09-13Imported Upstream version 60upstream/60Ondřej Surý1-0/+722
2011-09-13Imported Upstream version 60Ondřej Surý1-725/+0
2011-04-26Imported Upstream version 2011.04.13upstream/2011.04.13Ondřej Surý1-2/+7
2011-04-20Imported Upstream version 2011.03.07.1upstream/2011.03.07.1Ondřej Surý1-24/+6
2011-02-14Imported Upstream version 2011-02-01.1upstream/2011-02-01.1Ondřej Surý1-0/+38
2011-01-17Imported Upstream version 2011.01.12upstream/2011.01.12Ondřej Surý1-783/+329
2010-04-275l, 6l, 8l, runtime: make -s binaries workRuss Cox1-2/+22
5l, 6l, 8l: change ELF header so that strip doesn't destroy binary Fixes issue 261. R=iant, r CC=golang-dev http://codereview.appspot.com/994044
2010-01-19cleanup toward eliminating package global name spaceRuss Cox1-11/+11
* switch to real dot (.) instead of center dot (·) everywhere in object files. before it was half and half depending on where in the name it appeared. * in 6c/6a/etc identifiers, · can still be used but turns into . immediately. * in export metadata, replace package identifiers with quoted strings (still package names, not paths). R=ken2, r CC=golang-dev http://codereview.appspot.com/190076
2009-10-15rename sys functions to runtime,Russ Cox1-11/+11
because they are in package runtime. another step to enforcing package boundaries. R=r DELTA=732 (114 added, 93 deleted, 525 changed) OCL=35811 CL=35824
2009-10-12stack overflow debugging and fix.Russ Cox1-6/+44
* in 6l, -K already meant check for stack underflow. add -KK to mean double-check stack overflows even in nosplit functions. * comment out print locks; they deadlock too easily but are still useful to put back for special occasions. * let runcgo assembly switch to scheduler stack without involving scheduler directly. because runcgo gets called from matchmg, it is too hard to keep it from being called on other stacks. R=r DELTA=94 (65 added, 18 deleted, 11 changed) OCL=35591 CL=35604
2009-10-07factor portable object+library bits out of 5l/6l/8l into ldRuss Cox1-0/+1
R=r DELTA=3214 (904 added, 2260 deleted, 50 changed) OCL=35425 CL=35427
2009-10-038c, 8l dynamic loading support.Russ Cox1-2/+8
better mach binaries. cgo working on darwin+linux amd64+386. eliminated context switches - pi is 30x faster. add libcgo to build. on snow leopard: - non-cgo binaries work; all tests pass. - cgo binaries work on amd64 but not 386. R=r DELTA=2031 (1316 added, 626 deleted, 89 changed) OCL=35264 CL=35304
2009-08-30fix line numbers, again.Russ Cox1-0/+4
if first function in file was dead code, it was being discarded along with the file name information for that file. leave the functions in the master function list longer: let xfol take the dead code out of the code list, and let span skip the unreachable functions during output. before throw: sys·mapaccess1: key not in map panic PC=0x2e7b20 throw+0x33 /Users/rsc/go/src/pkg/runtime/runtime.c:65 throw(0x5834f, 0x0) sys·mapaccess1+0x73 /Users/rsc/go/src/pkg/runtime/hashmap.c:769 sys·mapaccess1(0x2b9bd0, 0x0) gob·*Encoder·Encode+0x16b /Users/rsc/go/src/pkg/fmt/print.go:2926 gob·*Encoder·Encode(0x2bb440, 0x0, 0x558b0, 0x0, 0x2e4be0, ...) main·walk+0x331 :1603 main·walk(0x33a480, 0x0) main·walk+0x271 :1596 main·walk(0x300640, 0x0) main·walk+0x271 :1596 main·walk(0x300520, 0x0) main·walk+0x271 :1596 main·walk(0x300240, 0x0) main·walk+0x271 :1596 main·walk(0x678f8, 0x0) main·main+0x22 :1610 main·main() after throw: sys·mapaccess1: key not in map panic PC=0x2e7b20 throw+0x33 /Users/rsc/go/src/pkg/runtime/runtime.c:65 throw(0x5834f, 0x0) sys·mapaccess1+0x73 /Users/rsc/go/src/pkg/runtime/hashmap.c:769 sys·mapaccess1(0x2b9bd0, 0x0) gob·*Encoder·Encode+0x16b /Users/rsc/go/src/pkg/gob/encoder.go:319 gob·*Encoder·Encode(0x2bb3c0, 0x0, 0x558b0, 0x0, 0x2e4be0, ...) main·walk+0x331 /Users/rsc/dir.go:121 main·walk(0x2f6ab0, 0x0) main·walk+0x271 /Users/rsc/dir.go:114 main·walk(0x301640, 0x0) main·walk+0x271 /Users/rsc/dir.go:114 main·walk(0x301520, 0x0) main·walk+0x271 /Users/rsc/dir.go:114 main·walk(0x301240, 0x0) main·walk+0x271 /Users/rsc/dir.go:114 main·walk(0x678f8, 0x0) main·main+0x22 /Users/rsc/dir.go:128 main·main() mainstart+0xe /Users/rsc/go/src/pkg/runtime/amd64/asm.s:55 mainstart() goexit /Users/rsc/go/src/pkg/runtime/proc.c:133 goexit() R=r DELTA=46 (20 added, 25 deleted, 1 changed) OCL=34094 CL=34103
2009-08-21linker workRuss Cox1-1/+5
* remove now-unused D_SBIG (was for typestrings) * rename elf64.[ch] to elf.[ch] * pull in elf headers from FreeBSD instead of writing our own * emit non-header ELF data in data section * stub out a few more ELF sections needed for dynamic loading R=r DELTA=1928 (1237 added, 635 deleted, 56 changed) OCL=33642 CL=33658
2009-08-20symbol bugs.Russ Cox1-1/+9
do not emit unreachable data symbols. R=austin DELTA=103 (71 added, 4 deleted, 28 changed) OCL=33325 CL=33622
2009-08-20FFI step 2: can ask for libc.so.6.Russ Cox1-0/+9
introduced explicit "data" symbol instead of etext to mark beginning of data, so that using larger alignment (i.e. 4MB like GNU loader) doesn't confuse garbage collector. split dodata into dodata and dobss in preparation for putting the dynamic data + headers in the data segment instead of stuffed at the beginning of the binary. R=r DELTA=52 (37 added, 3 deleted, 12 changed) OCL=33610 CL=33618
2009-07-13fix undefined function error.Russ Cox1-2/+3
before: mainstart: undefined: main·init in mainstart mainstart: branch out of range in mainstart (95) CALL ,0(PC) [main·init] mainstart: undefined: main·main in mainstart mainstart: branch out of range in mainstart (97) CALL ,0(PC) [main·main] mainstart: doasm: notfound from=6f to=6f (95) CALL , mainstart: doasm: notfound from=6f to=6f (97) CALL , mainstart: doasm: notfound from=6f to=6f (95) CALL , mainstart: doasm: notfound from=6f to=6f (97) CALL , mainstart: doasm: notfound from=6f to=6f (95) CALL , mainstart: doasm: notfound from=6f to=6f (97) CALL , after: mainstart: undefined: main·init in mainstart mainstart: undefined: main·main in mainstart R=r DELTA=7 (1 added, 0 deleted, 6 changed) OCL=31555 CL=31555
2009-05-03more morestack fiddlingKen Thompson1-34/+61
R=r OCL=28204 CL=28204
2009-05-01code improvementKen Thompson1-35/+85
better calling of morestack R=r OCL=28179 CL=28179
2009-04-01fix runtime stack overflow bug that gri ran into:Russ Cox1-3/+10
160 - 75 was just barely not enough for deferproc + morestack. added enum names and bumped to 256 - 128. added explanation. changed a few mal() (garbage-collected) to malloc()/free() (manually collected). R=ken OCL=26981 CL=26981
2009-01-21delete unused code and data from 6.outs.Russ Cox1-0/+3
cuts simple test binary by 7%. would be more except for reflection. R=r DELTA=126 (117 added, 4 deleted, 5 changed) OCL=23163 CL=23237
2009-01-206l: do not link in objects from an archive just for init functions.Russ Cox1-1/+24
(makes go libraries behave more like c libraries.) R=r DELTA=85 (67 added, 12 deleted, 6 changed) OCL=23133 CL=23139
2008-12-08pick up symbol for JMP main(SB)Russ Cox1-1/+1
but not JMP main (label). R=ken OCL=20724 CL=20724
2008-11-23delete stack mark stringsRuss Cox1-94/+0
in favor of using in-memory copy of symbol table. $ ls -l pretty pretty.big -rwxr-xr-x 1 rsc eng 439516 Nov 21 16:43 pretty -rwxr-xr-x 1 rsc eng 580984 Nov 21 16:20 pretty.big $ R=r DELTA=446 (238 added, 178 deleted, 30 changed) OCL=19851 CL=19884
2008-11-036l: generate gotypesigs on demand.Russ Cox1-1/+1
add sys.unreflect, which uses gotypesigs. R=r DELTA=170 (152 added, 12 deleted, 6 changed) OCL=18396 CL=18404
2008-10-24avoid JMP to ATEXT in xfolRuss Cox1-1/+1
R=ken OCL=17833 CL=17833
2008-10-24fix JMP main(SB)Russ Cox1-1/+1
R=ken OCL=17832 CL=17832
2008-09-18whitespaceRuss Cox1-4/+4
R=r DELTA=0 (0 added, 0 deleted, 0 changed) OCL=15492 CL=15494
2008-09-18add -K flag to check stack underflowRuss Cox1-2/+38
R=ken DELTA=38 (36 added, 0 deleted, 2 changed) OCL=15482 CL=15491
2008-09-03fix bug in stack overflow check.Rob Pike1-25/+27
if stack is in low memory and frame size is huge, test could wrap around! fix by omitting test altogether if we know frame is big. R=gri OCL=14782 CL=14782
2008-08-03make 6a, 6c, 6g, 6l, libmach_amd64 build on 64-bit gcc.Russ Cox1-15/+15
these guys really really want long to be 32-bits, so ,s/long/int32/ (and then manual fixup). still passes all tests. (i started out looking for just those longs that needed to be int32 instead, and it was just too hard to track them down one by one.) the longs were rare enough that i don't think it will cause integration problems. R=ken OCL=13787 CL=13789
2008-07-11segmented stacks AND goroutinesKen Thompson1-3/+10
SVN=126929
2008-06-29segmented stacksKen Thompson1-10/+11
SVN=125267
2008-06-27segmented stackKen Thompson1-1/+75
SVN=125151
2008-06-18stack offsetKen Thompson1-0/+107
SVN=123521
2008-06-04Add compiler source to new directory structureRob Pike1-0/+820
SVN=121164