summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin@c9x.me>2022-08-24 16:19:01 +0200
committerQuentin Carbonneaux <quentin@c9x.me>2022-10-03 10:41:03 +0200
commitbda9f2833c39ea5f4266dbcb4506ed8895e22d3f (patch)
treee0a75ba52265dd0a08b721d91e3d4dacbe458bf4
parenta9a70e30a8205a8f835c59fd8297e4a4483cc8d4 (diff)
downloadroux-bda9f2833c39ea5f4266dbcb4506ed8895e22d3f.tar.gz
refine width of parsb/ub/sh/uh ops
-rw-r--r--ssa.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ssa.c b/ssa.c
index 2de02d1..126113d 100644
--- a/ssa.c
+++ b/ssa.c
@@ -77,6 +77,8 @@ filluse(Fn *fn)
 			if (!req(i->to, R)) {
 				assert(rtype(i->to) == RTmp);
 				w = WFull;
+				if (isparbh(i->op))
+					w = Wsb + (i->op - Oparsb);
 				if (isload(i->op) && i->op != Oload)
 					w = Wsb + (i->op - Oloadsb);
 				if (isext(i->op))