aboutsummaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'util.c')
-rw-r--r--util.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/util.c b/util.c
index 3b5c09d..c891c4e 100644
--- a/util.c
+++ b/util.c
@@ -164,7 +164,7 @@ addins(Ins **pvins, uint *pnins, Ins *i)
}
void
-addbins(Blk *b, Ins **pvins, uint *pnins)
+addbins(Ins **pvins, uint *pnins, Blk *b)
{
Ins *i;
@@ -281,6 +281,17 @@ igroup(Blk *b, Ins *i, Ins **i0, Ins **i1)
assert(i < ie);
*i1 = i + 1;
return;
+ case Osel1:
+ for (; i>ib && (i-1)->op == Osel1; i--)
+ ;
+ assert(i->op == Osel0);
+ /* fall through */
+ case Osel0:
+ *i0 = i++;
+ for (; i<ie && i->op == Osel1; i++)
+ ;
+ *i1 = i;
+ return;
default:
if (ispar(i->op))
goto case_Opar;