git: 9front

Download patch

ref: ae5dc6452e7fccba8337e32bc333397693ac7b9d
parent: 75c88563f2fcf1bffbae77c0f612a359a1366c33
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Tue Dec 12 14:30:31 EST 2023

libmach: add TBZ and TBNZ instructions for arm64

--- a/sys/src/libmach/7db.c
+++ b/sys/src/libmach/7db.c
@@ -222,6 +222,8 @@
 	"10011011101mmmmm111111nnnnnddddd",	"UMNEGL",	"R%m,R%n,R%d",
 	"10011011101mmmmm0aaaaannnnnddddd",	"UMADDL",	"R%m,R%n,R%a,R%d",
 	"10011011101mmmmm1aaaaannnnnddddd",	"UMSUBL",	"R%m,R%n,R%a,R%d",
+	"b0110110bbbbbTTTTTTTTTTTTTTddddd",	"TBZ",		"$%b,R%d,%T",
+	"b0110111bbbbbTTTTTTTTTTTTTTddddd",	"TBNZ",		"$%b,R%d,%T",
 	"W0110100TTTTTTTTTTTTTTTTTTTddddd",	"CBZ%W",	"R%d,%T",
 	"W0110101TTTTTTTTTTTTTTTTTTTddddd",	"CBNZ%W",	"R%d,%T",
 	"01010100TTTTTTTTTTTTTTTTTTT0CCCC",	"B%C",		"%T",
@@ -498,6 +500,9 @@
 			*i->curr++ = "BHSD"[u];
 			break;
 
+		case 'b':	// Bit position
+			u = (u & 1)<<5 | (u >> 1);
+			/* wet floor */
 		case 'd':	// Register Numbers
 		case 'n':
 		case 'a':
--