Merge to fips-20250107: delocate: Recognize msl as an ARMConstantTweak MOVI has a form that's tagged MSL: MOVI <Vd>.<T>, #<imm8>, MSL #<amount> (cherry picked from commit 90e641cefeb2c02deb3b2d0f65729212cf9f0d2b) Change-Id: I616406d9ae1e7248b37ea96fbbb13e72fdee89f9 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/77087 Auto-Submit: Adam Langley <agl@google.com> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index c73cbb2..2085849 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg
@@ -85,7 +85,7 @@ ('#' '~'? '(' [0-9] WS? "<<" WS? [0-9] ')' ) / ARMRegister) ![fb:(+\-] -ARMConstantTweak <- ((([us] "xt" [xwhb]) / "lsl" / "lsr" / "ror" / "asr") (WS '#' Offset)?) / +ARMConstantTweak <- ((([us] "xt" [xwhb]) / "lsl" / "lsr" / "ror" / "asr" / "msl") (WS '#' Offset)?) / "mul vl" / # multiply offset by the hardware's vector length "mul #" [0-9] ARMRegister <- "sp" /
diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go index 0f8ac01..1ad0d3c 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go
@@ -4972,7 +4972,7 @@ position, tokenIndex = position558, tokenIndex558 return false }, - /* 45 ARMConstantTweak <- <((((('u' / 's') (('x' / 'X') ('t' / 'T')) ('x' / 'w' / 'h' / 'b')) / (('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R'))) (WS '#' Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' '#' [0-9]))> */ + /* 45 ARMConstantTweak <- <((((('u' / 's') (('x' / 'X') ('t' / 'T')) ('x' / 'w' / 'h' / 'b')) / (('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R')) / (('m' / 'M') ('s' / 'S') ('l' / 'L'))) (WS '#' Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' '#' [0-9]))> */ func() bool { position600, tokenIndex600 := position, tokenIndex { @@ -5203,199 +5203,247 @@ l630: position, tokenIndex = position604, tokenIndex604 { - position637, tokenIndex637 := position, tokenIndex + position638, tokenIndex638 := position, tokenIndex if buffer[position] != rune('a') { - goto l638 + goto l639 } position++ - goto l637 - l638: - position, tokenIndex = position637, tokenIndex637 + goto l638 + l639: + position, tokenIndex = position638, tokenIndex638 if buffer[position] != rune('A') { + goto l637 + } + position++ + } + l638: + { + position640, tokenIndex640 := position, tokenIndex + if buffer[position] != rune('s') { + goto l641 + } + position++ + goto l640 + l641: + position, tokenIndex = position640, tokenIndex640 + if buffer[position] != rune('S') { + goto l637 + } + position++ + } + l640: + { + position642, tokenIndex642 := position, tokenIndex + if buffer[position] != rune('r') { + goto l643 + } + position++ + goto l642 + l643: + position, tokenIndex = position642, tokenIndex642 + if buffer[position] != rune('R') { + goto l637 + } + position++ + } + l642: + goto l604 + l637: + position, tokenIndex = position604, tokenIndex604 + { + position644, tokenIndex644 := position, tokenIndex + if buffer[position] != rune('m') { + goto l645 + } + position++ + goto l644 + l645: + position, tokenIndex = position644, tokenIndex644 + if buffer[position] != rune('M') { goto l603 } position++ } - l637: + l644: { - position639, tokenIndex639 := position, tokenIndex + position646, tokenIndex646 := position, tokenIndex if buffer[position] != rune('s') { - goto l640 + goto l647 } position++ - goto l639 - l640: - position, tokenIndex = position639, tokenIndex639 + goto l646 + l647: + position, tokenIndex = position646, tokenIndex646 if buffer[position] != rune('S') { goto l603 } position++ } - l639: + l646: { - position641, tokenIndex641 := position, tokenIndex - if buffer[position] != rune('r') { - goto l642 + position648, tokenIndex648 := position, tokenIndex + if buffer[position] != rune('l') { + goto l649 } position++ - goto l641 - l642: - position, tokenIndex = position641, tokenIndex641 - if buffer[position] != rune('R') { + goto l648 + l649: + position, tokenIndex = position648, tokenIndex648 + if buffer[position] != rune('L') { goto l603 } position++ } - l641: + l648: } l604: { - position643, tokenIndex643 := position, tokenIndex + position650, tokenIndex650 := position, tokenIndex if !_rules[ruleWS]() { - goto l643 + goto l650 } if buffer[position] != rune('#') { - goto l643 + goto l650 } position++ if !_rules[ruleOffset]() { - goto l643 + goto l650 } - goto l644 - l643: - position, tokenIndex = position643, tokenIndex643 + goto l651 + l650: + position, tokenIndex = position650, tokenIndex650 } - l644: + l651: goto l602 l603: position, tokenIndex = position602, tokenIndex602 { - position646, tokenIndex646 := position, tokenIndex + position653, tokenIndex653 := position, tokenIndex if buffer[position] != rune('m') { - goto l647 + goto l654 } position++ - goto l646 - l647: - position, tokenIndex = position646, tokenIndex646 + goto l653 + l654: + position, tokenIndex = position653, tokenIndex653 if buffer[position] != rune('M') { - goto l645 + goto l652 } position++ } - l646: + l653: { - position648, tokenIndex648 := position, tokenIndex + position655, tokenIndex655 := position, tokenIndex if buffer[position] != rune('u') { - goto l649 + goto l656 } position++ - goto l648 - l649: - position, tokenIndex = position648, tokenIndex648 + goto l655 + l656: + position, tokenIndex = position655, tokenIndex655 if buffer[position] != rune('U') { - goto l645 + goto l652 } position++ } - l648: + l655: { - position650, tokenIndex650 := position, tokenIndex + position657, tokenIndex657 := position, tokenIndex if buffer[position] != rune('l') { - goto l651 + goto l658 } position++ - goto l650 - l651: - position, tokenIndex = position650, tokenIndex650 + goto l657 + l658: + position, tokenIndex = position657, tokenIndex657 if buffer[position] != rune('L') { - goto l645 + goto l652 } position++ } - l650: + l657: if buffer[position] != rune(' ') { - goto l645 + goto l652 } position++ { - position652, tokenIndex652 := position, tokenIndex + position659, tokenIndex659 := position, tokenIndex if buffer[position] != rune('v') { - goto l653 + goto l660 } position++ - goto l652 - l653: - position, tokenIndex = position652, tokenIndex652 + goto l659 + l660: + position, tokenIndex = position659, tokenIndex659 if buffer[position] != rune('V') { - goto l645 + goto l652 } position++ } - l652: + l659: { - position654, tokenIndex654 := position, tokenIndex + position661, tokenIndex661 := position, tokenIndex if buffer[position] != rune('l') { - goto l655 + goto l662 } position++ - goto l654 - l655: - position, tokenIndex = position654, tokenIndex654 + goto l661 + l662: + position, tokenIndex = position661, tokenIndex661 if buffer[position] != rune('L') { - goto l645 + goto l652 } position++ } - l654: + l661: goto l602 - l645: + l652: position, tokenIndex = position602, tokenIndex602 { - position656, tokenIndex656 := position, tokenIndex + position663, tokenIndex663 := position, tokenIndex if buffer[position] != rune('m') { - goto l657 + goto l664 } position++ - goto l656 - l657: - position, tokenIndex = position656, tokenIndex656 + goto l663 + l664: + position, tokenIndex = position663, tokenIndex663 if buffer[position] != rune('M') { goto l600 } position++ } - l656: + l663: { - position658, tokenIndex658 := position, tokenIndex + position665, tokenIndex665 := position, tokenIndex if buffer[position] != rune('u') { - goto l659 + goto l666 } position++ - goto l658 - l659: - position, tokenIndex = position658, tokenIndex658 + goto l665 + l666: + position, tokenIndex = position665, tokenIndex665 if buffer[position] != rune('U') { goto l600 } position++ } - l658: + l665: { - position660, tokenIndex660 := position, tokenIndex + position667, tokenIndex667 := position, tokenIndex if buffer[position] != rune('l') { - goto l661 + goto l668 } position++ - goto l660 - l661: - position, tokenIndex = position660, tokenIndex660 + goto l667 + l668: + position, tokenIndex = position667, tokenIndex667 if buffer[position] != rune('L') { goto l600 } position++ } - l660: + l667: if buffer[position] != rune(' ') { goto l600 } @@ -5419,170 +5467,122 @@ }, /* 46 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / SVE2PredicateRegister / ARMVectorRegister / SVE2SpecialValue / ('{' WS? ARMVectorRegister (',' WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ func() bool { - position662, tokenIndex662 := position, tokenIndex + position669, tokenIndex669 := position, tokenIndex { - position663 := position + position670 := position { - position664, tokenIndex664 := position, tokenIndex + position671, tokenIndex671 := position, tokenIndex { - position666, tokenIndex666 := position, tokenIndex + position673, tokenIndex673 := position, tokenIndex if buffer[position] != rune('s') { - goto l667 - } - position++ - goto l666 - l667: - position, tokenIndex = position666, tokenIndex666 - if buffer[position] != rune('S') { - goto l665 - } - position++ - } - l666: - { - position668, tokenIndex668 := position, tokenIndex - if buffer[position] != rune('p') { - goto l669 - } - position++ - goto l668 - l669: - position, tokenIndex = position668, tokenIndex668 - if buffer[position] != rune('P') { - goto l665 - } - position++ - } - l668: - goto l664 - l665: - position, tokenIndex = position664, tokenIndex664 - { - position671, tokenIndex671 := position, tokenIndex - if buffer[position] != rune('x') { - goto l672 - } - position++ - goto l671 - l672: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('w') { - goto l673 - } - position++ - goto l671 - l673: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('d') { goto l674 } position++ - goto l671 + goto l673 l674: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('q') { - goto l675 + position, tokenIndex = position673, tokenIndex673 + if buffer[position] != rune('S') { + goto l672 } position++ - goto l671 - l675: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('s') { + } + l673: + { + position675, tokenIndex675 := position, tokenIndex + if buffer[position] != rune('p') { goto l676 } position++ - goto l671 + goto l675 l676: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('h') { - goto l677 - } - position++ - goto l671 - l677: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('b') { - goto l670 + position, tokenIndex = position675, tokenIndex675 + if buffer[position] != rune('P') { + goto l672 } position++ } - l671: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l670 - } - position++ + l675: + goto l671 + l672: + position, tokenIndex = position671, tokenIndex671 { position678, tokenIndex678 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l678 + if buffer[position] != rune('x') { + goto l679 } position++ - goto l679 - l678: + goto l678 + l679: position, tokenIndex = position678, tokenIndex678 - } - l679: - goto l664 - l670: - position, tokenIndex = position664, tokenIndex664 - { - position681, tokenIndex681 := position, tokenIndex - if buffer[position] != rune('x') { + if buffer[position] != rune('w') { + goto l680 + } + position++ + goto l678 + l680: + position, tokenIndex = position678, tokenIndex678 + if buffer[position] != rune('d') { + goto l681 + } + position++ + goto l678 + l681: + position, tokenIndex = position678, tokenIndex678 + if buffer[position] != rune('q') { goto l682 } position++ - goto l681 + goto l678 l682: - position, tokenIndex = position681, tokenIndex681 - if buffer[position] != rune('X') { - goto l680 + position, tokenIndex = position678, tokenIndex678 + if buffer[position] != rune('s') { + goto l683 } position++ - } - l681: - { - position683, tokenIndex683 := position, tokenIndex - if buffer[position] != rune('z') { + goto l678 + l683: + position, tokenIndex = position678, tokenIndex678 + if buffer[position] != rune('h') { goto l684 } position++ - goto l683 + goto l678 l684: - position, tokenIndex = position683, tokenIndex683 - if buffer[position] != rune('Z') { - goto l680 + position, tokenIndex = position678, tokenIndex678 + if buffer[position] != rune('b') { + goto l677 } position++ } - l683: + l678: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l677 + } + position++ { position685, tokenIndex685 := position, tokenIndex - if buffer[position] != rune('r') { - goto l686 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l685 } position++ - goto l685 - l686: + goto l686 + l685: position, tokenIndex = position685, tokenIndex685 - if buffer[position] != rune('R') { - goto l680 - } - position++ } - l685: - goto l664 - l680: - position, tokenIndex = position664, tokenIndex664 + l686: + goto l671 + l677: + position, tokenIndex = position671, tokenIndex671 { position688, tokenIndex688 := position, tokenIndex - if buffer[position] != rune('w') { + if buffer[position] != rune('x') { goto l689 } position++ goto l688 l689: position, tokenIndex = position688, tokenIndex688 - if buffer[position] != rune('W') { + if buffer[position] != rune('X') { goto l687 } position++ @@ -5618,19 +5618,19 @@ position++ } l692: - goto l664 + goto l671 l687: - position, tokenIndex = position664, tokenIndex664 + position, tokenIndex = position671, tokenIndex671 { position695, tokenIndex695 := position, tokenIndex - if buffer[position] != rune('n') { + if buffer[position] != rune('w') { goto l696 } position++ goto l695 l696: position, tokenIndex = position695, tokenIndex695 - if buffer[position] != rune('N') { + if buffer[position] != rune('W') { goto l694 } position++ @@ -5653,480 +5653,476 @@ l697: { position699, tokenIndex699 := position, tokenIndex - if buffer[position] != rune('c') { + if buffer[position] != rune('r') { goto l700 } position++ goto l699 l700: position, tokenIndex = position699, tokenIndex699 - if buffer[position] != rune('C') { + if buffer[position] != rune('R') { goto l694 } position++ } l699: - { - position701, tokenIndex701 := position, tokenIndex - if buffer[position] != rune('v') { - goto l702 - } - position++ - goto l701 - l702: - position, tokenIndex = position701, tokenIndex701 - if buffer[position] != rune('V') { - goto l694 - } - position++ - } - l701: - goto l664 + goto l671 l694: - position, tokenIndex = position664, tokenIndex664 - if !_rules[ruleSVE2PredicateRegister]() { - goto l703 + position, tokenIndex = position671, tokenIndex671 + { + position702, tokenIndex702 := position, tokenIndex + if buffer[position] != rune('n') { + goto l703 + } + position++ + goto l702 + l703: + position, tokenIndex = position702, tokenIndex702 + if buffer[position] != rune('N') { + goto l701 + } + position++ } - goto l664 - l703: - position, tokenIndex = position664, tokenIndex664 - if !_rules[ruleARMVectorRegister]() { + l702: + { + position704, tokenIndex704 := position, tokenIndex + if buffer[position] != rune('z') { + goto l705 + } + position++ goto l704 + l705: + position, tokenIndex = position704, tokenIndex704 + if buffer[position] != rune('Z') { + goto l701 + } + position++ } - goto l664 l704: - position, tokenIndex = position664, tokenIndex664 - if !_rules[ruleSVE2SpecialValue]() { - goto l705 + { + position706, tokenIndex706 := position, tokenIndex + if buffer[position] != rune('c') { + goto l707 + } + position++ + goto l706 + l707: + position, tokenIndex = position706, tokenIndex706 + if buffer[position] != rune('C') { + goto l701 + } + position++ } - goto l664 - l705: - position, tokenIndex = position664, tokenIndex664 + l706: + { + position708, tokenIndex708 := position, tokenIndex + if buffer[position] != rune('v') { + goto l709 + } + position++ + goto l708 + l709: + position, tokenIndex = position708, tokenIndex708 + if buffer[position] != rune('V') { + goto l701 + } + position++ + } + l708: + goto l671 + l701: + position, tokenIndex = position671, tokenIndex671 + if !_rules[ruleSVE2PredicateRegister]() { + goto l710 + } + goto l671 + l710: + position, tokenIndex = position671, tokenIndex671 + if !_rules[ruleARMVectorRegister]() { + goto l711 + } + goto l671 + l711: + position, tokenIndex = position671, tokenIndex671 + if !_rules[ruleSVE2SpecialValue]() { + goto l712 + } + goto l671 + l712: + position, tokenIndex = position671, tokenIndex671 if buffer[position] != rune('{') { - goto l662 + goto l669 } position++ { - position706, tokenIndex706 := position, tokenIndex + position713, tokenIndex713 := position, tokenIndex if !_rules[ruleWS]() { - goto l706 + goto l713 } - goto l707 - l706: - position, tokenIndex = position706, tokenIndex706 + goto l714 + l713: + position, tokenIndex = position713, tokenIndex713 } - l707: + l714: if !_rules[ruleARMVectorRegister]() { - goto l662 + goto l669 } - l708: + l715: { - position709, tokenIndex709 := position, tokenIndex + position716, tokenIndex716 := position, tokenIndex if buffer[position] != rune(',') { - goto l709 + goto l716 } position++ { - position710, tokenIndex710 := position, tokenIndex + position717, tokenIndex717 := position, tokenIndex if !_rules[ruleWS]() { - goto l710 + goto l717 } - goto l711 - l710: - position, tokenIndex = position710, tokenIndex710 + goto l718 + l717: + position, tokenIndex = position717, tokenIndex717 } - l711: + l718: if !_rules[ruleARMVectorRegister]() { - goto l709 + goto l716 } - goto l708 - l709: - position, tokenIndex = position709, tokenIndex709 + goto l715 + l716: + position, tokenIndex = position716, tokenIndex716 } { - position712, tokenIndex712 := position, tokenIndex + position719, tokenIndex719 := position, tokenIndex if !_rules[ruleWS]() { - goto l712 + goto l719 } - goto l713 - l712: - position, tokenIndex = position712, tokenIndex712 + goto l720 + l719: + position, tokenIndex = position719, tokenIndex719 } - l713: + l720: if buffer[position] != rune('}') { - goto l662 + goto l669 } position++ { - position714, tokenIndex714 := position, tokenIndex + position721, tokenIndex721 := position, tokenIndex if buffer[position] != rune('[') { - goto l714 + goto l721 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l714 + goto l721 } position++ { - position716, tokenIndex716 := position, tokenIndex + position723, tokenIndex723 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l716 + goto l723 } position++ - goto l717 - l716: - position, tokenIndex = position716, tokenIndex716 + goto l724 + l723: + position, tokenIndex = position723, tokenIndex723 } - l717: + l724: if buffer[position] != rune(']') { - goto l714 + goto l721 } position++ - goto l715 - l714: - position, tokenIndex = position714, tokenIndex714 + goto l722 + l721: + position, tokenIndex = position721, tokenIndex721 } - l715: + l722: } - l664: - add(ruleARMRegister, position663) + l671: + add(ruleARMRegister, position670) } return true - l662: - position, tokenIndex = position662, tokenIndex662 + l669: + position, tokenIndex = position669, tokenIndex669 return false }, /* 47 ARMVectorRegister <- <(('p' / 'v' / 'z') [0-9] [0-9]? !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_') ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ func() bool { - position718, tokenIndex718 := position, tokenIndex + position725, tokenIndex725 := position, tokenIndex { - position719 := position + position726 := position { - position720, tokenIndex720 := position, tokenIndex + position727, tokenIndex727 := position, tokenIndex if buffer[position] != rune('p') { - goto l721 + goto l728 } position++ - goto l720 - l721: - position, tokenIndex = position720, tokenIndex720 + goto l727 + l728: + position, tokenIndex = position727, tokenIndex727 if buffer[position] != rune('v') { - goto l722 + goto l729 } position++ - goto l720 - l722: - position, tokenIndex = position720, tokenIndex720 + goto l727 + l729: + position, tokenIndex = position727, tokenIndex727 if buffer[position] != rune('z') { - goto l718 + goto l725 } position++ } - l720: + l727: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l718 + goto l725 } position++ { - position723, tokenIndex723 := position, tokenIndex + position730, tokenIndex730 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l723 + goto l730 } position++ - goto l724 - l723: - position, tokenIndex = position723, tokenIndex723 + goto l731 + l730: + position, tokenIndex = position730, tokenIndex730 } - l724: - { - position725, tokenIndex725 := position, tokenIndex - { - position726, tokenIndex726 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l727 - } - position++ - goto l726 - l727: - position, tokenIndex = position726, tokenIndex726 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l728 - } - position++ - goto l726 - l728: - position, tokenIndex = position726, tokenIndex726 - { - position730, tokenIndex730 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l731 - } - position++ - goto l730 - l731: - position, tokenIndex = position730, tokenIndex730 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l729 - } - position++ - } - l730: - goto l726 - l729: - position, tokenIndex = position726, tokenIndex726 - if buffer[position] != rune('_') { - goto l725 - } - position++ - } - l726: - goto l718 - l725: - position, tokenIndex = position725, tokenIndex725 - } + l731: { position732, tokenIndex732 := position, tokenIndex - if buffer[position] != rune('.') { - goto l732 - } - position++ - l734: { - position735, tokenIndex735 := position, tokenIndex + position733, tokenIndex733 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l734 + } + position++ + goto l733 + l734: + position, tokenIndex = position733, tokenIndex733 if c := buffer[position]; c < rune('0') || c > rune('9') { goto l735 } position++ - goto l734 + goto l733 l735: - position, tokenIndex = position735, tokenIndex735 - } - { - position736, tokenIndex736 := position, tokenIndex - if buffer[position] != rune('b') { + position, tokenIndex = position733, tokenIndex733 + { + position737, tokenIndex737 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l738 + } + position++ goto l737 + l738: + position, tokenIndex = position737, tokenIndex737 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l736 + } + position++ } - position++ - goto l736 l737: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('s') { - goto l738 - } - position++ - goto l736 - l738: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('d') { - goto l739 - } - position++ - goto l736 - l739: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('h') { - goto l740 - } - position++ - goto l736 - l740: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('q') { + goto l733 + l736: + position, tokenIndex = position733, tokenIndex733 + if buffer[position] != rune('_') { goto l732 } position++ } - l736: - { - position741, tokenIndex741 := position, tokenIndex - if buffer[position] != rune('[') { - goto l741 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l741 - } - position++ - { - position743, tokenIndex743 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l743 - } - position++ - goto l744 - l743: - position, tokenIndex = position743, tokenIndex743 - } - l744: - if buffer[position] != rune(']') { - goto l741 - } - position++ - goto l742 - l741: - position, tokenIndex = position741, tokenIndex741 - } - l742: - goto l733 + l733: + goto l725 l732: position, tokenIndex = position732, tokenIndex732 } - l733: - add(ruleARMVectorRegister, position719) + { + position739, tokenIndex739 := position, tokenIndex + if buffer[position] != rune('.') { + goto l739 + } + position++ + l741: + { + position742, tokenIndex742 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l742 + } + position++ + goto l741 + l742: + position, tokenIndex = position742, tokenIndex742 + } + { + position743, tokenIndex743 := position, tokenIndex + if buffer[position] != rune('b') { + goto l744 + } + position++ + goto l743 + l744: + position, tokenIndex = position743, tokenIndex743 + if buffer[position] != rune('s') { + goto l745 + } + position++ + goto l743 + l745: + position, tokenIndex = position743, tokenIndex743 + if buffer[position] != rune('d') { + goto l746 + } + position++ + goto l743 + l746: + position, tokenIndex = position743, tokenIndex743 + if buffer[position] != rune('h') { + goto l747 + } + position++ + goto l743 + l747: + position, tokenIndex = position743, tokenIndex743 + if buffer[position] != rune('q') { + goto l739 + } + position++ + } + l743: + { + position748, tokenIndex748 := position, tokenIndex + if buffer[position] != rune('[') { + goto l748 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l748 + } + position++ + { + position750, tokenIndex750 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l750 + } + position++ + goto l751 + l750: + position, tokenIndex = position750, tokenIndex750 + } + l751: + if buffer[position] != rune(']') { + goto l748 + } + position++ + goto l749 + l748: + position, tokenIndex = position748, tokenIndex748 + } + l749: + goto l740 + l739: + position, tokenIndex = position739, tokenIndex739 + } + l740: + add(ruleARMVectorRegister, position726) } return true - l718: - position, tokenIndex = position718, tokenIndex718 + l725: + position, tokenIndex = position725, tokenIndex725 return false }, /* 48 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / ('z' / 'Z')))> */ func() bool { - position745, tokenIndex745 := position, tokenIndex + position752, tokenIndex752 := position, tokenIndex { - position746 := position + position753 := position { - position747, tokenIndex747 := position, tokenIndex + position754, tokenIndex754 := position, tokenIndex if buffer[position] != rune('p') { - goto l748 + goto l755 } position++ - goto l747 - l748: - position, tokenIndex = position747, tokenIndex747 + goto l754 + l755: + position, tokenIndex = position754, tokenIndex754 if buffer[position] != rune('P') { - goto l745 - } - position++ - } - l747: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l745 - } - position++ - { - position749, tokenIndex749 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l749 - } - position++ - goto l750 - l749: - position, tokenIndex = position749, tokenIndex749 - } - l750: - if buffer[position] != rune('/') { - goto l745 - } - position++ - { - position751, tokenIndex751 := position, tokenIndex - if buffer[position] != rune('m') { goto l752 } position++ - goto l751 - l752: - position, tokenIndex = position751, tokenIndex751 - if buffer[position] != rune('M') { - goto l753 + } + l754: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l752 + } + position++ + { + position756, tokenIndex756 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l756 } position++ - goto l751 - l753: - position, tokenIndex = position751, tokenIndex751 - { - position754, tokenIndex754 := position, tokenIndex - if buffer[position] != rune('z') { - goto l755 - } - position++ - goto l754 - l755: - position, tokenIndex = position754, tokenIndex754 - if buffer[position] != rune('Z') { - goto l745 - } - position++ - } - l754: + goto l757 + l756: + position, tokenIndex = position756, tokenIndex756 } - l751: - add(ruleSVE2PredicateRegister, position746) - } - return true - l745: - position, tokenIndex = position745, tokenIndex745 - return false - }, - /* 49 SVE2SpecialValue <- <(((('p' / 'P') ('o' / 'O') ('w' / 'W') '2') / (('v' / 'V') ('l' / 'L') ('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8') ![0-9]) / (('v' / 'V') ('l' / 'L') '1' '6') / (('v' / 'V') ('l' / 'L') '3' '2') / (('v' / 'V') ('l' / 'L') '6' '4') / (('v' / 'V') ('l' / 'L') '1' '2' '8') / (('v' / 'V') ('l' / 'L') '2' '5' '6') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '3') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '4') / (('a' / 'A') ('l' / 'L') ('l' / 'L'))) !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_'))> */ - func() bool { - position756, tokenIndex756 := position, tokenIndex - { - position757 := position + l757: + if buffer[position] != rune('/') { + goto l752 + } + position++ { position758, tokenIndex758 := position, tokenIndex - { - position760, tokenIndex760 := position, tokenIndex - if buffer[position] != rune('p') { - goto l761 - } - position++ - goto l760 - l761: - position, tokenIndex = position760, tokenIndex760 - if buffer[position] != rune('P') { - goto l759 - } - position++ - } - l760: - { - position762, tokenIndex762 := position, tokenIndex - if buffer[position] != rune('o') { - goto l763 - } - position++ - goto l762 - l763: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('O') { - goto l759 - } - position++ - } - l762: - { - position764, tokenIndex764 := position, tokenIndex - if buffer[position] != rune('w') { - goto l765 - } - position++ - goto l764 - l765: - position, tokenIndex = position764, tokenIndex764 - if buffer[position] != rune('W') { - goto l759 - } - position++ - } - l764: - if buffer[position] != rune('2') { + if buffer[position] != rune('m') { goto l759 } position++ goto l758 l759: position, tokenIndex = position758, tokenIndex758 + if buffer[position] != rune('M') { + goto l760 + } + position++ + goto l758 + l760: + position, tokenIndex = position758, tokenIndex758 + { + position761, tokenIndex761 := position, tokenIndex + if buffer[position] != rune('z') { + goto l762 + } + position++ + goto l761 + l762: + position, tokenIndex = position761, tokenIndex761 + if buffer[position] != rune('Z') { + goto l752 + } + position++ + } + l761: + } + l758: + add(ruleSVE2PredicateRegister, position753) + } + return true + l752: + position, tokenIndex = position752, tokenIndex752 + return false + }, + /* 49 SVE2SpecialValue <- <(((('p' / 'P') ('o' / 'O') ('w' / 'W') '2') / (('v' / 'V') ('l' / 'L') ('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8') ![0-9]) / (('v' / 'V') ('l' / 'L') '1' '6') / (('v' / 'V') ('l' / 'L') '3' '2') / (('v' / 'V') ('l' / 'L') '6' '4') / (('v' / 'V') ('l' / 'L') '1' '2' '8') / (('v' / 'V') ('l' / 'L') '2' '5' '6') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '3') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '4') / (('a' / 'A') ('l' / 'L') ('l' / 'L'))) !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_'))> */ + func() bool { + position763, tokenIndex763 := position, tokenIndex + { + position764 := position + { + position765, tokenIndex765 := position, tokenIndex { position767, tokenIndex767 := position, tokenIndex - if buffer[position] != rune('v') { + if buffer[position] != rune('p') { goto l768 } position++ goto l767 l768: position, tokenIndex = position767, tokenIndex767 - if buffer[position] != rune('V') { + if buffer[position] != rune('P') { goto l766 } position++ @@ -6134,14 +6130,14 @@ l767: { position769, tokenIndex769 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('o') { goto l770 } position++ goto l769 l770: position, tokenIndex = position769, tokenIndex769 - if buffer[position] != rune('L') { + if buffer[position] != rune('O') { goto l766 } position++ @@ -6149,313 +6145,305 @@ l769: { position771, tokenIndex771 := position, tokenIndex - if buffer[position] != rune('1') { + if buffer[position] != rune('w') { goto l772 } position++ goto l771 l772: position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('2') { - goto l773 - } - position++ - goto l771 - l773: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('3') { - goto l774 - } - position++ - goto l771 - l774: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('4') { - goto l775 - } - position++ - goto l771 - l775: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('5') { - goto l776 - } - position++ - goto l771 - l776: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('6') { - goto l777 - } - position++ - goto l771 - l777: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('7') { - goto l778 - } - position++ - goto l771 - l778: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('8') { + if buffer[position] != rune('W') { goto l766 } position++ } l771: + if buffer[position] != rune('2') { + goto l766 + } + position++ + goto l765 + l766: + position, tokenIndex = position765, tokenIndex765 { - position779, tokenIndex779 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + position774, tokenIndex774 := position, tokenIndex + if buffer[position] != rune('v') { + goto l775 + } + position++ + goto l774 + l775: + position, tokenIndex = position774, tokenIndex774 + if buffer[position] != rune('V') { + goto l773 + } + position++ + } + l774: + { + position776, tokenIndex776 := position, tokenIndex + if buffer[position] != rune('l') { + goto l777 + } + position++ + goto l776 + l777: + position, tokenIndex = position776, tokenIndex776 + if buffer[position] != rune('L') { + goto l773 + } + position++ + } + l776: + { + position778, tokenIndex778 := position, tokenIndex + if buffer[position] != rune('1') { goto l779 } position++ - goto l766 + goto l778 l779: - position, tokenIndex = position779, tokenIndex779 - } - goto l758 - l766: - position, tokenIndex = position758, tokenIndex758 - { - position781, tokenIndex781 := position, tokenIndex - if buffer[position] != rune('v') { + position, tokenIndex = position778, tokenIndex778 + if buffer[position] != rune('2') { + goto l780 + } + position++ + goto l778 + l780: + position, tokenIndex = position778, tokenIndex778 + if buffer[position] != rune('3') { + goto l781 + } + position++ + goto l778 + l781: + position, tokenIndex = position778, tokenIndex778 + if buffer[position] != rune('4') { goto l782 } position++ - goto l781 + goto l778 l782: - position, tokenIndex = position781, tokenIndex781 - if buffer[position] != rune('V') { - goto l780 + position, tokenIndex = position778, tokenIndex778 + if buffer[position] != rune('5') { + goto l783 } position++ - } - l781: - { - position783, tokenIndex783 := position, tokenIndex - if buffer[position] != rune('l') { + goto l778 + l783: + position, tokenIndex = position778, tokenIndex778 + if buffer[position] != rune('6') { goto l784 } position++ - goto l783 + goto l778 l784: - position, tokenIndex = position783, tokenIndex783 - if buffer[position] != rune('L') { - goto l780 - } - position++ - } - l783: - if buffer[position] != rune('1') { - goto l780 - } - position++ - if buffer[position] != rune('6') { - goto l780 - } - position++ - goto l758 - l780: - position, tokenIndex = position758, tokenIndex758 - { - position786, tokenIndex786 := position, tokenIndex - if buffer[position] != rune('v') { - goto l787 - } - position++ - goto l786 - l787: - position, tokenIndex = position786, tokenIndex786 - if buffer[position] != rune('V') { + position, tokenIndex = position778, tokenIndex778 + if buffer[position] != rune('7') { goto l785 } position++ + goto l778 + l785: + position, tokenIndex = position778, tokenIndex778 + if buffer[position] != rune('8') { + goto l773 + } + position++ } - l786: + l778: + { + position786, tokenIndex786 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l786 + } + position++ + goto l773 + l786: + position, tokenIndex = position786, tokenIndex786 + } + goto l765 + l773: + position, tokenIndex = position765, tokenIndex765 { position788, tokenIndex788 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l789 } position++ goto l788 l789: position, tokenIndex = position788, tokenIndex788 - if buffer[position] != rune('L') { - goto l785 + if buffer[position] != rune('V') { + goto l787 } position++ } l788: - if buffer[position] != rune('3') { - goto l785 - } - position++ - if buffer[position] != rune('2') { - goto l785 - } - position++ - goto l758 - l785: - position, tokenIndex = position758, tokenIndex758 { - position791, tokenIndex791 := position, tokenIndex - if buffer[position] != rune('v') { - goto l792 + position790, tokenIndex790 := position, tokenIndex + if buffer[position] != rune('l') { + goto l791 } position++ - goto l791 - l792: - position, tokenIndex = position791, tokenIndex791 - if buffer[position] != rune('V') { - goto l790 + goto l790 + l791: + position, tokenIndex = position790, tokenIndex790 + if buffer[position] != rune('L') { + goto l787 } position++ } - l791: + l790: + if buffer[position] != rune('1') { + goto l787 + } + position++ + if buffer[position] != rune('6') { + goto l787 + } + position++ + goto l765 + l787: + position, tokenIndex = position765, tokenIndex765 { position793, tokenIndex793 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l794 } position++ goto l793 l794: position, tokenIndex = position793, tokenIndex793 - if buffer[position] != rune('L') { - goto l790 + if buffer[position] != rune('V') { + goto l792 } position++ } l793: - if buffer[position] != rune('6') { - goto l790 - } - position++ - if buffer[position] != rune('4') { - goto l790 - } - position++ - goto l758 - l790: - position, tokenIndex = position758, tokenIndex758 { - position796, tokenIndex796 := position, tokenIndex - if buffer[position] != rune('v') { - goto l797 + position795, tokenIndex795 := position, tokenIndex + if buffer[position] != rune('l') { + goto l796 } position++ - goto l796 - l797: - position, tokenIndex = position796, tokenIndex796 - if buffer[position] != rune('V') { - goto l795 + goto l795 + l796: + position, tokenIndex = position795, tokenIndex795 + if buffer[position] != rune('L') { + goto l792 } position++ } - l796: + l795: + if buffer[position] != rune('3') { + goto l792 + } + position++ + if buffer[position] != rune('2') { + goto l792 + } + position++ + goto l765 + l792: + position, tokenIndex = position765, tokenIndex765 { position798, tokenIndex798 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l799 } position++ goto l798 l799: position, tokenIndex = position798, tokenIndex798 - if buffer[position] != rune('L') { - goto l795 + if buffer[position] != rune('V') { + goto l797 } position++ } l798: - if buffer[position] != rune('1') { - goto l795 - } - position++ - if buffer[position] != rune('2') { - goto l795 - } - position++ - if buffer[position] != rune('8') { - goto l795 - } - position++ - goto l758 - l795: - position, tokenIndex = position758, tokenIndex758 { - position801, tokenIndex801 := position, tokenIndex - if buffer[position] != rune('v') { - goto l802 + position800, tokenIndex800 := position, tokenIndex + if buffer[position] != rune('l') { + goto l801 } position++ - goto l801 - l802: - position, tokenIndex = position801, tokenIndex801 - if buffer[position] != rune('V') { - goto l800 + goto l800 + l801: + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('L') { + goto l797 } position++ } - l801: + l800: + if buffer[position] != rune('6') { + goto l797 + } + position++ + if buffer[position] != rune('4') { + goto l797 + } + position++ + goto l765 + l797: + position, tokenIndex = position765, tokenIndex765 { position803, tokenIndex803 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l804 } position++ goto l803 l804: position, tokenIndex = position803, tokenIndex803 - if buffer[position] != rune('L') { - goto l800 + if buffer[position] != rune('V') { + goto l802 } position++ } l803: - if buffer[position] != rune('2') { - goto l800 - } - position++ - if buffer[position] != rune('5') { - goto l800 - } - position++ - if buffer[position] != rune('6') { - goto l800 - } - position++ - goto l758 - l800: - position, tokenIndex = position758, tokenIndex758 { - position806, tokenIndex806 := position, tokenIndex - if buffer[position] != rune('m') { - goto l807 + position805, tokenIndex805 := position, tokenIndex + if buffer[position] != rune('l') { + goto l806 } position++ - goto l806 - l807: - position, tokenIndex = position806, tokenIndex806 - if buffer[position] != rune('M') { - goto l805 + goto l805 + l806: + position, tokenIndex = position805, tokenIndex805 + if buffer[position] != rune('L') { + goto l802 } position++ } - l806: + l805: + if buffer[position] != rune('1') { + goto l802 + } + position++ + if buffer[position] != rune('2') { + goto l802 + } + position++ + if buffer[position] != rune('8') { + goto l802 + } + position++ + goto l765 + l802: + position, tokenIndex = position765, tokenIndex765 { position808, tokenIndex808 := position, tokenIndex - if buffer[position] != rune('u') { + if buffer[position] != rune('v') { goto l809 } position++ goto l808 l809: position, tokenIndex = position808, tokenIndex808 - if buffer[position] != rune('U') { - goto l805 + if buffer[position] != rune('V') { + goto l807 } position++ } @@ -6470,18 +6458,26 @@ l811: position, tokenIndex = position810, tokenIndex810 if buffer[position] != rune('L') { - goto l805 + goto l807 } position++ } l810: - if buffer[position] != rune('3') { - goto l805 + if buffer[position] != rune('2') { + goto l807 } position++ - goto l758 - l805: - position, tokenIndex = position758, tokenIndex758 + if buffer[position] != rune('5') { + goto l807 + } + position++ + if buffer[position] != rune('6') { + goto l807 + } + position++ + goto l765 + l807: + position, tokenIndex = position765, tokenIndex765 { position813, tokenIndex813 := position, tokenIndex if buffer[position] != rune('m') { @@ -6527,1140 +6523,1192 @@ position++ } l817: - if buffer[position] != rune('4') { + if buffer[position] != rune('3') { goto l812 } position++ - goto l758 + goto l765 l812: - position, tokenIndex = position758, tokenIndex758 + position, tokenIndex = position765, tokenIndex765 { - position819, tokenIndex819 := position, tokenIndex - if buffer[position] != rune('a') { - goto l820 + position820, tokenIndex820 := position, tokenIndex + if buffer[position] != rune('m') { + goto l821 } position++ + goto l820 + l821: + position, tokenIndex = position820, tokenIndex820 + if buffer[position] != rune('M') { + goto l819 + } + position++ + } + l820: + { + position822, tokenIndex822 := position, tokenIndex + if buffer[position] != rune('u') { + goto l823 + } + position++ + goto l822 + l823: + position, tokenIndex = position822, tokenIndex822 + if buffer[position] != rune('U') { + goto l819 + } + position++ + } + l822: + { + position824, tokenIndex824 := position, tokenIndex + if buffer[position] != rune('l') { + goto l825 + } + position++ + goto l824 + l825: + position, tokenIndex = position824, tokenIndex824 + if buffer[position] != rune('L') { + goto l819 + } + position++ + } + l824: + if buffer[position] != rune('4') { goto l819 - l820: - position, tokenIndex = position819, tokenIndex819 - if buffer[position] != rune('A') { - goto l756 - } - position++ } + position++ + goto l765 l819: - { - position821, tokenIndex821 := position, tokenIndex - if buffer[position] != rune('l') { - goto l822 - } - position++ - goto l821 - l822: - position, tokenIndex = position821, tokenIndex821 - if buffer[position] != rune('L') { - goto l756 - } - position++ - } - l821: - { - position823, tokenIndex823 := position, tokenIndex - if buffer[position] != rune('l') { - goto l824 - } - position++ - goto l823 - l824: - position, tokenIndex = position823, tokenIndex823 - if buffer[position] != rune('L') { - goto l756 - } - position++ - } - l823: - } - l758: - { - position825, tokenIndex825 := position, tokenIndex + position, tokenIndex = position765, tokenIndex765 { position826, tokenIndex826 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + if buffer[position] != rune('a') { goto l827 } position++ goto l826 l827: position, tokenIndex = position826, tokenIndex826 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l828 - } - position++ - goto l826 - l828: - position, tokenIndex = position826, tokenIndex826 - { - position830, tokenIndex830 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l831 - } - position++ - goto l830 - l831: - position, tokenIndex = position830, tokenIndex830 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l829 - } - position++ - } - l830: - goto l826 - l829: - position, tokenIndex = position826, tokenIndex826 - if buffer[position] != rune('_') { - goto l825 + if buffer[position] != rune('A') { + goto l763 } position++ } l826: - goto l756 - l825: - position, tokenIndex = position825, tokenIndex825 + { + position828, tokenIndex828 := position, tokenIndex + if buffer[position] != rune('l') { + goto l829 + } + position++ + goto l828 + l829: + position, tokenIndex = position828, tokenIndex828 + if buffer[position] != rune('L') { + goto l763 + } + position++ + } + l828: + { + position830, tokenIndex830 := position, tokenIndex + if buffer[position] != rune('l') { + goto l831 + } + position++ + goto l830 + l831: + position, tokenIndex = position830, tokenIndex830 + if buffer[position] != rune('L') { + goto l763 + } + position++ + } + l830: } - add(ruleSVE2SpecialValue, position757) + l765: + { + position832, tokenIndex832 := position, tokenIndex + { + position833, tokenIndex833 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l834 + } + position++ + goto l833 + l834: + position, tokenIndex = position833, tokenIndex833 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l835 + } + position++ + goto l833 + l835: + position, tokenIndex = position833, tokenIndex833 + { + position837, tokenIndex837 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l838 + } + position++ + goto l837 + l838: + position, tokenIndex = position837, tokenIndex837 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l836 + } + position++ + } + l837: + goto l833 + l836: + position, tokenIndex = position833, tokenIndex833 + if buffer[position] != rune('_') { + goto l832 + } + position++ + } + l833: + goto l763 + l832: + position, tokenIndex = position832, tokenIndex832 + } + add(ruleSVE2SpecialValue, position764) } return true - l756: - position, tokenIndex = position756, tokenIndex756 + l763: + position, tokenIndex = position763, tokenIndex763 return false }, /* 50 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - position832, tokenIndex832 := position, tokenIndex + position839, tokenIndex839 := position, tokenIndex { - position833 := position + position840 := position { - position834, tokenIndex834 := position, tokenIndex + position841, tokenIndex841 := position, tokenIndex if !_rules[ruleSymbolRef]() { - goto l835 - } - if !_rules[ruleBaseIndexScale]() { - goto l835 - } - goto l834 - l835: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSymbolRef]() { - goto l836 - } - goto l834 - l836: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleLow12BitsSymbolRef]() { - goto l837 - } - goto l834 - l837: - position, tokenIndex = position834, tokenIndex834 - l839: - { - position840, tokenIndex840 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l840 - } - goto l839 - l840: - position, tokenIndex = position840, tokenIndex840 - } - if !_rules[ruleBaseIndexScale]() { - goto l838 - } - goto l834 - l838: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSegmentRegister]() { - goto l841 - } - if !_rules[ruleOffset]() { - goto l841 - } - if !_rules[ruleBaseIndexScale]() { - goto l841 - } - goto l834 - l841: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSegmentRegister]() { goto l842 } if !_rules[ruleBaseIndexScale]() { goto l842 } - goto l834 + goto l841 l842: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSegmentRegister]() { + position, tokenIndex = position841, tokenIndex841 + if !_rules[ruleSymbolRef]() { goto l843 } - if !_rules[ruleOffset]() { - goto l843 - } - goto l834 + goto l841 l843: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleARMBaseIndexScale]() { + position, tokenIndex = position841, tokenIndex841 + if !_rules[ruleLow12BitsSymbolRef]() { goto l844 } - goto l834 + goto l841 l844: - position, tokenIndex = position834, tokenIndex834 + position, tokenIndex = position841, tokenIndex841 + l846: + { + position847, tokenIndex847 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l847 + } + goto l846 + l847: + position, tokenIndex = position847, tokenIndex847 + } if !_rules[ruleBaseIndexScale]() { - goto l832 + goto l845 + } + goto l841 + l845: + position, tokenIndex = position841, tokenIndex841 + if !_rules[ruleSegmentRegister]() { + goto l848 + } + if !_rules[ruleOffset]() { + goto l848 + } + if !_rules[ruleBaseIndexScale]() { + goto l848 + } + goto l841 + l848: + position, tokenIndex = position841, tokenIndex841 + if !_rules[ruleSegmentRegister]() { + goto l849 + } + if !_rules[ruleBaseIndexScale]() { + goto l849 + } + goto l841 + l849: + position, tokenIndex = position841, tokenIndex841 + if !_rules[ruleSegmentRegister]() { + goto l850 + } + if !_rules[ruleOffset]() { + goto l850 + } + goto l841 + l850: + position, tokenIndex = position841, tokenIndex841 + if !_rules[ruleARMBaseIndexScale]() { + goto l851 + } + goto l841 + l851: + position, tokenIndex = position841, tokenIndex841 + if !_rules[ruleBaseIndexScale]() { + goto l839 } } - l834: - add(ruleMemoryRef, position833) + l841: + add(ruleMemoryRef, position840) } return true - l832: - position, tokenIndex = position832, tokenIndex832 + l839: + position, tokenIndex = position839, tokenIndex839 return false }, /* 51 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ func() bool { - position845, tokenIndex845 := position, tokenIndex + position852, tokenIndex852 := position, tokenIndex { - position846 := position - { - position847, tokenIndex847 := position, tokenIndex - l849: - { - position850, tokenIndex850 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l850 - } - goto l849 - l850: - position, tokenIndex = position850, tokenIndex850 - } - if buffer[position] != rune('+') { - goto l847 - } - position++ - goto l848 - l847: - position, tokenIndex = position847, tokenIndex847 - } - l848: - { - position851, tokenIndex851 := position, tokenIndex - if !_rules[ruleLocalSymbol]() { - goto l852 - } - goto l851 - l852: - position, tokenIndex = position851, tokenIndex851 - if !_rules[ruleSymbolName]() { - goto l845 - } - } - l851: - l853: + position853 := position { position854, tokenIndex854 := position, tokenIndex - if !_rules[ruleOffset]() { + l856: + { + position857, tokenIndex857 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l857 + } + goto l856 + l857: + position, tokenIndex = position857, tokenIndex857 + } + if buffer[position] != rune('+') { goto l854 } - goto l853 + position++ + goto l855 l854: position, tokenIndex = position854, tokenIndex854 } + l855: { - position855, tokenIndex855 := position, tokenIndex + position858, tokenIndex858 := position, tokenIndex + if !_rules[ruleLocalSymbol]() { + goto l859 + } + goto l858 + l859: + position, tokenIndex = position858, tokenIndex858 + if !_rules[ruleSymbolName]() { + goto l852 + } + } + l858: + l860: + { + position861, tokenIndex861 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l861 + } + goto l860 + l861: + position, tokenIndex = position861, tokenIndex861 + } + { + position862, tokenIndex862 := position, tokenIndex if buffer[position] != rune('@') { - goto l855 + goto l862 } position++ if !_rules[ruleSection]() { - goto l855 + goto l862 } - l857: + l864: { - position858, tokenIndex858 := position, tokenIndex + position865, tokenIndex865 := position, tokenIndex if !_rules[ruleOffset]() { - goto l858 + goto l865 } - goto l857 - l858: - position, tokenIndex = position858, tokenIndex858 + goto l864 + l865: + position, tokenIndex = position865, tokenIndex865 } - goto l856 - l855: - position, tokenIndex = position855, tokenIndex855 + goto l863 + l862: + position, tokenIndex = position862, tokenIndex862 } - l856: - add(ruleSymbolRef, position846) + l863: + add(ruleSymbolRef, position853) } return true - l845: - position, tokenIndex = position845, tokenIndex845 + l852: + position, tokenIndex = position852, tokenIndex852 return false }, /* 52 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ func() bool { - position859, tokenIndex859 := position, tokenIndex + position866, tokenIndex866 := position, tokenIndex { - position860 := position + position867 := position if buffer[position] != rune(':') { - goto l859 + goto l866 } position++ { - position861, tokenIndex861 := position, tokenIndex + position868, tokenIndex868 := position, tokenIndex if buffer[position] != rune('l') { - goto l862 + goto l869 } position++ - goto l861 - l862: - position, tokenIndex = position861, tokenIndex861 + goto l868 + l869: + position, tokenIndex = position868, tokenIndex868 if buffer[position] != rune('L') { - goto l859 + goto l866 } position++ } - l861: + l868: { - position863, tokenIndex863 := position, tokenIndex + position870, tokenIndex870 := position, tokenIndex if buffer[position] != rune('o') { - goto l864 + goto l871 } position++ - goto l863 - l864: - position, tokenIndex = position863, tokenIndex863 + goto l870 + l871: + position, tokenIndex = position870, tokenIndex870 if buffer[position] != rune('O') { - goto l859 + goto l866 } position++ } - l863: + l870: if buffer[position] != rune('1') { - goto l859 + goto l866 } position++ if buffer[position] != rune('2') { - goto l859 + goto l866 } position++ if buffer[position] != rune(':') { - goto l859 + goto l866 } position++ { - position865, tokenIndex865 := position, tokenIndex + position872, tokenIndex872 := position, tokenIndex if !_rules[ruleLocalSymbol]() { + goto l873 + } + goto l872 + l873: + position, tokenIndex = position872, tokenIndex872 + if !_rules[ruleSymbolName]() { goto l866 } - goto l865 - l866: - position, tokenIndex = position865, tokenIndex865 - if !_rules[ruleSymbolName]() { - goto l859 - } } - l865: + l872: { - position867, tokenIndex867 := position, tokenIndex + position874, tokenIndex874 := position, tokenIndex if !_rules[ruleOffset]() { - goto l867 + goto l874 } - goto l868 - l867: - position, tokenIndex = position867, tokenIndex867 + goto l875 + l874: + position, tokenIndex = position874, tokenIndex874 } - l868: - add(ruleLow12BitsSymbolRef, position860) + l875: + add(ruleLow12BitsSymbolRef, position867) } return true - l859: - position, tokenIndex = position859, tokenIndex859 + l866: + position, tokenIndex = position866, tokenIndex866 return false }, /* 53 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - position869, tokenIndex869 := position, tokenIndex + position876, tokenIndex876 := position, tokenIndex { - position870 := position + position877 := position if buffer[position] != rune('[') { - goto l869 + goto l876 } position++ if !_rules[ruleARMRegister]() { - goto l869 + goto l876 } { - position871, tokenIndex871 := position, tokenIndex + position878, tokenIndex878 := position, tokenIndex if buffer[position] != rune(',') { - goto l871 + goto l878 } position++ { - position873, tokenIndex873 := position, tokenIndex + position880, tokenIndex880 := position, tokenIndex if !_rules[ruleWS]() { - goto l873 + goto l880 } - goto l874 - l873: - position, tokenIndex = position873, tokenIndex873 + goto l881 + l880: + position, tokenIndex = position880, tokenIndex880 } - l874: + l881: { - position875, tokenIndex875 := position, tokenIndex + position882, tokenIndex882 := position, tokenIndex if buffer[position] != rune('#') { - goto l876 + goto l883 } position++ if !_rules[ruleOffset]() { - goto l876 + goto l883 } { - position877, tokenIndex877 := position, tokenIndex + position884, tokenIndex884 := position, tokenIndex { - position879, tokenIndex879 := position, tokenIndex + position886, tokenIndex886 := position, tokenIndex if buffer[position] != rune('*') { - goto l880 + goto l887 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l880 + goto l887 } position++ - l881: - { - position882, tokenIndex882 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l882 - } - position++ - goto l881 - l882: - position, tokenIndex = position882, tokenIndex882 - } - goto l879 - l880: - position, tokenIndex = position879, tokenIndex879 - if buffer[position] != rune('*') { - goto l883 - } - position++ - if buffer[position] != rune('(') { - goto l883 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l883 - } - position++ - l884: - { - position885, tokenIndex885 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l885 - } - position++ - goto l884 - l885: - position, tokenIndex = position885, tokenIndex885 - } - if !_rules[ruleOperator]() { - goto l883 - } - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l883 - } - position++ - l886: - { - position887, tokenIndex887 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l887 - } - position++ - goto l886 - l887: - position, tokenIndex = position887, tokenIndex887 - } - if buffer[position] != rune(')') { - goto l883 - } - position++ - goto l879 - l883: - position, tokenIndex = position879, tokenIndex879 l888: { position889, tokenIndex889 := position, tokenIndex - if buffer[position] != rune('+') { - goto l889 - } - position++ if c := buffer[position]; c < rune('0') || c > rune('9') { goto l889 } position++ - l890: - { - position891, tokenIndex891 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l891 - } - position++ - goto l890 - l891: - position, tokenIndex = position891, tokenIndex891 - } goto l888 l889: position, tokenIndex = position889, tokenIndex889 } + goto l886 + l887: + position, tokenIndex = position886, tokenIndex886 + if buffer[position] != rune('*') { + goto l890 + } + position++ + if buffer[position] != rune('(') { + goto l890 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l890 + } + position++ + l891: + { + position892, tokenIndex892 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l892 + } + position++ + goto l891 + l892: + position, tokenIndex = position892, tokenIndex892 + } + if !_rules[ruleOperator]() { + goto l890 + } + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l890 + } + position++ + l893: + { + position894, tokenIndex894 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l894 + } + position++ + goto l893 + l894: + position, tokenIndex = position894, tokenIndex894 + } + if buffer[position] != rune(')') { + goto l890 + } + position++ + goto l886 + l890: + position, tokenIndex = position886, tokenIndex886 + l895: + { + position896, tokenIndex896 := position, tokenIndex + if buffer[position] != rune('+') { + goto l896 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l896 + } + position++ + l897: + { + position898, tokenIndex898 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l898 + } + position++ + goto l897 + l898: + position, tokenIndex = position898, tokenIndex898 + } + goto l895 + l896: + position, tokenIndex = position896, tokenIndex896 + } } - l879: - goto l878 + l886: + goto l885 - position, tokenIndex = position877, tokenIndex877 + position, tokenIndex = position884, tokenIndex884 } - l878: - goto l875 - l876: - position, tokenIndex = position875, tokenIndex875 + l885: + goto l882 + l883: + position, tokenIndex = position882, tokenIndex882 if !_rules[ruleARMGOTLow12]() { - goto l892 + goto l899 } - goto l875 - l892: - position, tokenIndex = position875, tokenIndex875 + goto l882 + l899: + position, tokenIndex = position882, tokenIndex882 if !_rules[ruleLow12BitsSymbolRef]() { - goto l893 + goto l900 } - goto l875 - l893: - position, tokenIndex = position875, tokenIndex875 + goto l882 + l900: + position, tokenIndex = position882, tokenIndex882 if !_rules[ruleARMRegister]() { - goto l871 + goto l878 } } - l875: + l882: { - position894, tokenIndex894 := position, tokenIndex + position901, tokenIndex901 := position, tokenIndex if buffer[position] != rune(',') { - goto l894 + goto l901 } position++ { - position896, tokenIndex896 := position, tokenIndex + position903, tokenIndex903 := position, tokenIndex if !_rules[ruleWS]() { - goto l896 + goto l903 } - goto l897 - l896: - position, tokenIndex = position896, tokenIndex896 + goto l904 + l903: + position, tokenIndex = position903, tokenIndex903 } - l897: + l904: if !_rules[ruleARMConstantTweak]() { - goto l894 + goto l901 } - goto l895 - l894: - position, tokenIndex = position894, tokenIndex894 + goto l902 + l901: + position, tokenIndex = position901, tokenIndex901 } - l895: - goto l872 - l871: - position, tokenIndex = position871, tokenIndex871 + l902: + goto l879 + l878: + position, tokenIndex = position878, tokenIndex878 } - l872: + l879: if buffer[position] != rune(']') { - goto l869 + goto l876 } position++ { - position898, tokenIndex898 := position, tokenIndex + position905, tokenIndex905 := position, tokenIndex if !_rules[ruleARMPostincrement]() { - goto l898 + goto l905 } - goto l899 - l898: - position, tokenIndex = position898, tokenIndex898 + goto l906 + l905: + position, tokenIndex = position905, tokenIndex905 } - l899: - add(ruleARMBaseIndexScale, position870) + l906: + add(ruleARMBaseIndexScale, position877) } return true - l869: - position, tokenIndex = position869, tokenIndex869 + l876: + position, tokenIndex = position876, tokenIndex876 return false }, /* 54 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - position900, tokenIndex900 := position, tokenIndex + position907, tokenIndex907 := position, tokenIndex { - position901 := position + position908 := position if buffer[position] != rune(':') { - goto l900 + goto l907 } position++ { - position902, tokenIndex902 := position, tokenIndex + position909, tokenIndex909 := position, tokenIndex if buffer[position] != rune('g') { - goto l903 + goto l910 } position++ - goto l902 - l903: - position, tokenIndex = position902, tokenIndex902 + goto l909 + l910: + position, tokenIndex = position909, tokenIndex909 if buffer[position] != rune('G') { - goto l900 - } - position++ - } - l902: - { - position904, tokenIndex904 := position, tokenIndex - if buffer[position] != rune('o') { - goto l905 - } - position++ - goto l904 - l905: - position, tokenIndex = position904, tokenIndex904 - if buffer[position] != rune('O') { - goto l900 - } - position++ - } - l904: - { - position906, tokenIndex906 := position, tokenIndex - if buffer[position] != rune('t') { goto l907 } position++ - goto l906 - l907: - position, tokenIndex = position906, tokenIndex906 - if buffer[position] != rune('T') { - goto l900 + } + l909: + { + position911, tokenIndex911 := position, tokenIndex + if buffer[position] != rune('o') { + goto l912 + } + position++ + goto l911 + l912: + position, tokenIndex = position911, tokenIndex911 + if buffer[position] != rune('O') { + goto l907 } position++ } - l906: + l911: + { + position913, tokenIndex913 := position, tokenIndex + if buffer[position] != rune('t') { + goto l914 + } + position++ + goto l913 + l914: + position, tokenIndex = position913, tokenIndex913 + if buffer[position] != rune('T') { + goto l907 + } + position++ + } + l913: if buffer[position] != rune('_') { - goto l900 + goto l907 } position++ { - position908, tokenIndex908 := position, tokenIndex + position915, tokenIndex915 := position, tokenIndex if buffer[position] != rune('l') { - goto l909 + goto l916 } position++ - goto l908 - l909: - position, tokenIndex = position908, tokenIndex908 + goto l915 + l916: + position, tokenIndex = position915, tokenIndex915 if buffer[position] != rune('L') { - goto l900 + goto l907 } position++ } - l908: + l915: { - position910, tokenIndex910 := position, tokenIndex + position917, tokenIndex917 := position, tokenIndex if buffer[position] != rune('o') { - goto l911 + goto l918 } position++ - goto l910 - l911: - position, tokenIndex = position910, tokenIndex910 + goto l917 + l918: + position, tokenIndex = position917, tokenIndex917 if buffer[position] != rune('O') { - goto l900 + goto l907 } position++ } - l910: + l917: if buffer[position] != rune('1') { - goto l900 + goto l907 } position++ if buffer[position] != rune('2') { - goto l900 + goto l907 } position++ if buffer[position] != rune(':') { - goto l900 + goto l907 } position++ if !_rules[ruleSymbolName]() { - goto l900 + goto l907 } - add(ruleARMGOTLow12, position901) + add(ruleARMGOTLow12, position908) } return true - l900: - position, tokenIndex = position900, tokenIndex900 + l907: + position, tokenIndex = position907, tokenIndex907 return false }, /* 55 ARMPostincrement <- <'!'> */ func() bool { - position912, tokenIndex912 := position, tokenIndex + position919, tokenIndex919 := position, tokenIndex { - position913 := position + position920 := position if buffer[position] != rune('!') { - goto l912 + goto l919 } position++ - add(ruleARMPostincrement, position913) + add(ruleARMPostincrement, position920) } return true - l912: - position, tokenIndex = position912, tokenIndex912 + l919: + position, tokenIndex = position919, tokenIndex919 return false }, /* 56 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ func() bool { - position914, tokenIndex914 := position, tokenIndex + position921, tokenIndex921 := position, tokenIndex { - position915 := position + position922 := position if buffer[position] != rune('(') { - goto l914 + goto l921 } position++ { - position916, tokenIndex916 := position, tokenIndex + position923, tokenIndex923 := position, tokenIndex if !_rules[ruleRegisterOrConstant]() { - goto l916 + goto l923 } - goto l917 - l916: - position, tokenIndex = position916, tokenIndex916 + goto l924 + l923: + position, tokenIndex = position923, tokenIndex923 } - l917: + l924: { - position918, tokenIndex918 := position, tokenIndex + position925, tokenIndex925 := position, tokenIndex if !_rules[ruleWS]() { - goto l918 + goto l925 } - goto l919 - l918: - position, tokenIndex = position918, tokenIndex918 + goto l926 + l925: + position, tokenIndex = position925, tokenIndex925 } - l919: + l926: { - position920, tokenIndex920 := position, tokenIndex + position927, tokenIndex927 := position, tokenIndex if buffer[position] != rune(',') { - goto l920 + goto l927 } position++ { - position922, tokenIndex922 := position, tokenIndex + position929, tokenIndex929 := position, tokenIndex if !_rules[ruleWS]() { - goto l922 + goto l929 } - goto l923 - l922: - position, tokenIndex = position922, tokenIndex922 + goto l930 + l929: + position, tokenIndex = position929, tokenIndex929 } - l923: + l930: if !_rules[ruleRegisterOrConstant]() { - goto l920 + goto l927 } { - position924, tokenIndex924 := position, tokenIndex + position931, tokenIndex931 := position, tokenIndex if !_rules[ruleWS]() { - goto l924 + goto l931 } - goto l925 - l924: - position, tokenIndex = position924, tokenIndex924 + goto l932 + l931: + position, tokenIndex = position931, tokenIndex931 } - l925: + l932: { - position926, tokenIndex926 := position, tokenIndex + position933, tokenIndex933 := position, tokenIndex if buffer[position] != rune(',') { - goto l926 + goto l933 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 + goto l933 } position++ - l928: + l935: { - position929, tokenIndex929 := position, tokenIndex + position936, tokenIndex936 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l929 + goto l936 } position++ - goto l928 - l929: - position, tokenIndex = position929, tokenIndex929 + goto l935 + l936: + position, tokenIndex = position936, tokenIndex936 } - goto l927 - l926: - position, tokenIndex = position926, tokenIndex926 + goto l934 + l933: + position, tokenIndex = position933, tokenIndex933 } + l934: + goto l928 l927: - goto l921 - l920: - position, tokenIndex = position920, tokenIndex920 + position, tokenIndex = position927, tokenIndex927 } - l921: + l928: if buffer[position] != rune(')') { - goto l914 + goto l921 } position++ - add(ruleBaseIndexScale, position915) + add(ruleBaseIndexScale, position922) } return true - l914: - position, tokenIndex = position914, tokenIndex914 + l921: + position, tokenIndex = position921, tokenIndex921 return false }, /* 57 Operator <- <('+' / '-')> */ func() bool { - position930, tokenIndex930 := position, tokenIndex + position937, tokenIndex937 := position, tokenIndex { - position931 := position + position938 := position { - position932, tokenIndex932 := position, tokenIndex + position939, tokenIndex939 := position, tokenIndex if buffer[position] != rune('+') { - goto l933 + goto l940 } position++ - goto l932 - l933: - position, tokenIndex = position932, tokenIndex932 + goto l939 + l940: + position, tokenIndex = position939, tokenIndex939 if buffer[position] != rune('-') { - goto l930 + goto l937 } position++ } - l932: - add(ruleOperator, position931) + l939: + add(ruleOperator, position938) } return true - l930: - position, tokenIndex = position930, tokenIndex930 + l937: + position, tokenIndex = position937, tokenIndex937 return false }, /* 58 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */ func() bool { - position934, tokenIndex934 := position, tokenIndex + position941, tokenIndex941 := position, tokenIndex { - position935 := position + position942 := position { - position936, tokenIndex936 := position, tokenIndex + position943, tokenIndex943 := position, tokenIndex if buffer[position] != rune('+') { - goto l936 + goto l943 } position++ - goto l937 - l936: - position, tokenIndex = position936, tokenIndex936 + goto l944 + l943: + position, tokenIndex = position943, tokenIndex943 } - l937: + l944: { - position938, tokenIndex938 := position, tokenIndex + position945, tokenIndex945 := position, tokenIndex if buffer[position] != rune('-') { - goto l938 + goto l945 } position++ - goto l939 - l938: - position, tokenIndex = position938, tokenIndex938 + goto l946 + l945: + position, tokenIndex = position945, tokenIndex945 } - l939: + l946: { - position940, tokenIndex940 := position, tokenIndex + position947, tokenIndex947 := position, tokenIndex if buffer[position] != rune('0') { - goto l941 + goto l948 } position++ { - position942, tokenIndex942 := position, tokenIndex + position949, tokenIndex949 := position, tokenIndex if buffer[position] != rune('b') { - goto l943 - } - position++ - goto l942 - l943: - position, tokenIndex = position942, tokenIndex942 - if buffer[position] != rune('B') { - goto l941 - } - position++ - } - l942: - { - position946, tokenIndex946 := position, tokenIndex - if buffer[position] != rune('0') { - goto l947 - } - position++ - goto l946 - l947: - position, tokenIndex = position946, tokenIndex946 - if buffer[position] != rune('1') { - goto l941 - } - position++ - } - l946: - l944: - { - position945, tokenIndex945 := position, tokenIndex - { - position948, tokenIndex948 := position, tokenIndex - if buffer[position] != rune('0') { - goto l949 - } - position++ - goto l948 - l949: - position, tokenIndex = position948, tokenIndex948 - if buffer[position] != rune('1') { - goto l945 - } - position++ - } - l948: - goto l944 - l945: - position, tokenIndex = position945, tokenIndex945 - } - goto l940 - l941: - position, tokenIndex = position940, tokenIndex940 - if buffer[position] != rune('0') { - goto l950 - } - position++ - { - position951, tokenIndex951 := position, tokenIndex - if buffer[position] != rune('x') { - goto l952 - } - position++ - goto l951 - l952: - position, tokenIndex = position951, tokenIndex951 - if buffer[position] != rune('X') { goto l950 } position++ - } - l951: - { - position955, tokenIndex955 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l956 + goto l949 + l950: + position, tokenIndex = position949, tokenIndex949 + if buffer[position] != rune('B') { + goto l948 } position++ - goto l955 - l956: - position, tokenIndex = position955, tokenIndex955 - if c := buffer[position]; c < rune('0') || c > rune('9') { + } + l949: + { + position953, tokenIndex953 := position, tokenIndex + if buffer[position] != rune('0') { + goto l954 + } + position++ + goto l953 + l954: + position, tokenIndex = position953, tokenIndex953 + if buffer[position] != rune('1') { + goto l948 + } + position++ + } + l953: + l951: + { + position952, tokenIndex952 := position, tokenIndex + { + position955, tokenIndex955 := position, tokenIndex + if buffer[position] != rune('0') { + goto l956 + } + position++ + goto l955 + l956: + position, tokenIndex = position955, tokenIndex955 + if buffer[position] != rune('1') { + goto l952 + } + position++ + } + l955: + goto l951 + l952: + position, tokenIndex = position952, tokenIndex952 + } + goto l947 + l948: + position, tokenIndex = position947, tokenIndex947 + if buffer[position] != rune('0') { + goto l957 + } + position++ + { + position958, tokenIndex958 := position, tokenIndex + if buffer[position] != rune('x') { + goto l959 + } + position++ + goto l958 + l959: + position, tokenIndex = position958, tokenIndex958 + if buffer[position] != rune('X') { goto l957 } position++ - goto l955 - l957: - position, tokenIndex = position955, tokenIndex955 - { - position958, tokenIndex958 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l959 - } - position++ - goto l958 - l959: - position, tokenIndex = position958, tokenIndex958 - if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l950 - } - position++ - } - l958: } - l955: - l953: + l958: { - position954, tokenIndex954 := position, tokenIndex - { - position960, tokenIndex960 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l961 - } - position++ - goto l960 - l961: - position, tokenIndex = position960, tokenIndex960 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l962 - } - position++ - goto l960 - l962: - position, tokenIndex = position960, tokenIndex960 - { - position963, tokenIndex963 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l964 - } - position++ - goto l963 - l964: - position, tokenIndex = position963, tokenIndex963 - if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l954 - } - position++ - } - l963: - } - l960: - goto l953 - l954: - position, tokenIndex = position954, tokenIndex954 - } - goto l940 - l950: - position, tokenIndex = position940, tokenIndex940 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l934 - } - position++ - l965: - { - position966, tokenIndex966 := position, tokenIndex + position962, tokenIndex962 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l966 + goto l963 } position++ - goto l965 - l966: - position, tokenIndex = position966, tokenIndex966 + goto l962 + l963: + position, tokenIndex = position962, tokenIndex962 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l964 + } + position++ + goto l962 + l964: + position, tokenIndex = position962, tokenIndex962 + { + position965, tokenIndex965 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('f') { + goto l966 + } + position++ + goto l965 + l966: + position, tokenIndex = position965, tokenIndex965 + if c := buffer[position]; c < rune('A') || c > rune('F') { + goto l957 + } + position++ + } + l965: + } + l962: + l960: + { + position961, tokenIndex961 := position, tokenIndex + { + position967, tokenIndex967 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l968 + } + position++ + goto l967 + l968: + position, tokenIndex = position967, tokenIndex967 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l969 + } + position++ + goto l967 + l969: + position, tokenIndex = position967, tokenIndex967 + { + position970, tokenIndex970 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('f') { + goto l971 + } + position++ + goto l970 + l971: + position, tokenIndex = position970, tokenIndex970 + if c := buffer[position]; c < rune('A') || c > rune('F') { + goto l961 + } + position++ + } + l970: + } + l967: + goto l960 + l961: + position, tokenIndex = position961, tokenIndex961 + } + goto l947 + l957: + position, tokenIndex = position947, tokenIndex947 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l941 + } + position++ + l972: + { + position973, tokenIndex973 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l973 + } + position++ + goto l972 + l973: + position, tokenIndex = position973, tokenIndex973 } } - l940: - add(ruleOffset, position935) + l947: + add(ruleOffset, position942) } return true - l934: - position, tokenIndex = position934, tokenIndex934 + l941: + position, tokenIndex = position941, tokenIndex941 return false }, /* 59 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - position967, tokenIndex967 := position, tokenIndex + position974, tokenIndex974 := position, tokenIndex { - position968 := position + position975 := position { - position971, tokenIndex971 := position, tokenIndex + position978, tokenIndex978 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l972 + goto l979 } position++ - goto l971 - l972: - position, tokenIndex = position971, tokenIndex971 + goto l978 + l979: + position, tokenIndex = position978, tokenIndex978 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l973 + goto l980 } position++ - goto l971 - l973: - position, tokenIndex = position971, tokenIndex971 + goto l978 + l980: + position, tokenIndex = position978, tokenIndex978 if buffer[position] != rune('@') { - goto l967 + goto l974 } position++ } - l971: - l969: + l978: + l976: { - position970, tokenIndex970 := position, tokenIndex + position977, tokenIndex977 := position, tokenIndex { - position974, tokenIndex974 := position, tokenIndex + position981, tokenIndex981 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l975 + goto l982 } position++ - goto l974 - l975: - position, tokenIndex = position974, tokenIndex974 + goto l981 + l982: + position, tokenIndex = position981, tokenIndex981 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l976 + goto l983 } position++ - goto l974 - l976: - position, tokenIndex = position974, tokenIndex974 + goto l981 + l983: + position, tokenIndex = position981, tokenIndex981 if buffer[position] != rune('@') { - goto l970 + goto l977 } position++ } - l974: - goto l969 - l970: - position, tokenIndex = position970, tokenIndex970 + l981: + goto l976 + l977: + position, tokenIndex = position977, tokenIndex977 } - add(ruleSection, position968) + add(ruleSection, position975) } return true - l967: - position, tokenIndex = position967, tokenIndex967 + l974: + position, tokenIndex = position974, tokenIndex974 return false }, /* 60 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ func() bool { - position977, tokenIndex977 := position, tokenIndex + position984, tokenIndex984 := position, tokenIndex { - position978 := position + position985 := position if buffer[position] != rune('%') { - goto l977 + goto l984 } position++ { - position979, tokenIndex979 := position, tokenIndex + position986, tokenIndex986 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l980 + goto l987 } position++ - goto l979 - l980: - position, tokenIndex = position979, tokenIndex979 + goto l986 + l987: + position, tokenIndex = position986, tokenIndex986 if buffer[position] != rune('s') { - goto l977 + goto l984 } position++ } - l979: + l986: if buffer[position] != rune('s') { - goto l977 + goto l984 } position++ if buffer[position] != rune(':') { - goto l977 + goto l984 } position++ - add(ruleSegmentRegister, position978) + add(ruleSegmentRegister, position985) } return true - l977: - position, tokenIndex = position977, tokenIndex977 + l984: + position, tokenIndex = position984, tokenIndex984 return false }, }
diff --git a/util/fipstools/delocate/testdata/aarch64-Basic/in.s b/util/fipstools/delocate/testdata/aarch64-Basic/in.s index 114ff4f..f259dc1 100644 --- a/util/fipstools/delocate/testdata/aarch64-Basic/in.s +++ b/util/fipstools/delocate/testdata/aarch64-Basic/in.s
@@ -81,6 +81,7 @@ add w0, w1, b2, sxth add w0, w1, b2, sxtw add w0, w1, b2, sxtx + movi v0.4s, #3, msl #8 // Aarch64 SVE2 added these forms: ld1d { z1.d }, p91/z, [x13, x11, lsl #3]
diff --git a/util/fipstools/delocate/testdata/aarch64-Basic/out.s b/util/fipstools/delocate/testdata/aarch64-Basic/out.s index d77695d..4a84704 100644 --- a/util/fipstools/delocate/testdata/aarch64-Basic/out.s +++ b/util/fipstools/delocate/testdata/aarch64-Basic/out.s
@@ -130,6 +130,7 @@ add w0, w1, b2, sxth add w0, w1, b2, sxtw add w0, w1, b2, sxtx + movi v0.4s, #3, msl #8 // Aarch64 SVE2 added these forms: ld1d { z1.d }, p91/z, [x13, x11, lsl #3]