cmd/5g, cmd/8g: registerize small structs and arrays

cmd/6g has been doing this for a long time.

Arrays are still problematic on 5g because the addressing
for t[0] where local var t has type [3]uintptr takes the address of t.
That's issue 8125.

Fixes issue 8123.

LGTM=josharian
R=josharian, dave
CC=golang-codereviews
https://codereview.appspot.com/102890046
cmd/gc: fix build

TBR=dfc
CC=golang-codereviews
https://codereview.appspot.com/126210047