6l: pe fixes
R=rsc, brainman
CC=golang-dev
https://golang.org/cl/4182061
diff --git a/src/cmd/6l/pass.c b/src/cmd/6l/pass.c
index 5eb221a..d6d93ee 100644
--- a/src/cmd/6l/pass.c
+++ b/src/cmd/6l/pass.c
@@ -289,7 +289,7 @@
// a different method is used to access them.
if(p->from.type == D_INDIR+D_GS
&& p->to.type >= D_AX && p->to.type <= D_DI
- && p->from.offset != 0x58) {
+ && p->from.offset <= 8) {
q = appendp(p);
q->from = p->from;
q->from.type = D_INDIR + p->to.type;
diff --git a/src/cmd/ld/pe.c b/src/cmd/ld/pe.c
index 995809f..425fd9e 100644
--- a/src/cmd/ld/pe.c
+++ b/src/cmd/ld/pe.c
@@ -500,6 +500,7 @@
IMAGE_FILE_EXECUTABLE_IMAGE|IMAGE_FILE_DEBUG_STRIPPED;
if (pe64) {
fh.SizeOfOptionalHeader = sizeof(oh64);
+ fh.Characteristics |= IMAGE_FILE_LARGE_ADDRESS_AWARE;
set(Magic, 0x20b); // PE32+
} else {
fh.SizeOfOptionalHeader = sizeof(oh);