diff -r 01125acb5565 sys/src/cmd/5l/asm.c --- a/sys/src/cmd/5l/asm.c Tue Jan 19 19:56:38 2021 -0800 +++ b/sys/src/cmd/5l/asm.c Wed Jan 20 07:48:56 2021 -0800 @@ -789,6 +789,12 @@ r = p->reg; if(r == NREG) r = p->to.reg; + /* + * R>>32 is encoded as R>>0, so flip to the + * equivalent R<<0. + */ + if(instoffset == 0) + o1 &= ~(3<<5); o1 |= r; o1 |= (instoffset&31) << 7; o1 |= p->to.reg << 12;