delocate: Recognize msl as an ARMConstantTweak MOVI has a form that's tagged MSL: MOVI <Vd>.<T>, #<imm8>, MSL #<amount> Change-Id: Ib252966d46a890296aa429e7d6882ef45e8c40ab Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/77067 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: Bob Beck <bbe@google.com>
diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index 2112a33..078972e 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg
@@ -88,7 +88,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 b8b3fc9..0ff918c 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go
@@ -1,6 +1,6 @@ package main -// Code generated by /usr/local/google/home/davidben/go/bin/peg delocate.peg DO NOT EDIT. +// Code generated by peg delocate.peg DO NOT EDIT. import ( "fmt" @@ -5186,7 +5186,7 @@ position, tokenIndex = position587, tokenIndex587 return false }, - /* 47 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]))> */ + /* 47 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 { position629, tokenIndex629 := position, tokenIndex { @@ -5417,199 +5417,247 @@ l659: position, tokenIndex = position633, tokenIndex633 { - position666, tokenIndex666 := position, tokenIndex + position667, tokenIndex667 := position, tokenIndex if buffer[position] != rune('a') { - goto l667 + goto l668 } position++ - goto l666 - l667: - position, tokenIndex = position666, tokenIndex666 + goto l667 + l668: + position, tokenIndex = position667, tokenIndex667 if buffer[position] != rune('A') { + goto l666 + } + position++ + } + l667: + { + position669, tokenIndex669 := position, tokenIndex + if buffer[position] != rune('s') { + goto l670 + } + position++ + goto l669 + l670: + position, tokenIndex = position669, tokenIndex669 + if buffer[position] != rune('S') { + goto l666 + } + position++ + } + l669: + { + position671, tokenIndex671 := position, tokenIndex + if buffer[position] != rune('r') { + goto l672 + } + position++ + goto l671 + l672: + position, tokenIndex = position671, tokenIndex671 + if buffer[position] != rune('R') { + goto l666 + } + position++ + } + l671: + goto l633 + l666: + position, tokenIndex = position633, tokenIndex633 + { + position673, tokenIndex673 := position, tokenIndex + if buffer[position] != rune('m') { + goto l674 + } + position++ + goto l673 + l674: + position, tokenIndex = position673, tokenIndex673 + if buffer[position] != rune('M') { goto l632 } position++ } - l666: + l673: { - position668, tokenIndex668 := position, tokenIndex + position675, tokenIndex675 := position, tokenIndex if buffer[position] != rune('s') { - goto l669 + goto l676 } position++ - goto l668 - l669: - position, tokenIndex = position668, tokenIndex668 + goto l675 + l676: + position, tokenIndex = position675, tokenIndex675 if buffer[position] != rune('S') { goto l632 } position++ } - l668: + l675: { - position670, tokenIndex670 := position, tokenIndex - if buffer[position] != rune('r') { - goto l671 + position677, tokenIndex677 := position, tokenIndex + if buffer[position] != rune('l') { + goto l678 } position++ - goto l670 - l671: - position, tokenIndex = position670, tokenIndex670 - if buffer[position] != rune('R') { + goto l677 + l678: + position, tokenIndex = position677, tokenIndex677 + if buffer[position] != rune('L') { goto l632 } position++ } - l670: + l677: } l633: { - position672, tokenIndex672 := position, tokenIndex + position679, tokenIndex679 := position, tokenIndex if !_rules[ruleWS]() { - goto l672 + goto l679 } if buffer[position] != rune('#') { - goto l672 + goto l679 } position++ if !_rules[ruleOffset]() { - goto l672 + goto l679 } - goto l673 - l672: - position, tokenIndex = position672, tokenIndex672 + goto l680 + l679: + position, tokenIndex = position679, tokenIndex679 } - l673: + l680: goto l631 l632: position, tokenIndex = position631, tokenIndex631 { - position675, tokenIndex675 := position, tokenIndex + position682, tokenIndex682 := position, tokenIndex if buffer[position] != rune('m') { - goto l676 + goto l683 } position++ - goto l675 - l676: - position, tokenIndex = position675, tokenIndex675 + goto l682 + l683: + position, tokenIndex = position682, tokenIndex682 if buffer[position] != rune('M') { - goto l674 + goto l681 } position++ } - l675: + l682: { - position677, tokenIndex677 := position, tokenIndex + position684, tokenIndex684 := position, tokenIndex if buffer[position] != rune('u') { - goto l678 + goto l685 } position++ - goto l677 - l678: - position, tokenIndex = position677, tokenIndex677 + goto l684 + l685: + position, tokenIndex = position684, tokenIndex684 if buffer[position] != rune('U') { - goto l674 + goto l681 } position++ } - l677: + l684: { - position679, tokenIndex679 := position, tokenIndex + position686, tokenIndex686 := position, tokenIndex if buffer[position] != rune('l') { - goto l680 + goto l687 } position++ - goto l679 - l680: - position, tokenIndex = position679, tokenIndex679 + goto l686 + l687: + position, tokenIndex = position686, tokenIndex686 if buffer[position] != rune('L') { - goto l674 + goto l681 } position++ } - l679: + l686: if buffer[position] != rune(' ') { - goto l674 + goto l681 } position++ { - position681, tokenIndex681 := position, tokenIndex + position688, tokenIndex688 := position, tokenIndex if buffer[position] != rune('v') { - goto l682 + goto l689 } position++ - goto l681 - l682: - position, tokenIndex = position681, tokenIndex681 + goto l688 + l689: + position, tokenIndex = position688, tokenIndex688 if buffer[position] != rune('V') { - goto l674 + goto l681 } position++ } - l681: + l688: { - position683, tokenIndex683 := position, tokenIndex + position690, tokenIndex690 := position, tokenIndex if buffer[position] != rune('l') { - goto l684 + goto l691 } position++ - goto l683 - l684: - position, tokenIndex = position683, tokenIndex683 + goto l690 + l691: + position, tokenIndex = position690, tokenIndex690 if buffer[position] != rune('L') { - goto l674 + goto l681 } position++ } - l683: + l690: goto l631 - l674: + l681: position, tokenIndex = position631, tokenIndex631 { - position685, tokenIndex685 := position, tokenIndex + position692, tokenIndex692 := position, tokenIndex if buffer[position] != rune('m') { - goto l686 + goto l693 } position++ - goto l685 - l686: - position, tokenIndex = position685, tokenIndex685 + goto l692 + l693: + position, tokenIndex = position692, tokenIndex692 if buffer[position] != rune('M') { goto l629 } position++ } - l685: + l692: { - position687, tokenIndex687 := position, tokenIndex + position694, tokenIndex694 := position, tokenIndex if buffer[position] != rune('u') { - goto l688 + goto l695 } position++ - goto l687 - l688: - position, tokenIndex = position687, tokenIndex687 + goto l694 + l695: + position, tokenIndex = position694, tokenIndex694 if buffer[position] != rune('U') { goto l629 } position++ } - l687: + l694: { - position689, tokenIndex689 := position, tokenIndex + position696, tokenIndex696 := position, tokenIndex if buffer[position] != rune('l') { - goto l690 + goto l697 } position++ - goto l689 - l690: - position, tokenIndex = position689, tokenIndex689 + goto l696 + l697: + position, tokenIndex = position696, tokenIndex696 if buffer[position] != rune('L') { goto l629 } position++ } - l689: + l696: if buffer[position] != rune(' ') { goto l629 } @@ -5633,170 +5681,122 @@ }, /* 48 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 { - position691, tokenIndex691 := position, tokenIndex + position698, tokenIndex698 := position, tokenIndex { - position692 := position + position699 := position { - position693, tokenIndex693 := position, tokenIndex + position700, tokenIndex700 := position, tokenIndex { - position695, tokenIndex695 := position, tokenIndex + position702, tokenIndex702 := position, tokenIndex if buffer[position] != rune('s') { - goto l696 - } - position++ - goto l695 - l696: - position, tokenIndex = position695, tokenIndex695 - if buffer[position] != rune('S') { - goto l694 - } - position++ - } - l695: - { - position697, tokenIndex697 := position, tokenIndex - if buffer[position] != rune('p') { - goto l698 - } - position++ - goto l697 - l698: - position, tokenIndex = position697, tokenIndex697 - if buffer[position] != rune('P') { - goto l694 - } - position++ - } - l697: - goto l693 - l694: - position, tokenIndex = position693, tokenIndex693 - { - position700, tokenIndex700 := position, tokenIndex - if buffer[position] != rune('x') { - goto l701 - } - position++ - goto l700 - l701: - position, tokenIndex = position700, tokenIndex700 - if buffer[position] != rune('w') { - goto l702 - } - position++ - goto l700 - l702: - position, tokenIndex = position700, tokenIndex700 - if buffer[position] != rune('d') { goto l703 } position++ - goto l700 + goto l702 l703: - position, tokenIndex = position700, tokenIndex700 - if buffer[position] != rune('q') { - goto l704 + position, tokenIndex = position702, tokenIndex702 + if buffer[position] != rune('S') { + goto l701 } position++ - goto l700 - l704: - position, tokenIndex = position700, tokenIndex700 - if buffer[position] != rune('s') { + } + l702: + { + position704, tokenIndex704 := position, tokenIndex + if buffer[position] != rune('p') { goto l705 } position++ - goto l700 + goto l704 l705: - position, tokenIndex = position700, tokenIndex700 - if buffer[position] != rune('h') { - goto l706 - } - position++ - goto l700 - l706: - position, tokenIndex = position700, tokenIndex700 - if buffer[position] != rune('b') { - goto l699 + position, tokenIndex = position704, tokenIndex704 + if buffer[position] != rune('P') { + goto l701 } position++ } - l700: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l699 - } - position++ + l704: + goto l700 + l701: + position, tokenIndex = position700, tokenIndex700 { position707, tokenIndex707 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l707 + if buffer[position] != rune('x') { + goto l708 } position++ - goto l708 - l707: + goto l707 + l708: position, tokenIndex = position707, tokenIndex707 - } - l708: - goto l693 - l699: - position, tokenIndex = position693, tokenIndex693 - { - position710, tokenIndex710 := position, tokenIndex - if buffer[position] != rune('x') { + if buffer[position] != rune('w') { + goto l709 + } + position++ + goto l707 + l709: + position, tokenIndex = position707, tokenIndex707 + if buffer[position] != rune('d') { + goto l710 + } + position++ + goto l707 + l710: + position, tokenIndex = position707, tokenIndex707 + if buffer[position] != rune('q') { goto l711 } position++ - goto l710 + goto l707 l711: - position, tokenIndex = position710, tokenIndex710 - if buffer[position] != rune('X') { - goto l709 + position, tokenIndex = position707, tokenIndex707 + if buffer[position] != rune('s') { + goto l712 } position++ - } - l710: - { - position712, tokenIndex712 := position, tokenIndex - if buffer[position] != rune('z') { + goto l707 + l712: + position, tokenIndex = position707, tokenIndex707 + if buffer[position] != rune('h') { goto l713 } position++ - goto l712 + goto l707 l713: - position, tokenIndex = position712, tokenIndex712 - if buffer[position] != rune('Z') { - goto l709 + position, tokenIndex = position707, tokenIndex707 + if buffer[position] != rune('b') { + goto l706 } position++ } - l712: + l707: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l706 + } + position++ { position714, tokenIndex714 := position, tokenIndex - if buffer[position] != rune('r') { - goto l715 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l714 } position++ - goto l714 - l715: + goto l715 + l714: position, tokenIndex = position714, tokenIndex714 - if buffer[position] != rune('R') { - goto l709 - } - position++ } - l714: - goto l693 - l709: - position, tokenIndex = position693, tokenIndex693 + l715: + goto l700 + l706: + position, tokenIndex = position700, tokenIndex700 { position717, tokenIndex717 := position, tokenIndex - if buffer[position] != rune('w') { + if buffer[position] != rune('x') { goto l718 } position++ goto l717 l718: position, tokenIndex = position717, tokenIndex717 - if buffer[position] != rune('W') { + if buffer[position] != rune('X') { goto l716 } position++ @@ -5832,19 +5832,19 @@ position++ } l721: - goto l693 + goto l700 l716: - position, tokenIndex = position693, tokenIndex693 + position, tokenIndex = position700, tokenIndex700 { position724, tokenIndex724 := position, tokenIndex - if buffer[position] != rune('n') { + if buffer[position] != rune('w') { goto l725 } position++ goto l724 l725: position, tokenIndex = position724, tokenIndex724 - if buffer[position] != rune('N') { + if buffer[position] != rune('W') { goto l723 } position++ @@ -5867,480 +5867,476 @@ l726: { position728, tokenIndex728 := position, tokenIndex - if buffer[position] != rune('c') { + if buffer[position] != rune('r') { goto l729 } position++ goto l728 l729: position, tokenIndex = position728, tokenIndex728 - if buffer[position] != rune('C') { + if buffer[position] != rune('R') { goto l723 } position++ } l728: - { - position730, tokenIndex730 := position, tokenIndex - if buffer[position] != rune('v') { - goto l731 - } - position++ - goto l730 - l731: - position, tokenIndex = position730, tokenIndex730 - if buffer[position] != rune('V') { - goto l723 - } - position++ - } - l730: - goto l693 + goto l700 l723: - position, tokenIndex = position693, tokenIndex693 - if !_rules[ruleSVE2PredicateRegister]() { - goto l732 + position, tokenIndex = position700, tokenIndex700 + { + position731, tokenIndex731 := position, tokenIndex + if buffer[position] != rune('n') { + goto l732 + } + position++ + goto l731 + l732: + position, tokenIndex = position731, tokenIndex731 + if buffer[position] != rune('N') { + goto l730 + } + position++ } - goto l693 - l732: - position, tokenIndex = position693, tokenIndex693 - if !_rules[ruleARMVectorRegister]() { + l731: + { + position733, tokenIndex733 := position, tokenIndex + if buffer[position] != rune('z') { + goto l734 + } + position++ goto l733 + l734: + position, tokenIndex = position733, tokenIndex733 + if buffer[position] != rune('Z') { + goto l730 + } + position++ } - goto l693 l733: - position, tokenIndex = position693, tokenIndex693 - if !_rules[ruleSVE2SpecialValue]() { - goto l734 + { + position735, tokenIndex735 := position, tokenIndex + if buffer[position] != rune('c') { + goto l736 + } + position++ + goto l735 + l736: + position, tokenIndex = position735, tokenIndex735 + if buffer[position] != rune('C') { + goto l730 + } + position++ } - goto l693 - l734: - position, tokenIndex = position693, tokenIndex693 + l735: + { + position737, tokenIndex737 := position, tokenIndex + if buffer[position] != rune('v') { + goto l738 + } + position++ + goto l737 + l738: + position, tokenIndex = position737, tokenIndex737 + if buffer[position] != rune('V') { + goto l730 + } + position++ + } + l737: + goto l700 + l730: + position, tokenIndex = position700, tokenIndex700 + if !_rules[ruleSVE2PredicateRegister]() { + goto l739 + } + goto l700 + l739: + position, tokenIndex = position700, tokenIndex700 + if !_rules[ruleARMVectorRegister]() { + goto l740 + } + goto l700 + l740: + position, tokenIndex = position700, tokenIndex700 + if !_rules[ruleSVE2SpecialValue]() { + goto l741 + } + goto l700 + l741: + position, tokenIndex = position700, tokenIndex700 if buffer[position] != rune('{') { - goto l691 + goto l698 } position++ { - position735, tokenIndex735 := position, tokenIndex + position742, tokenIndex742 := position, tokenIndex if !_rules[ruleWS]() { - goto l735 + goto l742 } - goto l736 - l735: - position, tokenIndex = position735, tokenIndex735 + goto l743 + l742: + position, tokenIndex = position742, tokenIndex742 } - l736: + l743: if !_rules[ruleARMVectorRegister]() { - goto l691 + goto l698 } - l737: + l744: { - position738, tokenIndex738 := position, tokenIndex + position745, tokenIndex745 := position, tokenIndex if buffer[position] != rune(',') { - goto l738 + goto l745 } position++ { - position739, tokenIndex739 := position, tokenIndex + position746, tokenIndex746 := position, tokenIndex if !_rules[ruleWS]() { - goto l739 + goto l746 } - goto l740 - l739: - position, tokenIndex = position739, tokenIndex739 + goto l747 + l746: + position, tokenIndex = position746, tokenIndex746 } - l740: + l747: if !_rules[ruleARMVectorRegister]() { - goto l738 + goto l745 } - goto l737 - l738: - position, tokenIndex = position738, tokenIndex738 + goto l744 + l745: + position, tokenIndex = position745, tokenIndex745 } { - position741, tokenIndex741 := position, tokenIndex + position748, tokenIndex748 := position, tokenIndex if !_rules[ruleWS]() { - goto l741 + goto l748 } - goto l742 - l741: - position, tokenIndex = position741, tokenIndex741 + goto l749 + l748: + position, tokenIndex = position748, tokenIndex748 } - l742: + l749: if buffer[position] != rune('}') { - goto l691 + goto l698 } position++ { - position743, tokenIndex743 := position, tokenIndex + position750, tokenIndex750 := position, tokenIndex if buffer[position] != rune('[') { - goto l743 + goto l750 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l743 + goto l750 } position++ { - position745, tokenIndex745 := position, tokenIndex + position752, tokenIndex752 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l745 + goto l752 } position++ - goto l746 - l745: - position, tokenIndex = position745, tokenIndex745 + goto l753 + l752: + position, tokenIndex = position752, tokenIndex752 } - l746: + l753: if buffer[position] != rune(']') { - goto l743 + goto l750 } position++ - goto l744 - l743: - position, tokenIndex = position743, tokenIndex743 + goto l751 + l750: + position, tokenIndex = position750, tokenIndex750 } - l744: + l751: } - l693: - add(ruleARMRegister, position692) + l700: + add(ruleARMRegister, position699) } return true - l691: - position, tokenIndex = position691, tokenIndex691 + l698: + position, tokenIndex = position698, tokenIndex698 return false }, /* 49 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 { - position747, tokenIndex747 := position, tokenIndex + position754, tokenIndex754 := position, tokenIndex { - position748 := position + position755 := position { - position749, tokenIndex749 := position, tokenIndex + position756, tokenIndex756 := position, tokenIndex if buffer[position] != rune('p') { - goto l750 + goto l757 } position++ - goto l749 - l750: - position, tokenIndex = position749, tokenIndex749 + goto l756 + l757: + position, tokenIndex = position756, tokenIndex756 if buffer[position] != rune('v') { - goto l751 + goto l758 } position++ - goto l749 - l751: - position, tokenIndex = position749, tokenIndex749 + goto l756 + l758: + position, tokenIndex = position756, tokenIndex756 if buffer[position] != rune('z') { - goto l747 + goto l754 } position++ } - l749: + l756: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l747 + goto l754 } position++ { - position752, tokenIndex752 := position, tokenIndex + position759, tokenIndex759 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l752 + goto l759 } position++ - goto l753 - l752: - position, tokenIndex = position752, tokenIndex752 + goto l760 + l759: + position, tokenIndex = position759, tokenIndex759 } - l753: - { - position754, tokenIndex754 := position, tokenIndex - { - position755, tokenIndex755 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l756 - } - position++ - goto l755 - l756: - position, tokenIndex = position755, tokenIndex755 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l757 - } - position++ - goto l755 - l757: - position, tokenIndex = position755, tokenIndex755 - { - position759, tokenIndex759 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l760 - } - position++ - goto l759 - l760: - position, tokenIndex = position759, tokenIndex759 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l758 - } - position++ - } - l759: - goto l755 - l758: - position, tokenIndex = position755, tokenIndex755 - if buffer[position] != rune('_') { - goto l754 - } - position++ - } - l755: - goto l747 - l754: - position, tokenIndex = position754, tokenIndex754 - } + l760: { position761, tokenIndex761 := position, tokenIndex - if buffer[position] != rune('.') { - goto l761 - } - position++ - l763: { - position764, tokenIndex764 := position, tokenIndex + position762, tokenIndex762 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l763 + } + position++ + goto l762 + l763: + position, tokenIndex = position762, tokenIndex762 if c := buffer[position]; c < rune('0') || c > rune('9') { goto l764 } position++ - goto l763 + goto l762 l764: - position, tokenIndex = position764, tokenIndex764 - } - { - position765, tokenIndex765 := position, tokenIndex - if buffer[position] != rune('b') { + position, tokenIndex = position762, tokenIndex762 + { + position766, tokenIndex766 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l767 + } + position++ goto l766 + l767: + position, tokenIndex = position766, tokenIndex766 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l765 + } + position++ } - position++ - goto l765 l766: - position, tokenIndex = position765, tokenIndex765 - if buffer[position] != rune('s') { - goto l767 - } - position++ - goto l765 - l767: - position, tokenIndex = position765, tokenIndex765 - if buffer[position] != rune('d') { - goto l768 - } - position++ - goto l765 - l768: - position, tokenIndex = position765, tokenIndex765 - if buffer[position] != rune('h') { - goto l769 - } - position++ - goto l765 - l769: - position, tokenIndex = position765, tokenIndex765 - if buffer[position] != rune('q') { + goto l762 + l765: + position, tokenIndex = position762, tokenIndex762 + if buffer[position] != rune('_') { goto l761 } position++ } - l765: - { - position770, tokenIndex770 := position, tokenIndex - if buffer[position] != rune('[') { - goto l770 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l770 - } - position++ - { - position772, tokenIndex772 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l772 - } - position++ - goto l773 - l772: - position, tokenIndex = position772, tokenIndex772 - } - l773: - if buffer[position] != rune(']') { - goto l770 - } - position++ - goto l771 - l770: - position, tokenIndex = position770, tokenIndex770 - } - l771: - goto l762 + l762: + goto l754 l761: position, tokenIndex = position761, tokenIndex761 } - l762: - add(ruleARMVectorRegister, position748) + { + position768, tokenIndex768 := position, tokenIndex + if buffer[position] != rune('.') { + goto l768 + } + position++ + l770: + { + position771, tokenIndex771 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l771 + } + position++ + goto l770 + l771: + position, tokenIndex = position771, tokenIndex771 + } + { + position772, tokenIndex772 := position, tokenIndex + if buffer[position] != rune('b') { + goto l773 + } + position++ + goto l772 + l773: + position, tokenIndex = position772, tokenIndex772 + if buffer[position] != rune('s') { + goto l774 + } + position++ + goto l772 + l774: + position, tokenIndex = position772, tokenIndex772 + if buffer[position] != rune('d') { + goto l775 + } + position++ + goto l772 + l775: + position, tokenIndex = position772, tokenIndex772 + if buffer[position] != rune('h') { + goto l776 + } + position++ + goto l772 + l776: + position, tokenIndex = position772, tokenIndex772 + if buffer[position] != rune('q') { + goto l768 + } + position++ + } + l772: + { + position777, tokenIndex777 := position, tokenIndex + if buffer[position] != rune('[') { + goto l777 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l777 + } + position++ + { + position779, tokenIndex779 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l779 + } + position++ + goto l780 + l779: + position, tokenIndex = position779, tokenIndex779 + } + l780: + if buffer[position] != rune(']') { + goto l777 + } + position++ + goto l778 + l777: + position, tokenIndex = position777, tokenIndex777 + } + l778: + goto l769 + l768: + position, tokenIndex = position768, tokenIndex768 + } + l769: + add(ruleARMVectorRegister, position755) } return true - l747: - position, tokenIndex = position747, tokenIndex747 + l754: + position, tokenIndex = position754, tokenIndex754 return false }, /* 50 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / ('z' / 'Z')))> */ func() bool { - position774, tokenIndex774 := position, tokenIndex + position781, tokenIndex781 := position, tokenIndex { - position775 := position + position782 := position { - position776, tokenIndex776 := position, tokenIndex + position783, tokenIndex783 := position, tokenIndex if buffer[position] != rune('p') { - goto l777 + goto l784 } position++ - goto l776 - l777: - position, tokenIndex = position776, tokenIndex776 + goto l783 + l784: + position, tokenIndex = position783, tokenIndex783 if buffer[position] != rune('P') { - goto l774 - } - position++ - } - l776: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l774 - } - position++ - { - position778, tokenIndex778 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l778 - } - position++ - goto l779 - l778: - position, tokenIndex = position778, tokenIndex778 - } - l779: - if buffer[position] != rune('/') { - goto l774 - } - position++ - { - position780, tokenIndex780 := position, tokenIndex - if buffer[position] != rune('m') { goto l781 } position++ - goto l780 - l781: - position, tokenIndex = position780, tokenIndex780 - if buffer[position] != rune('M') { - goto l782 + } + l783: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l781 + } + position++ + { + position785, tokenIndex785 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l785 } position++ - goto l780 - l782: - position, tokenIndex = position780, tokenIndex780 - { - position783, tokenIndex783 := position, tokenIndex - if buffer[position] != rune('z') { - goto l784 - } - position++ - goto l783 - l784: - position, tokenIndex = position783, tokenIndex783 - if buffer[position] != rune('Z') { - goto l774 - } - position++ - } - l783: + goto l786 + l785: + position, tokenIndex = position785, tokenIndex785 } - l780: - add(ruleSVE2PredicateRegister, position775) - } - return true - l774: - position, tokenIndex = position774, tokenIndex774 - return false - }, - /* 51 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 { - position785, tokenIndex785 := position, tokenIndex - { - position786 := position + l786: + if buffer[position] != rune('/') { + goto l781 + } + position++ { position787, tokenIndex787 := position, tokenIndex - { - position789, tokenIndex789 := position, tokenIndex - if buffer[position] != rune('p') { - goto l790 - } - position++ - goto l789 - l790: - position, tokenIndex = position789, tokenIndex789 - if buffer[position] != rune('P') { - goto l788 - } - position++ - } - l789: - { - position791, tokenIndex791 := position, tokenIndex - if buffer[position] != rune('o') { - goto l792 - } - position++ - goto l791 - l792: - position, tokenIndex = position791, tokenIndex791 - if buffer[position] != rune('O') { - goto l788 - } - position++ - } - l791: - { - position793, tokenIndex793 := position, tokenIndex - if buffer[position] != rune('w') { - goto l794 - } - position++ - goto l793 - l794: - position, tokenIndex = position793, tokenIndex793 - if buffer[position] != rune('W') { - goto l788 - } - position++ - } - l793: - if buffer[position] != rune('2') { + if buffer[position] != rune('m') { goto l788 } position++ goto l787 l788: position, tokenIndex = position787, tokenIndex787 + if buffer[position] != rune('M') { + goto l789 + } + position++ + goto l787 + l789: + position, tokenIndex = position787, tokenIndex787 + { + position790, tokenIndex790 := position, tokenIndex + if buffer[position] != rune('z') { + goto l791 + } + position++ + goto l790 + l791: + position, tokenIndex = position790, tokenIndex790 + if buffer[position] != rune('Z') { + goto l781 + } + position++ + } + l790: + } + l787: + add(ruleSVE2PredicateRegister, position782) + } + return true + l781: + position, tokenIndex = position781, tokenIndex781 + return false + }, + /* 51 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 { + position792, tokenIndex792 := position, tokenIndex + { + position793 := position + { + position794, tokenIndex794 := position, tokenIndex { position796, tokenIndex796 := position, tokenIndex - if buffer[position] != rune('v') { + if buffer[position] != rune('p') { goto l797 } position++ goto l796 l797: position, tokenIndex = position796, tokenIndex796 - if buffer[position] != rune('V') { + if buffer[position] != rune('P') { goto l795 } position++ @@ -6348,14 +6344,14 @@ l796: { position798, tokenIndex798 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('o') { goto l799 } position++ goto l798 l799: position, tokenIndex = position798, tokenIndex798 - if buffer[position] != rune('L') { + if buffer[position] != rune('O') { goto l795 } position++ @@ -6363,313 +6359,305 @@ l798: { position800, tokenIndex800 := position, tokenIndex - if buffer[position] != rune('1') { + if buffer[position] != rune('w') { goto l801 } position++ goto l800 l801: position, tokenIndex = position800, tokenIndex800 - if buffer[position] != rune('2') { - goto l802 - } - position++ - goto l800 - l802: - position, tokenIndex = position800, tokenIndex800 - if buffer[position] != rune('3') { - goto l803 - } - position++ - goto l800 - l803: - position, tokenIndex = position800, tokenIndex800 - if buffer[position] != rune('4') { - goto l804 - } - position++ - goto l800 - l804: - position, tokenIndex = position800, tokenIndex800 - if buffer[position] != rune('5') { - goto l805 - } - position++ - goto l800 - l805: - position, tokenIndex = position800, tokenIndex800 - if buffer[position] != rune('6') { - goto l806 - } - position++ - goto l800 - l806: - position, tokenIndex = position800, tokenIndex800 - if buffer[position] != rune('7') { - goto l807 - } - position++ - goto l800 - l807: - position, tokenIndex = position800, tokenIndex800 - if buffer[position] != rune('8') { + if buffer[position] != rune('W') { goto l795 } position++ } l800: + if buffer[position] != rune('2') { + goto l795 + } + position++ + goto l794 + l795: + position, tokenIndex = position794, tokenIndex794 { - position808, tokenIndex808 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + position803, tokenIndex803 := position, tokenIndex + if buffer[position] != rune('v') { + goto l804 + } + position++ + goto l803 + l804: + position, tokenIndex = position803, tokenIndex803 + if buffer[position] != rune('V') { + goto l802 + } + position++ + } + l803: + { + position805, tokenIndex805 := position, tokenIndex + if buffer[position] != rune('l') { + goto l806 + } + position++ + goto l805 + l806: + position, tokenIndex = position805, tokenIndex805 + if buffer[position] != rune('L') { + goto l802 + } + position++ + } + l805: + { + position807, tokenIndex807 := position, tokenIndex + if buffer[position] != rune('1') { goto l808 } position++ - goto l795 + goto l807 l808: - position, tokenIndex = position808, tokenIndex808 - } - goto l787 - l795: - position, tokenIndex = position787, tokenIndex787 - { - position810, tokenIndex810 := position, tokenIndex - if buffer[position] != rune('v') { + position, tokenIndex = position807, tokenIndex807 + if buffer[position] != rune('2') { + goto l809 + } + position++ + goto l807 + l809: + position, tokenIndex = position807, tokenIndex807 + if buffer[position] != rune('3') { + goto l810 + } + position++ + goto l807 + l810: + position, tokenIndex = position807, tokenIndex807 + if buffer[position] != rune('4') { goto l811 } position++ - goto l810 + goto l807 l811: - position, tokenIndex = position810, tokenIndex810 - if buffer[position] != rune('V') { - goto l809 + position, tokenIndex = position807, tokenIndex807 + if buffer[position] != rune('5') { + goto l812 } position++ - } - l810: - { - position812, tokenIndex812 := position, tokenIndex - if buffer[position] != rune('l') { + goto l807 + l812: + position, tokenIndex = position807, tokenIndex807 + if buffer[position] != rune('6') { goto l813 } position++ - goto l812 + goto l807 l813: - position, tokenIndex = position812, tokenIndex812 - if buffer[position] != rune('L') { - goto l809 - } - position++ - } - l812: - if buffer[position] != rune('1') { - goto l809 - } - position++ - if buffer[position] != rune('6') { - goto l809 - } - position++ - goto l787 - l809: - position, tokenIndex = position787, tokenIndex787 - { - position815, tokenIndex815 := position, tokenIndex - if buffer[position] != rune('v') { - goto l816 - } - position++ - goto l815 - l816: - position, tokenIndex = position815, tokenIndex815 - if buffer[position] != rune('V') { + position, tokenIndex = position807, tokenIndex807 + if buffer[position] != rune('7') { goto l814 } position++ + goto l807 + l814: + position, tokenIndex = position807, tokenIndex807 + if buffer[position] != rune('8') { + goto l802 + } + position++ } - l815: + l807: + { + position815, tokenIndex815 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l815 + } + position++ + goto l802 + l815: + position, tokenIndex = position815, tokenIndex815 + } + goto l794 + l802: + position, tokenIndex = position794, tokenIndex794 { position817, tokenIndex817 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l818 } position++ goto l817 l818: position, tokenIndex = position817, tokenIndex817 - if buffer[position] != rune('L') { - goto l814 + if buffer[position] != rune('V') { + goto l816 } position++ } l817: - if buffer[position] != rune('3') { - goto l814 - } - position++ - if buffer[position] != rune('2') { - goto l814 - } - position++ - goto l787 - l814: - position, tokenIndex = position787, tokenIndex787 { - position820, tokenIndex820 := position, tokenIndex - if buffer[position] != rune('v') { - goto l821 + position819, tokenIndex819 := position, tokenIndex + if buffer[position] != rune('l') { + goto l820 } position++ - goto l820 - l821: - position, tokenIndex = position820, tokenIndex820 - if buffer[position] != rune('V') { - goto l819 + goto l819 + l820: + position, tokenIndex = position819, tokenIndex819 + if buffer[position] != rune('L') { + goto l816 } position++ } - l820: + l819: + if buffer[position] != rune('1') { + goto l816 + } + position++ + if buffer[position] != rune('6') { + goto l816 + } + position++ + goto l794 + l816: + position, tokenIndex = position794, tokenIndex794 { position822, tokenIndex822 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l823 } position++ goto l822 l823: position, tokenIndex = position822, tokenIndex822 - if buffer[position] != rune('L') { - goto l819 + if buffer[position] != rune('V') { + goto l821 } position++ } l822: - if buffer[position] != rune('6') { - goto l819 - } - position++ - if buffer[position] != rune('4') { - goto l819 - } - position++ - goto l787 - l819: - position, tokenIndex = position787, tokenIndex787 { - position825, tokenIndex825 := position, tokenIndex - if buffer[position] != rune('v') { - goto l826 + position824, tokenIndex824 := position, tokenIndex + if buffer[position] != rune('l') { + goto l825 } position++ - goto l825 - l826: - position, tokenIndex = position825, tokenIndex825 - if buffer[position] != rune('V') { - goto l824 + goto l824 + l825: + position, tokenIndex = position824, tokenIndex824 + if buffer[position] != rune('L') { + goto l821 } position++ } - l825: + l824: + if buffer[position] != rune('3') { + goto l821 + } + position++ + if buffer[position] != rune('2') { + goto l821 + } + position++ + goto l794 + l821: + position, tokenIndex = position794, tokenIndex794 { position827, tokenIndex827 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l828 } position++ goto l827 l828: position, tokenIndex = position827, tokenIndex827 - if buffer[position] != rune('L') { - goto l824 + if buffer[position] != rune('V') { + goto l826 } position++ } l827: - if buffer[position] != rune('1') { - goto l824 - } - position++ - if buffer[position] != rune('2') { - goto l824 - } - position++ - if buffer[position] != rune('8') { - goto l824 - } - position++ - goto l787 - l824: - position, tokenIndex = position787, tokenIndex787 { - position830, tokenIndex830 := position, tokenIndex - if buffer[position] != rune('v') { - goto l831 + position829, tokenIndex829 := position, tokenIndex + if buffer[position] != rune('l') { + goto l830 } position++ - goto l830 - l831: - position, tokenIndex = position830, tokenIndex830 - if buffer[position] != rune('V') { - goto l829 + goto l829 + l830: + position, tokenIndex = position829, tokenIndex829 + if buffer[position] != rune('L') { + goto l826 } position++ } - l830: + l829: + if buffer[position] != rune('6') { + goto l826 + } + position++ + if buffer[position] != rune('4') { + goto l826 + } + position++ + goto l794 + l826: + position, tokenIndex = position794, tokenIndex794 { position832, tokenIndex832 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l833 } position++ goto l832 l833: position, tokenIndex = position832, tokenIndex832 - if buffer[position] != rune('L') { - goto l829 + if buffer[position] != rune('V') { + goto l831 } position++ } l832: - if buffer[position] != rune('2') { - goto l829 - } - position++ - if buffer[position] != rune('5') { - goto l829 - } - position++ - if buffer[position] != rune('6') { - goto l829 - } - position++ - goto l787 - l829: - position, tokenIndex = position787, tokenIndex787 { - position835, tokenIndex835 := position, tokenIndex - if buffer[position] != rune('m') { - goto l836 + position834, tokenIndex834 := position, tokenIndex + if buffer[position] != rune('l') { + goto l835 } position++ - goto l835 - l836: - position, tokenIndex = position835, tokenIndex835 - if buffer[position] != rune('M') { - goto l834 + goto l834 + l835: + position, tokenIndex = position834, tokenIndex834 + if buffer[position] != rune('L') { + goto l831 } position++ } - l835: + l834: + if buffer[position] != rune('1') { + goto l831 + } + position++ + if buffer[position] != rune('2') { + goto l831 + } + position++ + if buffer[position] != rune('8') { + goto l831 + } + position++ + goto l794 + l831: + position, tokenIndex = position794, tokenIndex794 { position837, tokenIndex837 := position, tokenIndex - if buffer[position] != rune('u') { + if buffer[position] != rune('v') { goto l838 } position++ goto l837 l838: position, tokenIndex = position837, tokenIndex837 - if buffer[position] != rune('U') { - goto l834 + if buffer[position] != rune('V') { + goto l836 } position++ } @@ -6684,18 +6672,26 @@ l840: position, tokenIndex = position839, tokenIndex839 if buffer[position] != rune('L') { - goto l834 + goto l836 } position++ } l839: - if buffer[position] != rune('3') { - goto l834 + if buffer[position] != rune('2') { + goto l836 } position++ - goto l787 - l834: - position, tokenIndex = position787, tokenIndex787 + if buffer[position] != rune('5') { + goto l836 + } + position++ + if buffer[position] != rune('6') { + goto l836 + } + position++ + goto l794 + l836: + position, tokenIndex = position794, tokenIndex794 { position842, tokenIndex842 := position, tokenIndex if buffer[position] != rune('m') { @@ -6741,1140 +6737,1192 @@ position++ } l846: - if buffer[position] != rune('4') { + if buffer[position] != rune('3') { goto l841 } position++ - goto l787 + goto l794 l841: - position, tokenIndex = position787, tokenIndex787 + position, tokenIndex = position794, tokenIndex794 { - position848, tokenIndex848 := position, tokenIndex - if buffer[position] != rune('a') { - goto l849 + position849, tokenIndex849 := position, tokenIndex + if buffer[position] != rune('m') { + goto l850 } position++ + goto l849 + l850: + position, tokenIndex = position849, tokenIndex849 + if buffer[position] != rune('M') { + goto l848 + } + position++ + } + l849: + { + position851, tokenIndex851 := position, tokenIndex + if buffer[position] != rune('u') { + goto l852 + } + position++ + goto l851 + l852: + position, tokenIndex = position851, tokenIndex851 + if buffer[position] != rune('U') { + goto l848 + } + position++ + } + l851: + { + position853, tokenIndex853 := position, tokenIndex + if buffer[position] != rune('l') { + goto l854 + } + position++ + goto l853 + l854: + position, tokenIndex = position853, tokenIndex853 + if buffer[position] != rune('L') { + goto l848 + } + position++ + } + l853: + if buffer[position] != rune('4') { goto l848 - l849: - position, tokenIndex = position848, tokenIndex848 - if buffer[position] != rune('A') { - goto l785 - } - position++ } + position++ + goto l794 l848: - { - position850, tokenIndex850 := position, tokenIndex - if buffer[position] != rune('l') { - goto l851 - } - position++ - goto l850 - l851: - position, tokenIndex = position850, tokenIndex850 - if buffer[position] != rune('L') { - goto l785 - } - position++ - } - l850: - { - position852, tokenIndex852 := position, tokenIndex - if buffer[position] != rune('l') { - goto l853 - } - position++ - goto l852 - l853: - position, tokenIndex = position852, tokenIndex852 - if buffer[position] != rune('L') { - goto l785 - } - position++ - } - l852: - } - l787: - { - position854, tokenIndex854 := position, tokenIndex + position, tokenIndex = position794, tokenIndex794 { position855, tokenIndex855 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + if buffer[position] != rune('a') { goto l856 } position++ goto l855 l856: position, tokenIndex = position855, tokenIndex855 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l857 - } - position++ - goto l855 - l857: - position, tokenIndex = position855, tokenIndex855 - { - position859, tokenIndex859 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l860 - } - position++ - goto l859 - l860: - position, tokenIndex = position859, tokenIndex859 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l858 - } - position++ - } - l859: - goto l855 - l858: - position, tokenIndex = position855, tokenIndex855 - if buffer[position] != rune('_') { - goto l854 + if buffer[position] != rune('A') { + goto l792 } position++ } l855: - goto l785 - l854: - position, tokenIndex = position854, tokenIndex854 + { + position857, tokenIndex857 := position, tokenIndex + if buffer[position] != rune('l') { + goto l858 + } + position++ + goto l857 + l858: + position, tokenIndex = position857, tokenIndex857 + if buffer[position] != rune('L') { + goto l792 + } + position++ + } + l857: + { + position859, tokenIndex859 := position, tokenIndex + if buffer[position] != rune('l') { + goto l860 + } + position++ + goto l859 + l860: + position, tokenIndex = position859, tokenIndex859 + if buffer[position] != rune('L') { + goto l792 + } + position++ + } + l859: } - add(ruleSVE2SpecialValue, position786) + l794: + { + position861, tokenIndex861 := position, tokenIndex + { + position862, tokenIndex862 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l863 + } + position++ + goto l862 + l863: + position, tokenIndex = position862, tokenIndex862 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l864 + } + position++ + goto l862 + l864: + position, tokenIndex = position862, tokenIndex862 + { + position866, tokenIndex866 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l867 + } + position++ + goto l866 + l867: + position, tokenIndex = position866, tokenIndex866 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l865 + } + position++ + } + l866: + goto l862 + l865: + position, tokenIndex = position862, tokenIndex862 + if buffer[position] != rune('_') { + goto l861 + } + position++ + } + l862: + goto l792 + l861: + position, tokenIndex = position861, tokenIndex861 + } + add(ruleSVE2SpecialValue, position793) } return true - l785: - position, tokenIndex = position785, tokenIndex785 + l792: + position, tokenIndex = position792, tokenIndex792 return false }, /* 52 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - position861, tokenIndex861 := position, tokenIndex + position868, tokenIndex868 := position, tokenIndex { - position862 := position + position869 := position { - position863, tokenIndex863 := position, tokenIndex + position870, tokenIndex870 := position, tokenIndex if !_rules[ruleSymbolRef]() { - goto l864 - } - if !_rules[ruleBaseIndexScale]() { - goto l864 - } - goto l863 - l864: - position, tokenIndex = position863, tokenIndex863 - if !_rules[ruleSymbolRef]() { - goto l865 - } - goto l863 - l865: - position, tokenIndex = position863, tokenIndex863 - if !_rules[ruleLow12BitsSymbolRef]() { - goto l866 - } - goto l863 - l866: - position, tokenIndex = position863, tokenIndex863 - l868: - { - position869, tokenIndex869 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l869 - } - goto l868 - l869: - position, tokenIndex = position869, tokenIndex869 - } - if !_rules[ruleBaseIndexScale]() { - goto l867 - } - goto l863 - l867: - position, tokenIndex = position863, tokenIndex863 - if !_rules[ruleSegmentRegister]() { - goto l870 - } - if !_rules[ruleOffset]() { - goto l870 - } - if !_rules[ruleBaseIndexScale]() { - goto l870 - } - goto l863 - l870: - position, tokenIndex = position863, tokenIndex863 - if !_rules[ruleSegmentRegister]() { goto l871 } if !_rules[ruleBaseIndexScale]() { goto l871 } - goto l863 + goto l870 l871: - position, tokenIndex = position863, tokenIndex863 - if !_rules[ruleSegmentRegister]() { + position, tokenIndex = position870, tokenIndex870 + if !_rules[ruleSymbolRef]() { goto l872 } - if !_rules[ruleOffset]() { - goto l872 - } - goto l863 + goto l870 l872: - position, tokenIndex = position863, tokenIndex863 - if !_rules[ruleARMBaseIndexScale]() { + position, tokenIndex = position870, tokenIndex870 + if !_rules[ruleLow12BitsSymbolRef]() { goto l873 } - goto l863 + goto l870 l873: - position, tokenIndex = position863, tokenIndex863 + position, tokenIndex = position870, tokenIndex870 + l875: + { + position876, tokenIndex876 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l876 + } + goto l875 + l876: + position, tokenIndex = position876, tokenIndex876 + } if !_rules[ruleBaseIndexScale]() { - goto l861 + goto l874 + } + goto l870 + l874: + position, tokenIndex = position870, tokenIndex870 + if !_rules[ruleSegmentRegister]() { + goto l877 + } + if !_rules[ruleOffset]() { + goto l877 + } + if !_rules[ruleBaseIndexScale]() { + goto l877 + } + goto l870 + l877: + position, tokenIndex = position870, tokenIndex870 + if !_rules[ruleSegmentRegister]() { + goto l878 + } + if !_rules[ruleBaseIndexScale]() { + goto l878 + } + goto l870 + l878: + position, tokenIndex = position870, tokenIndex870 + if !_rules[ruleSegmentRegister]() { + goto l879 + } + if !_rules[ruleOffset]() { + goto l879 + } + goto l870 + l879: + position, tokenIndex = position870, tokenIndex870 + if !_rules[ruleARMBaseIndexScale]() { + goto l880 + } + goto l870 + l880: + position, tokenIndex = position870, tokenIndex870 + if !_rules[ruleBaseIndexScale]() { + goto l868 } } - l863: - add(ruleMemoryRef, position862) + l870: + add(ruleMemoryRef, position869) } return true - l861: - position, tokenIndex = position861, tokenIndex861 + l868: + position, tokenIndex = position868, tokenIndex868 return false }, /* 53 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ func() bool { - position874, tokenIndex874 := position, tokenIndex + position881, tokenIndex881 := position, tokenIndex { - position875 := position - { - position876, tokenIndex876 := position, tokenIndex - l878: - { - position879, tokenIndex879 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l879 - } - goto l878 - l879: - position, tokenIndex = position879, tokenIndex879 - } - if buffer[position] != rune('+') { - goto l876 - } - position++ - goto l877 - l876: - position, tokenIndex = position876, tokenIndex876 - } - l877: - { - position880, tokenIndex880 := position, tokenIndex - if !_rules[ruleLocalSymbol]() { - goto l881 - } - goto l880 - l881: - position, tokenIndex = position880, tokenIndex880 - if !_rules[ruleSymbolName]() { - goto l874 - } - } - l880: - l882: + position882 := position { position883, tokenIndex883 := position, tokenIndex - if !_rules[ruleOffset]() { + l885: + { + position886, tokenIndex886 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l886 + } + goto l885 + l886: + position, tokenIndex = position886, tokenIndex886 + } + if buffer[position] != rune('+') { goto l883 } - goto l882 + position++ + goto l884 l883: position, tokenIndex = position883, tokenIndex883 } + l884: { - position884, tokenIndex884 := position, tokenIndex + position887, tokenIndex887 := position, tokenIndex + if !_rules[ruleLocalSymbol]() { + goto l888 + } + goto l887 + l888: + position, tokenIndex = position887, tokenIndex887 + if !_rules[ruleSymbolName]() { + goto l881 + } + } + l887: + l889: + { + position890, tokenIndex890 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l890 + } + goto l889 + l890: + position, tokenIndex = position890, tokenIndex890 + } + { + position891, tokenIndex891 := position, tokenIndex if buffer[position] != rune('@') { - goto l884 + goto l891 } position++ if !_rules[ruleSection]() { - goto l884 + goto l891 } - l886: + l893: { - position887, tokenIndex887 := position, tokenIndex + position894, tokenIndex894 := position, tokenIndex if !_rules[ruleOffset]() { - goto l887 + goto l894 } - goto l886 - l887: - position, tokenIndex = position887, tokenIndex887 + goto l893 + l894: + position, tokenIndex = position894, tokenIndex894 } - goto l885 - l884: - position, tokenIndex = position884, tokenIndex884 + goto l892 + l891: + position, tokenIndex = position891, tokenIndex891 } - l885: - add(ruleSymbolRef, position875) + l892: + add(ruleSymbolRef, position882) } return true - l874: - position, tokenIndex = position874, tokenIndex874 + l881: + position, tokenIndex = position881, tokenIndex881 return false }, /* 54 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ func() bool { - position888, tokenIndex888 := position, tokenIndex + position895, tokenIndex895 := position, tokenIndex { - position889 := position + position896 := position if buffer[position] != rune(':') { - goto l888 + goto l895 } position++ { - position890, tokenIndex890 := position, tokenIndex + position897, tokenIndex897 := position, tokenIndex if buffer[position] != rune('l') { - goto l891 + goto l898 } position++ - goto l890 - l891: - position, tokenIndex = position890, tokenIndex890 + goto l897 + l898: + position, tokenIndex = position897, tokenIndex897 if buffer[position] != rune('L') { - goto l888 + goto l895 } position++ } - l890: + l897: { - position892, tokenIndex892 := position, tokenIndex + position899, tokenIndex899 := position, tokenIndex if buffer[position] != rune('o') { - goto l893 + goto l900 } position++ - goto l892 - l893: - position, tokenIndex = position892, tokenIndex892 + goto l899 + l900: + position, tokenIndex = position899, tokenIndex899 if buffer[position] != rune('O') { - goto l888 + goto l895 } position++ } - l892: + l899: if buffer[position] != rune('1') { - goto l888 + goto l895 } position++ if buffer[position] != rune('2') { - goto l888 + goto l895 } position++ if buffer[position] != rune(':') { - goto l888 + goto l895 } position++ { - position894, tokenIndex894 := position, tokenIndex + position901, tokenIndex901 := position, tokenIndex if !_rules[ruleLocalSymbol]() { + goto l902 + } + goto l901 + l902: + position, tokenIndex = position901, tokenIndex901 + if !_rules[ruleSymbolName]() { goto l895 } - goto l894 - l895: - position, tokenIndex = position894, tokenIndex894 - if !_rules[ruleSymbolName]() { - goto l888 - } } - l894: + l901: { - position896, tokenIndex896 := position, tokenIndex + position903, tokenIndex903 := position, tokenIndex if !_rules[ruleOffset]() { - goto l896 + goto l903 } - goto l897 - l896: - position, tokenIndex = position896, tokenIndex896 + goto l904 + l903: + position, tokenIndex = position903, tokenIndex903 } - l897: - add(ruleLow12BitsSymbolRef, position889) + l904: + add(ruleLow12BitsSymbolRef, position896) } return true - l888: - position, tokenIndex = position888, tokenIndex888 + l895: + position, tokenIndex = position895, tokenIndex895 return false }, /* 55 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - position898, tokenIndex898 := position, tokenIndex + position905, tokenIndex905 := position, tokenIndex { - position899 := position + position906 := position if buffer[position] != rune('[') { - goto l898 + goto l905 } position++ if !_rules[ruleARMRegister]() { - goto l898 + goto l905 } { - position900, tokenIndex900 := position, tokenIndex + position907, tokenIndex907 := position, tokenIndex if buffer[position] != rune(',') { - goto l900 + goto l907 } position++ { - position902, tokenIndex902 := position, tokenIndex + position909, tokenIndex909 := position, tokenIndex if !_rules[ruleWS]() { - goto l902 + goto l909 } - goto l903 - l902: - position, tokenIndex = position902, tokenIndex902 + goto l910 + l909: + position, tokenIndex = position909, tokenIndex909 } - l903: + l910: { - position904, tokenIndex904 := position, tokenIndex + position911, tokenIndex911 := position, tokenIndex if buffer[position] != rune('#') { - goto l905 + goto l912 } position++ if !_rules[ruleOffset]() { - goto l905 + goto l912 } { - position906, tokenIndex906 := position, tokenIndex + position913, tokenIndex913 := position, tokenIndex { - position908, tokenIndex908 := position, tokenIndex + position915, tokenIndex915 := position, tokenIndex if buffer[position] != rune('*') { - goto l909 + goto l916 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l909 + goto l916 } position++ - l910: - { - position911, tokenIndex911 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l911 - } - position++ - goto l910 - l911: - position, tokenIndex = position911, tokenIndex911 - } - goto l908 - l909: - position, tokenIndex = position908, tokenIndex908 - if buffer[position] != rune('*') { - goto l912 - } - position++ - if buffer[position] != rune('(') { - goto l912 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l912 - } - position++ - l913: - { - position914, tokenIndex914 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l914 - } - position++ - goto l913 - l914: - position, tokenIndex = position914, tokenIndex914 - } - if !_rules[ruleOperator]() { - goto l912 - } - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l912 - } - position++ - l915: - { - position916, tokenIndex916 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l916 - } - position++ - goto l915 - l916: - position, tokenIndex = position916, tokenIndex916 - } - if buffer[position] != rune(')') { - goto l912 - } - position++ - goto l908 - l912: - position, tokenIndex = position908, tokenIndex908 l917: { position918, tokenIndex918 := position, tokenIndex - if buffer[position] != rune('+') { - goto l918 - } - position++ if c := buffer[position]; c < rune('0') || c > rune('9') { goto l918 } position++ - l919: - { - position920, tokenIndex920 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l920 - } - position++ - goto l919 - l920: - position, tokenIndex = position920, tokenIndex920 - } goto l917 l918: position, tokenIndex = position918, tokenIndex918 } + goto l915 + l916: + position, tokenIndex = position915, tokenIndex915 + if buffer[position] != rune('*') { + goto l919 + } + position++ + if buffer[position] != rune('(') { + goto l919 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l919 + } + position++ + l920: + { + position921, tokenIndex921 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l921 + } + position++ + goto l920 + l921: + position, tokenIndex = position921, tokenIndex921 + } + if !_rules[ruleOperator]() { + goto l919 + } + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l919 + } + position++ + l922: + { + position923, tokenIndex923 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l923 + } + position++ + goto l922 + l923: + position, tokenIndex = position923, tokenIndex923 + } + if buffer[position] != rune(')') { + goto l919 + } + position++ + goto l915 + l919: + position, tokenIndex = position915, tokenIndex915 + l924: + { + position925, tokenIndex925 := position, tokenIndex + if buffer[position] != rune('+') { + goto l925 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l925 + } + position++ + l926: + { + position927, tokenIndex927 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l927 + } + position++ + goto l926 + l927: + position, tokenIndex = position927, tokenIndex927 + } + goto l924 + l925: + position, tokenIndex = position925, tokenIndex925 + } } - l908: - goto l907 + l915: + goto l914 - position, tokenIndex = position906, tokenIndex906 + position, tokenIndex = position913, tokenIndex913 } - l907: - goto l904 - l905: - position, tokenIndex = position904, tokenIndex904 + l914: + goto l911 + l912: + position, tokenIndex = position911, tokenIndex911 if !_rules[ruleARMGOTLow12]() { - goto l921 + goto l928 } - goto l904 - l921: - position, tokenIndex = position904, tokenIndex904 + goto l911 + l928: + position, tokenIndex = position911, tokenIndex911 if !_rules[ruleLow12BitsSymbolRef]() { - goto l922 + goto l929 } - goto l904 - l922: - position, tokenIndex = position904, tokenIndex904 + goto l911 + l929: + position, tokenIndex = position911, tokenIndex911 if !_rules[ruleARMRegister]() { - goto l900 + goto l907 } } - l904: + l911: { - position923, tokenIndex923 := position, tokenIndex + position930, tokenIndex930 := position, tokenIndex if buffer[position] != rune(',') { - goto l923 + goto l930 } position++ { - position925, tokenIndex925 := position, tokenIndex + position932, tokenIndex932 := position, tokenIndex if !_rules[ruleWS]() { - goto l925 + goto l932 } - goto l926 - l925: - position, tokenIndex = position925, tokenIndex925 + goto l933 + l932: + position, tokenIndex = position932, tokenIndex932 } - l926: + l933: if !_rules[ruleARMConstantTweak]() { - goto l923 + goto l930 } - goto l924 - l923: - position, tokenIndex = position923, tokenIndex923 + goto l931 + l930: + position, tokenIndex = position930, tokenIndex930 } - l924: - goto l901 - l900: - position, tokenIndex = position900, tokenIndex900 + l931: + goto l908 + l907: + position, tokenIndex = position907, tokenIndex907 } - l901: + l908: if buffer[position] != rune(']') { - goto l898 + goto l905 } position++ { - position927, tokenIndex927 := position, tokenIndex + position934, tokenIndex934 := position, tokenIndex if !_rules[ruleARMPostincrement]() { - goto l927 + goto l934 } - goto l928 - l927: - position, tokenIndex = position927, tokenIndex927 + goto l935 + l934: + position, tokenIndex = position934, tokenIndex934 } - l928: - add(ruleARMBaseIndexScale, position899) + l935: + add(ruleARMBaseIndexScale, position906) } return true - l898: - position, tokenIndex = position898, tokenIndex898 + l905: + position, tokenIndex = position905, tokenIndex905 return false }, /* 56 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - position929, tokenIndex929 := position, tokenIndex + position936, tokenIndex936 := position, tokenIndex { - position930 := position + position937 := position if buffer[position] != rune(':') { - goto l929 + goto l936 } position++ { - position931, tokenIndex931 := position, tokenIndex + position938, tokenIndex938 := position, tokenIndex if buffer[position] != rune('g') { - goto l932 + goto l939 } position++ - goto l931 - l932: - position, tokenIndex = position931, tokenIndex931 + goto l938 + l939: + position, tokenIndex = position938, tokenIndex938 if buffer[position] != rune('G') { - goto l929 - } - position++ - } - l931: - { - position933, tokenIndex933 := position, tokenIndex - if buffer[position] != rune('o') { - goto l934 - } - position++ - goto l933 - l934: - position, tokenIndex = position933, tokenIndex933 - if buffer[position] != rune('O') { - goto l929 - } - position++ - } - l933: - { - position935, tokenIndex935 := position, tokenIndex - if buffer[position] != rune('t') { goto l936 } position++ - goto l935 - l936: - position, tokenIndex = position935, tokenIndex935 - if buffer[position] != rune('T') { - goto l929 + } + l938: + { + position940, tokenIndex940 := position, tokenIndex + if buffer[position] != rune('o') { + goto l941 + } + position++ + goto l940 + l941: + position, tokenIndex = position940, tokenIndex940 + if buffer[position] != rune('O') { + goto l936 } position++ } - l935: + l940: + { + position942, tokenIndex942 := position, tokenIndex + if buffer[position] != rune('t') { + goto l943 + } + position++ + goto l942 + l943: + position, tokenIndex = position942, tokenIndex942 + if buffer[position] != rune('T') { + goto l936 + } + position++ + } + l942: if buffer[position] != rune('_') { - goto l929 + goto l936 } position++ { - position937, tokenIndex937 := position, tokenIndex + position944, tokenIndex944 := position, tokenIndex if buffer[position] != rune('l') { - goto l938 + goto l945 } position++ - goto l937 - l938: - position, tokenIndex = position937, tokenIndex937 + goto l944 + l945: + position, tokenIndex = position944, tokenIndex944 if buffer[position] != rune('L') { - goto l929 + goto l936 } position++ } - l937: + l944: { - position939, tokenIndex939 := position, tokenIndex + position946, tokenIndex946 := position, tokenIndex if buffer[position] != rune('o') { - goto l940 + goto l947 } position++ - goto l939 - l940: - position, tokenIndex = position939, tokenIndex939 + goto l946 + l947: + position, tokenIndex = position946, tokenIndex946 if buffer[position] != rune('O') { - goto l929 + goto l936 } position++ } - l939: + l946: if buffer[position] != rune('1') { - goto l929 + goto l936 } position++ if buffer[position] != rune('2') { - goto l929 + goto l936 } position++ if buffer[position] != rune(':') { - goto l929 + goto l936 } position++ if !_rules[ruleSymbolName]() { - goto l929 + goto l936 } - add(ruleARMGOTLow12, position930) + add(ruleARMGOTLow12, position937) } return true - l929: - position, tokenIndex = position929, tokenIndex929 + l936: + position, tokenIndex = position936, tokenIndex936 return false }, /* 57 ARMPostincrement <- <'!'> */ func() bool { - position941, tokenIndex941 := position, tokenIndex + position948, tokenIndex948 := position, tokenIndex { - position942 := position + position949 := position if buffer[position] != rune('!') { - goto l941 + goto l948 } position++ - add(ruleARMPostincrement, position942) + add(ruleARMPostincrement, position949) } return true - l941: - position, tokenIndex = position941, tokenIndex941 + l948: + position, tokenIndex = position948, tokenIndex948 return false }, /* 58 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ func() bool { - position943, tokenIndex943 := position, tokenIndex + position950, tokenIndex950 := position, tokenIndex { - position944 := position + position951 := position if buffer[position] != rune('(') { - goto l943 + goto l950 } position++ { - position945, tokenIndex945 := position, tokenIndex + position952, tokenIndex952 := position, tokenIndex if !_rules[ruleRegisterOrConstant]() { - goto l945 + goto l952 } - goto l946 - l945: - position, tokenIndex = position945, tokenIndex945 + goto l953 + l952: + position, tokenIndex = position952, tokenIndex952 } - l946: + l953: { - position947, tokenIndex947 := position, tokenIndex + position954, tokenIndex954 := position, tokenIndex if !_rules[ruleWS]() { - goto l947 + goto l954 } - goto l948 - l947: - position, tokenIndex = position947, tokenIndex947 + goto l955 + l954: + position, tokenIndex = position954, tokenIndex954 } - l948: + l955: { - position949, tokenIndex949 := position, tokenIndex + position956, tokenIndex956 := position, tokenIndex if buffer[position] != rune(',') { - goto l949 + goto l956 } position++ { - position951, tokenIndex951 := position, tokenIndex + position958, tokenIndex958 := position, tokenIndex if !_rules[ruleWS]() { - goto l951 + goto l958 } - goto l952 - l951: - position, tokenIndex = position951, tokenIndex951 + goto l959 + l958: + position, tokenIndex = position958, tokenIndex958 } - l952: + l959: if !_rules[ruleRegisterOrConstant]() { - goto l949 + goto l956 } { - position953, tokenIndex953 := position, tokenIndex + position960, tokenIndex960 := position, tokenIndex if !_rules[ruleWS]() { - goto l953 + goto l960 } - goto l954 - l953: - position, tokenIndex = position953, tokenIndex953 + goto l961 + l960: + position, tokenIndex = position960, tokenIndex960 } - l954: + l961: { - position955, tokenIndex955 := position, tokenIndex + position962, tokenIndex962 := position, tokenIndex if buffer[position] != rune(',') { - goto l955 + goto l962 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l955 + goto l962 } position++ - l957: + l964: { - position958, tokenIndex958 := position, tokenIndex + position965, tokenIndex965 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l958 + goto l965 } position++ - goto l957 - l958: - position, tokenIndex = position958, tokenIndex958 + goto l964 + l965: + position, tokenIndex = position965, tokenIndex965 } - goto l956 - l955: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l962: + position, tokenIndex = position962, tokenIndex962 } + l963: + goto l957 l956: - goto l950 - l949: - position, tokenIndex = position949, tokenIndex949 + position, tokenIndex = position956, tokenIndex956 } - l950: + l957: if buffer[position] != rune(')') { - goto l943 + goto l950 } position++ - add(ruleBaseIndexScale, position944) + add(ruleBaseIndexScale, position951) } return true - l943: - position, tokenIndex = position943, tokenIndex943 + l950: + position, tokenIndex = position950, tokenIndex950 return false }, /* 59 Operator <- <('+' / '-')> */ func() bool { - position959, tokenIndex959 := position, tokenIndex + position966, tokenIndex966 := position, tokenIndex { - position960 := position + position967 := position { - position961, tokenIndex961 := position, tokenIndex + position968, tokenIndex968 := position, tokenIndex if buffer[position] != rune('+') { - goto l962 + goto l969 } position++ - goto l961 - l962: - position, tokenIndex = position961, tokenIndex961 + goto l968 + l969: + position, tokenIndex = position968, tokenIndex968 if buffer[position] != rune('-') { - goto l959 + goto l966 } position++ } - l961: - add(ruleOperator, position960) + l968: + add(ruleOperator, position967) } return true - l959: - position, tokenIndex = position959, tokenIndex959 + l966: + position, tokenIndex = position966, tokenIndex966 return false }, /* 60 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */ func() bool { - position963, tokenIndex963 := position, tokenIndex + position970, tokenIndex970 := position, tokenIndex { - position964 := position + position971 := position { - position965, tokenIndex965 := position, tokenIndex + position972, tokenIndex972 := position, tokenIndex if buffer[position] != rune('+') { - goto l965 + goto l972 } position++ - goto l966 - l965: - position, tokenIndex = position965, tokenIndex965 + goto l973 + l972: + position, tokenIndex = position972, tokenIndex972 } - l966: + l973: { - position967, tokenIndex967 := position, tokenIndex + position974, tokenIndex974 := position, tokenIndex if buffer[position] != rune('-') { - goto l967 + goto l974 } position++ - goto l968 - l967: - position, tokenIndex = position967, tokenIndex967 + goto l975 + l974: + position, tokenIndex = position974, tokenIndex974 } - l968: + l975: { - position969, tokenIndex969 := position, tokenIndex + position976, tokenIndex976 := position, tokenIndex if buffer[position] != rune('0') { - goto l970 + goto l977 } position++ { - position971, tokenIndex971 := position, tokenIndex + position978, tokenIndex978 := position, tokenIndex if buffer[position] != rune('b') { - goto l972 - } - position++ - goto l971 - l972: - position, tokenIndex = position971, tokenIndex971 - if buffer[position] != rune('B') { - goto l970 - } - position++ - } - l971: - { - position975, tokenIndex975 := position, tokenIndex - if buffer[position] != rune('0') { - goto l976 - } - position++ - goto l975 - l976: - position, tokenIndex = position975, tokenIndex975 - if buffer[position] != rune('1') { - goto l970 - } - position++ - } - l975: - l973: - { - position974, tokenIndex974 := position, tokenIndex - { - position977, tokenIndex977 := position, tokenIndex - if buffer[position] != rune('0') { - goto l978 - } - position++ - goto l977 - l978: - position, tokenIndex = position977, tokenIndex977 - if buffer[position] != rune('1') { - goto l974 - } - position++ - } - l977: - goto l973 - l974: - position, tokenIndex = position974, tokenIndex974 - } - goto l969 - l970: - position, tokenIndex = position969, tokenIndex969 - if buffer[position] != rune('0') { - goto l979 - } - position++ - { - position980, tokenIndex980 := position, tokenIndex - if buffer[position] != rune('x') { - goto l981 - } - position++ - goto l980 - l981: - position, tokenIndex = position980, tokenIndex980 - if buffer[position] != rune('X') { goto l979 } position++ - } - l980: - { - position984, tokenIndex984 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l985 + goto l978 + l979: + position, tokenIndex = position978, tokenIndex978 + if buffer[position] != rune('B') { + goto l977 } position++ - goto l984 - l985: - position, tokenIndex = position984, tokenIndex984 - if c := buffer[position]; c < rune('0') || c > rune('9') { + } + l978: + { + position982, tokenIndex982 := position, tokenIndex + if buffer[position] != rune('0') { + goto l983 + } + position++ + goto l982 + l983: + position, tokenIndex = position982, tokenIndex982 + if buffer[position] != rune('1') { + goto l977 + } + position++ + } + l982: + l980: + { + position981, tokenIndex981 := position, tokenIndex + { + position984, tokenIndex984 := position, tokenIndex + if buffer[position] != rune('0') { + goto l985 + } + position++ + goto l984 + l985: + position, tokenIndex = position984, tokenIndex984 + if buffer[position] != rune('1') { + goto l981 + } + position++ + } + l984: + goto l980 + l981: + position, tokenIndex = position981, tokenIndex981 + } + goto l976 + l977: + position, tokenIndex = position976, tokenIndex976 + if buffer[position] != rune('0') { + goto l986 + } + position++ + { + position987, tokenIndex987 := position, tokenIndex + if buffer[position] != rune('x') { + goto l988 + } + position++ + goto l987 + l988: + position, tokenIndex = position987, tokenIndex987 + if buffer[position] != rune('X') { goto l986 } position++ - goto l984 - l986: - position, tokenIndex = position984, tokenIndex984 - { - position987, tokenIndex987 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l988 - } - position++ - goto l987 - l988: - position, tokenIndex = position987, tokenIndex987 - if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l979 - } - position++ - } - l987: } - l984: - l982: + l987: { - position983, tokenIndex983 := position, tokenIndex - { - position989, tokenIndex989 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l990 - } - position++ - goto l989 - l990: - position, tokenIndex = position989, tokenIndex989 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l991 - } - position++ - goto l989 - l991: - position, tokenIndex = position989, tokenIndex989 - { - position992, tokenIndex992 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l993 - } - position++ - goto l992 - l993: - position, tokenIndex = position992, tokenIndex992 - if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l983 - } - position++ - } - l992: - } - l989: - goto l982 - l983: - position, tokenIndex = position983, tokenIndex983 - } - goto l969 - l979: - position, tokenIndex = position969, tokenIndex969 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l963 - } - position++ - l994: - { - position995, tokenIndex995 := position, tokenIndex + position991, tokenIndex991 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l995 + goto l992 } position++ - goto l994 - l995: - position, tokenIndex = position995, tokenIndex995 + goto l991 + l992: + position, tokenIndex = position991, tokenIndex991 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l993 + } + position++ + goto l991 + l993: + position, tokenIndex = position991, tokenIndex991 + { + position994, tokenIndex994 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('f') { + goto l995 + } + position++ + goto l994 + l995: + position, tokenIndex = position994, tokenIndex994 + if c := buffer[position]; c < rune('A') || c > rune('F') { + goto l986 + } + position++ + } + l994: + } + l991: + l989: + { + position990, tokenIndex990 := position, tokenIndex + { + position996, tokenIndex996 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l997 + } + position++ + goto l996 + l997: + position, tokenIndex = position996, tokenIndex996 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l998 + } + position++ + goto l996 + l998: + position, tokenIndex = position996, tokenIndex996 + { + position999, tokenIndex999 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('f') { + goto l1000 + } + position++ + goto l999 + l1000: + position, tokenIndex = position999, tokenIndex999 + if c := buffer[position]; c < rune('A') || c > rune('F') { + goto l990 + } + position++ + } + l999: + } + l996: + goto l989 + l990: + position, tokenIndex = position990, tokenIndex990 + } + goto l976 + l986: + position, tokenIndex = position976, tokenIndex976 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l970 + } + position++ + l1001: + { + position1002, tokenIndex1002 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l1002 + } + position++ + goto l1001 + l1002: + position, tokenIndex = position1002, tokenIndex1002 } } - l969: - add(ruleOffset, position964) + l976: + add(ruleOffset, position971) } return true - l963: - position, tokenIndex = position963, tokenIndex963 + l970: + position, tokenIndex = position970, tokenIndex970 return false }, /* 61 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - position996, tokenIndex996 := position, tokenIndex + position1003, tokenIndex1003 := position, tokenIndex { - position997 := position + position1004 := position { - position1000, tokenIndex1000 := position, tokenIndex + position1007, tokenIndex1007 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1001 + goto l1008 } position++ - goto l1000 - l1001: - position, tokenIndex = position1000, tokenIndex1000 + goto l1007 + l1008: + position, tokenIndex = position1007, tokenIndex1007 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1002 + goto l1009 } position++ - goto l1000 - l1002: - position, tokenIndex = position1000, tokenIndex1000 + goto l1007 + l1009: + position, tokenIndex = position1007, tokenIndex1007 if buffer[position] != rune('@') { - goto l996 + goto l1003 } position++ } - l1000: - l998: + l1007: + l1005: { - position999, tokenIndex999 := position, tokenIndex + position1006, tokenIndex1006 := position, tokenIndex { - position1003, tokenIndex1003 := position, tokenIndex + position1010, tokenIndex1010 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1004 + goto l1011 } position++ - goto l1003 - l1004: - position, tokenIndex = position1003, tokenIndex1003 + goto l1010 + l1011: + position, tokenIndex = position1010, tokenIndex1010 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1005 + goto l1012 } position++ - goto l1003 - l1005: - position, tokenIndex = position1003, tokenIndex1003 + goto l1010 + l1012: + position, tokenIndex = position1010, tokenIndex1010 if buffer[position] != rune('@') { - goto l999 + goto l1006 } position++ } - l1003: - goto l998 - l999: - position, tokenIndex = position999, tokenIndex999 + l1010: + goto l1005 + l1006: + position, tokenIndex = position1006, tokenIndex1006 } - add(ruleSection, position997) + add(ruleSection, position1004) } return true - l996: - position, tokenIndex = position996, tokenIndex996 + l1003: + position, tokenIndex = position1003, tokenIndex1003 return false }, /* 62 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ func() bool { - position1006, tokenIndex1006 := position, tokenIndex + position1013, tokenIndex1013 := position, tokenIndex { - position1007 := position + position1014 := position if buffer[position] != rune('%') { - goto l1006 + goto l1013 } position++ { - position1008, tokenIndex1008 := position, tokenIndex + position1015, tokenIndex1015 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l1009 + goto l1016 } position++ - goto l1008 - l1009: - position, tokenIndex = position1008, tokenIndex1008 + goto l1015 + l1016: + position, tokenIndex = position1015, tokenIndex1015 if buffer[position] != rune('s') { - goto l1006 + goto l1013 } position++ } - l1008: + l1015: if buffer[position] != rune('s') { - goto l1006 + goto l1013 } position++ if buffer[position] != rune(':') { - goto l1006 + goto l1013 } position++ - add(ruleSegmentRegister, position1007) + add(ruleSegmentRegister, position1014) } return true - l1006: - position, tokenIndex = position1006, tokenIndex1006 + l1013: + position, tokenIndex = position1013, tokenIndex1013 return false }, }
diff --git a/util/fipstools/delocate/testdata/aarch64-Basic/in.s b/util/fipstools/delocate/testdata/aarch64-Basic/in.s index f8ff4e6..a2334f0 100644 --- a/util/fipstools/delocate/testdata/aarch64-Basic/in.s +++ b/util/fipstools/delocate/testdata/aarch64-Basic/in.s
@@ -73,6 +73,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 08a6db7..9ff57b5 100644 --- a/util/fipstools/delocate/testdata/aarch64-Basic/out.s +++ b/util/fipstools/delocate/testdata/aarch64-Basic/out.s
@@ -109,6 +109,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]