@@ -313,7 +313,7 @@ pub const Mnemonic = enum {
313
313
@"or" , out , outs , outsb , outsd , outsw ,
314
314
pause , pop , popf , popfd , popfq , push , pushfq ,
315
315
rcl , rcr ,
316
- rdfsbase , rdgsbase , rdmsr , rdpid , rdpkru , rdpmc , rdrand , rdseed , rdssd , rdssq , rdtsc , rdtscp ,
316
+ rdfsbase , rdgsbase , rdmsr , rdpid , rdpkru , rdpmc , rdrand , rdseed , rdsspd , rdsspq , rdtsc , rdtscp ,
317
317
ret , rol , ror , rsm ,
318
318
sahf , sal , sar , sbb ,
319
319
scas , scasb , scasd , scasq , scasw ,
@@ -436,6 +436,7 @@ pub const Mnemonic = enum {
436
436
pblendvb , pblendw ,
437
437
pcmpeqq ,
438
438
pextrb , pextrd , pextrq ,
439
+ phminposuw ,
439
440
pinsrb , pinsrd , pinsrq ,
440
441
pmaxsb , pmaxsd , pmaxud , pmaxuw , pminsb , pminsd , pminud , pminuw ,
441
442
pmovsxbd , pmovsxbq , pmovsxbw , pmovsxdq , pmovsxwd , pmovsxwq ,
@@ -494,19 +495,19 @@ pub const Mnemonic = enum {
494
495
vpblendvb , vpblendw , vpclmulqdq ,
495
496
vpcmpeqb , vpcmpeqd , vpcmpeqq , vpcmpeqw ,
496
497
vpcmpgtb , vpcmpgtd , vpcmpgtq , vpcmpgtw ,
497
- vphaddw , vphaddsw , vphaddd , vphsubw , vphsubsw , vphsubd ,
498
498
vperm2f128 , vpermilpd , vpermilps ,
499
499
vpextrb , vpextrd , vpextrq , vpextrw ,
500
+ vphaddw , vphaddsw , vphaddd , vphminposuw , vphsubw , vphsubsw , vphsubd ,
500
501
vpinsrb , vpinsrd , vpinsrq , vpinsrw ,
502
+ vpmaddubsw , vpmaddwd ,
501
503
vpmaxsb , vpmaxsd , vpmaxsw , vpmaxub , vpmaxud , vpmaxuw ,
502
504
vpminsb , vpminsd , vpminsw , vpminub , vpminud , vpminuw ,
503
- vpmaddubsw ,
504
505
vpmovmskb ,
505
506
vpmovsxbd , vpmovsxbq , vpmovsxbw , vpmovsxdq , vpmovsxwd , vpmovsxwq ,
506
507
vpmovzxbd , vpmovzxbq , vpmovzxbw , vpmovzxdq , vpmovzxwd , vpmovzxwq ,
507
- vpmuldq , vpmulhrsw , vpmulhw , vpmulld , vpmullw , vpmuludq ,
508
+ vpmuldq , vpmulhrsw , vpmulhuw , vpmulhw , vpmulld , vpmullw , vpmuludq ,
508
509
vpor ,
509
- vpshufb , vpshufd , vpshufhw , vpshuflw ,
510
+ vpsadbw , vpshufb , vpshufd , vpshufhw , vpshuflw ,
510
511
vpsignb , vpsignd , vpsignw ,
511
512
vpslld , vpslldq , vpsllq , vpsllw ,
512
513
vpsrad , vpsraq , vpsraw ,
@@ -1029,7 +1030,7 @@ fn estimateInstructionLength(prefix: Prefix, encoding: Encoding, ops: []const Op
1029
1030
}
1030
1031
1031
1032
const mnemonic_to_encodings_map = init : {
1032
- @setEvalBranchQuota (5_800 );
1033
+ @setEvalBranchQuota (5_900 );
1033
1034
const ModrmExt = u3 ;
1034
1035
const Entry = struct { Mnemonic , OpEn , []const Op , []const u8 , ModrmExt , Mode , Feature };
1035
1036
const encodings : []const Entry = @import ("encodings.zon" );
@@ -1038,17 +1039,17 @@ const mnemonic_to_encodings_map = init: {
1038
1039
var mnemonic_map : [mnemonic_count ][]Data = @splat (&.{});
1039
1040
for (encodings ) | entry | mnemonic_map [@intFromEnum (entry [0 ])].len += 1 ;
1040
1041
var data_storage : [encodings .len ]Data = undefined ;
1041
- var storage_i : usize = 0 ;
1042
+ var storage_index : usize = 0 ;
1042
1043
for (& mnemonic_map ) | * value | {
1043
- value .ptr = data_storage [storage_i .. ].ptr ;
1044
- storage_i += value .len ;
1044
+ value .ptr = data_storage [storage_index .. ].ptr ;
1045
+ storage_index += value .len ;
1045
1046
}
1046
- var mnemonic_i : [mnemonic_count ]usize = @splat (0 );
1047
+ var mnemonic_index : [mnemonic_count ]usize = @splat (0 );
1047
1048
const ops_len = @typeInfo (@FieldType (Data , "ops" )).array .len ;
1048
1049
const opc_len = @typeInfo (@FieldType (Data , "opc" )).array .len ;
1049
1050
for (encodings ) | entry | {
1050
- const i = & mnemonic_i [@intFromEnum (entry [0 ])];
1051
- mnemonic_map [@intFromEnum (entry [0 ])][i .* ] = .{
1051
+ const index = & mnemonic_index [@intFromEnum (entry [0 ])];
1052
+ mnemonic_map [@intFromEnum (entry [0 ])][index .* ] = .{
1052
1053
.op_en = entry [1 ],
1053
1054
.ops = (entry [2 ] ++ .{.none } ** (ops_len - entry [2 ].len )).* ,
1054
1055
.opc_len = entry [3 ].len ,
@@ -1057,14 +1058,14 @@ const mnemonic_to_encodings_map = init: {
1057
1058
.mode = entry [5 ],
1058
1059
.feature = entry [6 ],
1059
1060
};
1060
- i .* += 1 ;
1061
+ index .* += 1 ;
1061
1062
}
1062
1063
const final_storage = data_storage ;
1063
1064
var final_map : [mnemonic_count ][]const Data = @splat (&.{});
1064
- storage_i = 0 ;
1065
+ storage_index = 0 ;
1065
1066
for (& final_map , mnemonic_map ) | * final_value , value | {
1066
- final_value .* = final_storage [storage_i .. ][0.. value .len ];
1067
- storage_i += value .len ;
1067
+ final_value .* = final_storage [storage_index .. ][0.. value .len ];
1068
+ storage_index += value .len ;
1068
1069
}
1069
1070
break :init final_map ;
1070
1071
};
0 commit comments