cmd/5g: fix bit mask for div/mod routines clobbering R12

This patch is based only on reading the code.  I have not
tried to construct a test case.

Fixes issue 9077.

LGTM=minux
R=minux
CC=golang-codereviews
https://codereview.appspot.com/172110043
crypto/x509: add Solaris certificate file location

Fixes issue 9078.

LGTM=adg
R=golang-codereviews, adg
CC=golang-codereviews
https://codereview.appspot.com/172920043
cmd/cgo: tweak doc to not show example of passing Go pointer

LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/171360043
doc: update go1.4.html's minor library changes.

LGTM=r
R=r
CC=golang-codereviews
https://codereview.appspot.com/173920043
doc/gopher: add jpgs of the 5th anniversary image

LGTM=adg
R=golang-codereviews, adg
CC=golang-codereviews
https://codereview.appspot.com/172980043
spec: method selectors don't auto-deref named pointer types

Language clarification.

The existing rules for selector expressions imply
automatic dereferencing of pointers to struct fields.
They also implied automatic dereferencing of selectors
denoting methods. In almost all cases, such automatic
dereferencing does indeed take place for methods but the
reason is not the selector rules but the fact that method
sets include both methods with T and *T receivers; so for
a *T actual receiver, a method expecting a formal T
receiver, also accepts a *T (and the invocation or method
value expression is the reason for the auto-derefering).

However, the rules as stated so far implied that even in
case of a variable p of named pointer type P, a selector
expression p.f would always be shorthand for (*p).f. This
is true for field selectors f, but cannot be true for
method selectors since a named pointer type always has an
empty method set.

Named pointer types may never appear as anonymous field
types (and method receivers, for that matter), so this
only applies to variables declared of a named pointer
type. This is exceedingly rare and perhaps shouldn't be
permitted in the first place (but we cannot change that).

Amended the selector rules to make auto-deref of values
of named pointer types an exception to the general rules
and added corresponding examples with explanations.

Both gc and gccgo have a bug where they do auto-deref
pointers of named types in method selectors where they
should not:

See http://play.golang.org/p/c6VhjcIVdM , line 45.

Fixes issue 5769.
Fixes issue 8989.

LGTM=r, rsc
R=r, rsc, iant, ken
CC=golang-codereviews
https://codereview.appspot.com/168790043
regexp/syntax: Clarify comment of OpAnyCharNotNL.

LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://codereview.appspot.com/171560043

Committer: Ian Lance Taylor <iant@golang.org>
hash/crc32: fix comment that the IEEE polynomial applies to MPEG-2.

LGTM=minux
R=adg, minux
CC=golang-codereviews
https://codereview.appspot.com/170520043
A+C: add another email address for Emil Hessman

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/143470043

Committer: Brad Fitzpatrick <bradfitz@golang.org>
net/url: add example of using URL.Opaque with http.Request

Per private thread soliciting help. I realized part of this is
documented in several places, but we lacked a unifying
example.

LGTM=rsc
R=golang-codereviews
CC=adg, golang-codereviews, iant, rsc
https://codereview.appspot.com/171620043
net/http: add comment to clarify whether Dir is '/' or '\'.

LGTM=bradfitz
R=bradfitz, alex.brainman
CC=golang-codereviews
https://codereview.appspot.com/168600044
doc: fix small typo in doc

LGTM=adg
R=golang-codereviews, adg
CC=golang-codereviews
https://codereview.appspot.com/170660043

Committer: Andrew Gerrand <adg@golang.org>
C: add Nick Cooper (Google CLA).

LGTM=dsymonds
R=dsymonds
CC=golang-codereviews, nmvc
https://codereview.appspot.com/169580043

Committer: David Symonds <dsymonds@golang.org>
[dev.power64] 5g,6g,8g: synchronize documentation for regopt structures

I added several comments to the regopt-related structures when
porting it to 9g.  Synchronize those comments back in to the
other compilers.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/175720043
[dev.power64] 5g,6g,8g,9g: debug prints for regopt pass 6 and paint2

Theses were very helpful in understanding the regions and
register selection when porting regopt to 9g.  Add them to the
other compilers (and improve 9g's successor debug print).

LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/174130043
[dev.power64] liblink: generate dnames[5689] for D_* constants

This is more complicated than the other enums because the D_*
enums are full of explicit initializers and repeated values.
This tries its best.  (This will get much cleaner once we
tease these constants apart better.)

LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/166700043
[dev.power64] 6g,9g: formatters for Prog and Addr details

The pretty printers for these make it hard to understand
what's actually in the fields of these structures.  These
"ugly printers" show exactly what's in each field, which can
be useful for understanding and debugging code.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/175780043
[dev.power64] liblink: fix Solaris build

a->class is a char.  Boo hoo.

LGTM=minux
R=rsc, minux
CC=golang-codereviews
https://codereview.appspot.com/169630043
runtime: update URL for heap dump format

I just created that redirect, so we can change
it once the wiki moves.

LGTM=bradfitz, khr
R=khr, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/177780043
runtime: fix sudog leak

The SudoG used to sit on the stack, so it was cheap to allocated
and didn't need to be cleaned up when finished.

For the conversion to Go, we had to move sudog off the stack
for a few reasons, so we added a cache of recently used sudogs
to keep allocation cheap. But we didn't add any of the necessary
cleanup before adding a SudoG to the new cache, and so the cached
SudoGs had stale pointers inside them that have caused all sorts
of awful, hard to debug problems.

CL 155760043 made sure SudoG.elem is cleaned up.
CL 150520043 made sure SudoG.selectdone is cleaned up.

This CL makes sure SudoG.next, SudoG.prev, and SudoG.waitlink
are cleaned up. I should have done this when I did the other two
fields; instead I wasted a week tracking down a leak they caused.

A dangling SudoG.waitlink can point into a sudogcache list that
has been "forgotten" in order to let the GC collect it, but that
dangling .waitlink keeps the list from being collected.
And then the list holding the SudoG with the dangling waitlink
can find itself in the same situation, and so on. We end up
with lists of lists of unusable SudoGs that are still linked into
the object graph and never collected (given the right mix of
non-trivial selects and non-channel synchronization).

More details in golang.org/issue/9110.

Fixes issue 9110.

LGTM=r
R=r
CC=dvyukov, golang-codereviews, iant, khr
https://codereview.appspot.com/177870043