File tree Expand file tree Collapse file tree 2 files changed +649
-199
lines changed Expand file tree Collapse file tree 2 files changed +649
-199
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ module fnc.emission.ir;
33import gallinule.x86;
44import fnc.symbols;
55import std.traits ;
6+ import tern.meta;
67
78public enum OpCode : ushort
89{
@@ -237,6 +238,7 @@ public enum OpCode : ushort
237238 ANDN ,
238239 //
239240 ECREATE ,
241+ EADD ,
240242 EINIT ,
241243 EREMOVE ,
242244 EDBGRD ,
@@ -259,6 +261,7 @@ public enum OpCode : ushort
259261 EREPORT ,
260262 EGETKEY ,
261263 EENTER ,
264+ ERESUME ,
262265 EEXIT ,
263266 EACCEPT ,
264267 EMODPE ,
@@ -647,8 +650,6 @@ public enum OpCode : ushort
647650 PAUSE ,
648651 SWAPGS ,
649652
650- LOCK ,
651-
652653 WAIT ,
653654 FWAIT ,
654655
@@ -821,7 +822,8 @@ public enum Details
821822 ZERO = 1 << 20 ,
822823 NZERO = 1 << 21 ,
823824 TAKEN = 1 << 22 ,
824- NOT_TAKEN = 1 << 23
825+ NOT_TAKEN = 1 << 23 ,
826+ LOCK = 1 << 24 ,
825827}
826828
827829public enum Kind : ubyte
@@ -940,7 +942,7 @@ final:
940942 Marker second () => operands[1 ];
941943 Marker third () => operands[2 ];
942944
943- bool markFormat (FMT ... )()
945+ bool format (FMT ... )()
944946 {
945947 if (FMT .length != operands.length)
946948 return false ;
@@ -1078,7 +1080,7 @@ final:
10781080 // TODO: Floats, add more flags??
10791081 case AAD :
10801082 case AAM :
1081- if (markFormat ! (Literal))
1083+ if (format ! (Literal))
10821084 details = detail(" ra" );
10831085 else
10841086 details = detail(" a" );
@@ -1087,7 +1089,7 @@ final:
10871089 case JCC :
10881090 case LOOPCC :
10891091 case CALL :
1090- if (markFormat ! (RM ))
1092+ if (format ! (RM ))
10911093 details = detail(" r" );
10921094 break ;
10931095 case ADD :
@@ -1270,6 +1272,7 @@ final:
12701272 case CRIDVME :
12711273 case CRIDVMXE :
12721274 case ECREATE :
1275+ case EADD :
12731276 case EINIT :
12741277 case EREMOVE :
12751278 case EDBGRD :
@@ -1291,6 +1294,7 @@ final:
12911294 case EREPORT :
12921295 case EGETKEY :
12931296 case EENTER :
1297+ case ERESUME :
12941298 case EEXIT :
12951299 case EACCEPT :
12961300 case EMODPE :
You can’t perform that action at this time.
0 commit comments