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]