ref: f73fb96cb2c0136b019540b6ac0d76be57ea7d49
parent: 9a912b05ebddfd833b9e987326e3a15bf1db8b38
author: mia soweli <mia@soweli.net>
date: Fri Jun 6 12:00:55 EDT 2025
v[al]: add SYNC (memory barrier)
--- a/sys/src/cmd/va/lex.c
+++ b/sys/src/cmd/va/lex.c
@@ -343,6 +343,7 @@
"REMU", LTYPE6, AREMU,
"RET", LTYPE4, ARET,
"SYSCALL", LTYPE4, ASYSCALL,
+ "SYNC", LTYPE4, ASYNC,
"TLBP", LTYPE4, ATLBP,
"TLBR", LTYPE4, ATLBR,
"TLBWI", LTYPE4, ATLBWI,
--- a/sys/src/cmd/vc/v.out.h
+++ b/sys/src/cmd/vc/v.out.h
@@ -157,6 +157,7 @@
ALL,
ASC,
+ ASYNC,
ALAST,
};
--- a/sys/src/cmd/vl/asm.c
+++ b/sys/src/cmd/vl/asm.c
@@ -1360,6 +1360,7 @@
case ABREAK: return OP(1,5);
case ASYSCALL: return OP(1,4);
+ case ASYNC: return OP(1,7);
case ATLBP: return MMU(1,0);
case ATLBR: return MMU(0,1);
case ATLBWI: return MMU(0,2);
--- a/sys/src/cmd/vl/optab.c
+++ b/sys/src/cmd/vl/optab.c
@@ -229,7 +229,7 @@
{ ABCASE, C_LCON, C_NONE, C_LBRA, 46, 4, 0 },
{ ALL, C_REG, C_NONE, C_SOREG, 7, 4, REGZERO },
- { ASC, C_REG, C_NONE, C_SOREG, 7, 4, REGZERO },
+ { ASC, C_REG, C_NONE, C_SOREG, 7, 4, REGZERO },
{ AXXX, C_NONE, C_NONE, C_NONE, 0, 4, 0 },
};
--- a/sys/src/cmd/vl/span.c
+++ b/sys/src/cmd/vl/span.c
@@ -584,6 +584,7 @@
oprange[ATLBR] = oprange[r];
oprange[ATLBWI] = oprange[r];
oprange[ATLBWR] = oprange[r];
+ oprange[ASYNC] = oprange[r];
break;
case ACMPEQF:
oprange[ACMPGTF] = oprange[r];
--
⑨