diff options
author | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2023-05-18 22:12:11 +0000 |
---|---|---|
committer | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2023-05-18 22:12:11 +0000 |
commit | 69e37c0fdaafb678d12df9ccfabbc47104e57d73 (patch) | |
tree | 192f0580540a72faabccb3847378bbaf4bf1b0fe /sys/src | |
parent | 93837692bbaab28e01ea1178d8867047bbcad11d (diff) |
libmach: fix reading .7 objects containing instructions with an extra register (from3)
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/libmach/7obj.c | 5 |
1 files changed, 4 insertions, 1 deletions
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; |