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;
3
3
import gallinule.x86;
4
4
import fnc.symbols;
5
5
import std.traits ;
6
+ import tern.meta;
6
7
7
8
public enum OpCode : ushort
8
9
{
@@ -237,6 +238,7 @@ public enum OpCode : ushort
237
238
ANDN ,
238
239
//
239
240
ECREATE ,
241
+ EADD ,
240
242
EINIT ,
241
243
EREMOVE ,
242
244
EDBGRD ,
@@ -259,6 +261,7 @@ public enum OpCode : ushort
259
261
EREPORT ,
260
262
EGETKEY ,
261
263
EENTER ,
264
+ ERESUME ,
262
265
EEXIT ,
263
266
EACCEPT ,
264
267
EMODPE ,
@@ -647,8 +650,6 @@ public enum OpCode : ushort
647
650
PAUSE ,
648
651
SWAPGS ,
649
652
650
- LOCK ,
651
-
652
653
WAIT ,
653
654
FWAIT ,
654
655
@@ -821,7 +822,8 @@ public enum Details
821
822
ZERO = 1 << 20 ,
822
823
NZERO = 1 << 21 ,
823
824
TAKEN = 1 << 22 ,
824
- NOT_TAKEN = 1 << 23
825
+ NOT_TAKEN = 1 << 23 ,
826
+ LOCK = 1 << 24 ,
825
827
}
826
828
827
829
public enum Kind : ubyte
@@ -940,7 +942,7 @@ final:
940
942
Marker second () => operands[1 ];
941
943
Marker third () => operands[2 ];
942
944
943
- bool markFormat (FMT ... )()
945
+ bool format (FMT ... )()
944
946
{
945
947
if (FMT .length != operands.length)
946
948
return false ;
@@ -1078,7 +1080,7 @@ final:
1078
1080
// TODO: Floats, add more flags??
1079
1081
case AAD :
1080
1082
case AAM :
1081
- if (markFormat ! (Literal))
1083
+ if (format ! (Literal))
1082
1084
details = detail(" ra" );
1083
1085
else
1084
1086
details = detail(" a" );
@@ -1087,7 +1089,7 @@ final:
1087
1089
case JCC :
1088
1090
case LOOPCC :
1089
1091
case CALL :
1090
- if (markFormat ! (RM ))
1092
+ if (format ! (RM ))
1091
1093
details = detail(" r" );
1092
1094
break ;
1093
1095
case ADD :
@@ -1270,6 +1272,7 @@ final:
1270
1272
case CRIDVME :
1271
1273
case CRIDVMXE :
1272
1274
case ECREATE :
1275
+ case EADD :
1273
1276
case EINIT :
1274
1277
case EREMOVE :
1275
1278
case EDBGRD :
@@ -1291,6 +1294,7 @@ final:
1291
1294
case EREPORT :
1292
1295
case EGETKEY :
1293
1296
case EENTER :
1297
+ case ERESUME :
1294
1298
case EEXIT :
1295
1299
case EACCEPT :
1296
1300
case EMODPE :
You can’t perform that action at this time.
0 commit comments