summaryrefslogtreecommitdiff
path: root/src/cmd/6g/gsubr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/6g/gsubr.c')
-rw-r--r--src/cmd/6g/gsubr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cmd/6g/gsubr.c b/src/cmd/6g/gsubr.c
index 6934c6f30..86ba52c3f 100644
--- a/src/cmd/6g/gsubr.c
+++ b/src/cmd/6g/gsubr.c
@@ -554,7 +554,9 @@ gmove(Node *f, Node *t)
goto st;
st:
- if(f->op == OCONST) {
+ // 64-bit immediates only allowed for move into registers.
+ // this is not a move into a register.
+ if(f->op == OCONST || (f->op == OLITERAL && !t64)) {
gins(a, f, t);
return;
}