@@ -214,6 +214,7 @@ my $fcmp = qr"(?<cmp>\.LT|\.EQ|\.LE|\.GT|\.NE|\.GE|\.NUM|\.NAN|\.LTU|\.EQU|\.LE
214214my $icmp = qr "\. (?<cmp>LT|EQ|LE|GT|NE|GE)" ;
215215my $bool = qr "\. (?<bool>AND|OR|XOR|PASS_B)" ;
216216my $bool2 = qr "\. (?<bool2>AND|OR|XOR)" ;
217+ my $ccbool = qr "\. (?<ccbool>F|LT|EQ|LE|GT|NE|GE|NUM|NAN|LTU|EQU|LEU|GTU|NEU|GEU|UNK|OFF|LO|SFF|LS|HI|SFT|HS|OFT|CSM_TA|CSM_TR|CSM_MX|FCSM_TA|RLE|RGT)" ;
217218my $func = qr "\. (?<func>COS|SIN|EX2|LG2|RCP|RSQ|RCP64H|RSQ64H)" ;
218219my $rro = qr "\. (?<func>SINCOS|EX2)" ;
219220my $add3 = qr " (?:\. (?<type>X|RS|LS))?" ;
@@ -363,8 +364,8 @@ our %grammar =
363364 # Predicate/CC Instructions
364365 PSET => [ { type => $cmpT , code => 0x5088000000000000, rule => qr " ^$pred ?PSET$bool2$bool $r0 , $p12 , $p29 , $p39 ;" o , } ],
365366 PSETP => [ { type => $cmpT , code => 0x5090000000000000, rule => qr " ^$pred ?PSETP$bool2$bool $p3 , $p0 , $p12 , $p29 , $p39 ;" o , } ],
366- CSET => [ { type => $x32T , code => 0x0000000000000000 , rule => qr " ^$pred ?CSET[^;]*; " o , } ], # TODO
367- CSETP => [ { type => $x32T , code => 0x0000000000000000 , rule => qr " ^$pred ?CSETP[^;]*; " o , } ], # TODO
367+ CSET => [ { type => $x32T , code => 0x5098000000000000 , rule => qr " ^$pred ?CSET$ccbool$bool2 $r0 , $p39 ; " o , } ],
368+ CSETP => [ { type => $x32T , code => 0x50a0000000000000 , rule => qr " ^$pred ?CSETP$ccbool$bool2 $p3 , $p0 , $p39 ; " o , } ],
368369 P2R => [ { type => $x32T , code => 0x38e8000000000000, rule => qr " ^$pred ?P2R $r0 , PR, $r8 , $i20w7 ;" o , } ],
369370 R2P => [ { type => $shftT , code => 0x38f0000000000000, rule => qr " ^$pred ?R2P PR, $r8 , $i20w7 ;" o , } ],
370371
@@ -524,6 +525,45 @@ PSETP, PSET: bool2
5245250x0000000001000000 OR
5255260x0000000002000000 XOR
526527
528+ CSETP, CSET: ccbool
529+ 0x0000000000000000 F
530+ 0x0000010000000000 LT
531+ 0x0000020000000000 EQ
532+ 0x0000030000000000 LE
533+ 0x0000040000000000 GT
534+ 0x0000050000000000 NE
535+ 0x0000060000000000 GE
536+ 0x0000070000000000 NUM
537+ 0x0000080000000000 NAN
538+ 0x0000090000000000 LTU
539+ 0x00000a0000000000 EQU
540+ 0x00000b0000000000 LEU
541+ 0x00000c0000000000 GTU
542+ 0x00000d0000000000 NEU
543+ 0x00000e0000000000 GEU
544+ 0x00000f0000000000 UNK
545+ 0x0000100000000000 OFF
546+ 0x0000110000000000 LO
547+ 0x0000120000000000 SFF
548+ 0x0000130000000000 LS
549+ 0x0000140000000000 HI
550+ 0x0000150000000000 SFT
551+ 0x0000160000000000 HS
552+ 0x0000170000000000 OFT
553+ 0x0000180000000000 CSM_TA
554+ 0x0000190000000000 CSM_TR
555+ 0x00001a0000000000 CSM_MX
556+ 0x00001b0000000000 FCSM_TA
557+ 0x00001c0000000000 FCSM_TR
558+ 0x00001d0000000000 FCSM_MX
559+ 0x00001e0000000000 RLE
560+ 0x00001f0000000000 RGT
561+
562+ CSETP, CSET: bool2
563+ 0x0000000000000000 AND
564+ 0x0000000001000000 OR
565+ 0x0000000002000000 XOR
566+
527567ISETP, ISET
5285680x0000080000000000 X
529569
@@ -1472,6 +1512,3 @@ sub getAddrVecRegisters
14721512}
14731513
14741514__END__
1475-
1476-
1477-
0 commit comments