From 69e37c0fdaafb678d12df9ccfabbc47104e57d73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?= Date: Thu, 18 May 2023 22:12:11 +0000 Subject: libmach: fix reading .7 objects containing instructions with an extra register (from3) --- sys/src/libmach/7obj.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sys/src') diff --git a/sys/src/libmach/7obj.c b/sys/src/libmach/7obj.c index 47b219a86..1a25c527e 100644 --- a/sys/src/libmach/7obj.c +++ b/sys/src/libmach/7obj.c @@ -70,8 +70,11 @@ _read7(Biobuf *bp, Prog *p) p->kind = aText; else if(as == AGLOBL) p->kind = aData; - skip(bp, 5); /* reg(1) lineno(4) */ + n = (uchar)Bgetc(bp); /* reg and flag (1) */ + skip(bp, 4); /* lineno(4) */ a = addr(bp); + if(n & 0x40) + addr(bp); /* from3 */ addr(bp); if(a.type != D_OREG || a.name != D_STATIC && a.name != D_EXTERN) p->kind = aNone; -- cgit v1.2.3