ref: ef1b1e159b71e36a3e2870a28f905f5715795dcf
parent: 3613f5061be5fa0459cd7282ad99ede9c3cc67ea
author: cinap_lenrek <[email protected]>
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':