diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index 9fca0faba1..b11f18bf03 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg @@ -87,7 +87,7 @@ RegisterOrConstant <- (('%'[[A-Z]][[A-Z0-9]]*) / ('#(' [0-9]+ ')') / ARMRegister) ![fb:(+\-] -ARMConstantTweak <- ((([us] "xt" [xwhb]) / "lsl" / "lsr" / "ror" / "asr" / "msl") (WS '#'? Offset)?)/ +ARMConstantTweak <- ((([us] "xt" [xwhb]) / ("lsl" / "lsr" / "ror" / "rol" / "asr" / "asl" / "msl") ![A-Za-z0-9_]) (WS '#'? Offset)?) / "mul vl" # multiply offset by the hardware's vector length ARMRegister <- "sp" / ([xwdqshb] [0-9] [0-9]? !(ARMRegisterBoundary)) / "xzr" / "wzr" / "NZCV" / ARMVectorRegister / SVE2PredicateRegister / ('{' WS? ARMVectorRegister WS? ([,\-] WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')? ) diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go index 0925281286..8222f8c1cb 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go @@ -1,6 +1,6 @@ package main -// Code generated by /home/ubuntu/go/bin/peg delocate.peg DO NOT EDIT. +// Code generated by /Users/andhop/go/bin/peg delocate.peg DO NOT EDIT. import ( "fmt" @@ -5099,7 +5099,7 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position, tokenIndex = position550, tokenIndex550 return false }, - /* 43 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')))> */ + /* 43 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')) / (('r' / 'R') ('o' / 'O') ('l' / 'L')) / (('a' / 'A') ('s' / 'S') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('l' / 'L')) / (('m' / 'M') ('s' / 'S') ('l' / 'L'))) !([A-Z] / [a-z] / [0-9] / '_'))) (WS '#'? Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')))> */ func() bool { position633, tokenIndex633 := position, tokenIndex { @@ -5186,350 +5186,485 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l638: position, tokenIndex = position637, tokenIndex637 { - position650, tokenIndex650 := position, tokenIndex - if buffer[position] != rune('l') { + position649, tokenIndex649 := position, tokenIndex + { + position651, tokenIndex651 := position, tokenIndex + if buffer[position] != rune('l') { + goto l652 + } + position++ goto l651 + l652: + position, tokenIndex = position651, tokenIndex651 + if buffer[position] != rune('L') { + goto l650 + } + position++ } - position++ - goto l650 l651: - position, tokenIndex = position650, tokenIndex650 - if buffer[position] != rune('L') { - goto l649 - } - position++ - } - l650: - { - position652, tokenIndex652 := position, tokenIndex - if buffer[position] != rune('s') { + { + position653, tokenIndex653 := position, tokenIndex + if buffer[position] != rune('s') { + goto l654 + } + position++ goto l653 + l654: + position, tokenIndex = position653, tokenIndex653 + if buffer[position] != rune('S') { + goto l650 + } + position++ } - position++ - goto l652 l653: - position, tokenIndex = position652, tokenIndex652 - if buffer[position] != rune('S') { - goto l649 - } - position++ - } - l652: - { - position654, tokenIndex654 := position, tokenIndex - if buffer[position] != rune('l') { + { + position655, tokenIndex655 := position, tokenIndex + if buffer[position] != rune('l') { + goto l656 + } + position++ goto l655 + l656: + position, tokenIndex = position655, tokenIndex655 + if buffer[position] != rune('L') { + goto l650 + } + position++ } - position++ - goto l654 l655: - position, tokenIndex = position654, tokenIndex654 - if buffer[position] != rune('L') { - goto l649 - } - position++ - } - l654: - goto l637 - l649: - position, tokenIndex = position637, tokenIndex637 - { - position657, tokenIndex657 := position, tokenIndex - if buffer[position] != rune('l') { + goto l649 + l650: + position, tokenIndex = position649, tokenIndex649 + { + position658, tokenIndex658 := position, tokenIndex + if buffer[position] != rune('l') { + goto l659 + } + position++ goto l658 + l659: + position, tokenIndex = position658, tokenIndex658 + if buffer[position] != rune('L') { + goto l657 + } + position++ } - position++ - goto l657 l658: - position, tokenIndex = position657, tokenIndex657 - if buffer[position] != rune('L') { - goto l656 - } - position++ - } - l657: - { - position659, tokenIndex659 := position, tokenIndex - if buffer[position] != rune('s') { + { + position660, tokenIndex660 := position, tokenIndex + if buffer[position] != rune('s') { + goto l661 + } + position++ goto l660 + l661: + position, tokenIndex = position660, tokenIndex660 + if buffer[position] != rune('S') { + goto l657 + } + position++ } - position++ - goto l659 l660: - position, tokenIndex = position659, tokenIndex659 - if buffer[position] != rune('S') { - goto l656 - } - position++ - } - l659: - { - position661, tokenIndex661 := position, tokenIndex - if buffer[position] != rune('r') { + { + position662, tokenIndex662 := position, tokenIndex + if buffer[position] != rune('r') { + goto l663 + } + position++ goto l662 + l663: + position, tokenIndex = position662, tokenIndex662 + if buffer[position] != rune('R') { + goto l657 + } + position++ } - position++ - goto l661 l662: - position, tokenIndex = position661, tokenIndex661 - if buffer[position] != rune('R') { - goto l656 - } - position++ - } - l661: - goto l637 - l656: - position, tokenIndex = position637, tokenIndex637 - { - position664, tokenIndex664 := position, tokenIndex - if buffer[position] != rune('r') { + goto l649 + l657: + position, tokenIndex = position649, tokenIndex649 + { + position665, tokenIndex665 := position, tokenIndex + if buffer[position] != rune('r') { + goto l666 + } + position++ goto l665 + l666: + position, tokenIndex = position665, tokenIndex665 + if buffer[position] != rune('R') { + goto l664 + } + position++ } - position++ - goto l664 l665: - position, tokenIndex = position664, tokenIndex664 - if buffer[position] != rune('R') { - goto l663 - } - position++ - } - l664: - { - position666, tokenIndex666 := position, tokenIndex - if buffer[position] != rune('o') { + { + position667, tokenIndex667 := position, tokenIndex + if buffer[position] != rune('o') { + goto l668 + } + position++ goto l667 + l668: + position, tokenIndex = position667, tokenIndex667 + if buffer[position] != rune('O') { + goto l664 + } + position++ } - position++ - goto l666 l667: - position, tokenIndex = position666, tokenIndex666 - if buffer[position] != rune('O') { - goto l663 - } - position++ - } - l666: - { - position668, tokenIndex668 := position, tokenIndex - if buffer[position] != rune('r') { + { + position669, tokenIndex669 := position, tokenIndex + if buffer[position] != rune('r') { + goto l670 + } + position++ goto l669 + l670: + position, tokenIndex = position669, tokenIndex669 + if buffer[position] != rune('R') { + goto l664 + } + position++ } - position++ - goto l668 l669: - position, tokenIndex = position668, tokenIndex668 - if buffer[position] != rune('R') { - goto l663 - } - position++ - } - l668: - goto l637 - l663: - position, tokenIndex = position637, tokenIndex637 - { - position671, tokenIndex671 := position, tokenIndex - if buffer[position] != rune('a') { + goto l649 + l664: + position, tokenIndex = position649, tokenIndex649 + { + position672, tokenIndex672 := position, tokenIndex + if buffer[position] != rune('r') { + goto l673 + } + position++ goto l672 + l673: + position, tokenIndex = position672, tokenIndex672 + if buffer[position] != rune('R') { + goto l671 + } + position++ } - position++ - goto l671 l672: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('A') { - goto l670 - } - position++ - } - l671: - { - position673, tokenIndex673 := position, tokenIndex - if buffer[position] != rune('s') { + { + position674, tokenIndex674 := position, tokenIndex + if buffer[position] != rune('o') { + goto l675 + } + position++ goto l674 + l675: + position, tokenIndex = position674, tokenIndex674 + if buffer[position] != rune('O') { + goto l671 + } + position++ } - position++ - goto l673 l674: - position, tokenIndex = position673, tokenIndex673 - if buffer[position] != rune('S') { - goto l670 - } - position++ - } - l673: - { - position675, tokenIndex675 := position, tokenIndex - if buffer[position] != rune('r') { + { + position676, tokenIndex676 := position, tokenIndex + if buffer[position] != rune('l') { + goto l677 + } + position++ goto l676 + l677: + position, tokenIndex = position676, tokenIndex676 + if buffer[position] != rune('L') { + goto l671 + } + position++ } - position++ - goto l675 l676: - position, tokenIndex = position675, tokenIndex675 - if buffer[position] != rune('R') { - goto l670 + goto l649 + l671: + position, tokenIndex = position649, tokenIndex649 + { + position679, tokenIndex679 := position, tokenIndex + if buffer[position] != rune('a') { + goto l680 + } + position++ + goto l679 + l680: + position, tokenIndex = position679, tokenIndex679 + if buffer[position] != rune('A') { + goto l678 + } + position++ } - position++ - } - l675: - goto l637 - l670: - position, tokenIndex = position637, tokenIndex637 - { - position677, tokenIndex677 := position, tokenIndex - if buffer[position] != rune('m') { - goto l678 + l679: + { + position681, tokenIndex681 := position, tokenIndex + if buffer[position] != rune('s') { + goto l682 + } + position++ + goto l681 + l682: + position, tokenIndex = position681, tokenIndex681 + if buffer[position] != rune('S') { + goto l678 + } + position++ } - position++ - goto l677 + l681: + { + position683, tokenIndex683 := position, tokenIndex + if buffer[position] != rune('r') { + goto l684 + } + position++ + goto l683 + l684: + position, tokenIndex = position683, tokenIndex683 + if buffer[position] != rune('R') { + goto l678 + } + position++ + } + l683: + goto l649 l678: - position, tokenIndex = position677, tokenIndex677 - if buffer[position] != rune('M') { - goto l636 + position, tokenIndex = position649, tokenIndex649 + { + position686, tokenIndex686 := position, tokenIndex + if buffer[position] != rune('a') { + goto l687 + } + position++ + goto l686 + l687: + position, tokenIndex = position686, tokenIndex686 + if buffer[position] != rune('A') { + goto l685 + } + position++ } - position++ - } - l677: - { - position679, tokenIndex679 := position, tokenIndex - if buffer[position] != rune('s') { - goto l680 + l686: + { + position688, tokenIndex688 := position, tokenIndex + if buffer[position] != rune('s') { + goto l689 + } + position++ + goto l688 + l689: + position, tokenIndex = position688, tokenIndex688 + if buffer[position] != rune('S') { + goto l685 + } + position++ } - position++ - goto l679 - l680: - position, tokenIndex = position679, tokenIndex679 - if buffer[position] != rune('S') { - goto l636 + l688: + { + position690, tokenIndex690 := position, tokenIndex + if buffer[position] != rune('l') { + goto l691 + } + position++ + goto l690 + l691: + position, tokenIndex = position690, tokenIndex690 + if buffer[position] != rune('L') { + goto l685 + } + position++ } - position++ + l690: + goto l649 + l685: + position, tokenIndex = position649, tokenIndex649 + { + position692, tokenIndex692 := position, tokenIndex + if buffer[position] != rune('m') { + goto l693 + } + position++ + goto l692 + l693: + position, tokenIndex = position692, tokenIndex692 + if buffer[position] != rune('M') { + goto l636 + } + position++ + } + l692: + { + position694, tokenIndex694 := position, tokenIndex + if buffer[position] != rune('s') { + goto l695 + } + position++ + goto l694 + l695: + position, tokenIndex = position694, tokenIndex694 + if buffer[position] != rune('S') { + goto l636 + } + position++ + } + l694: + { + position696, tokenIndex696 := position, tokenIndex + if buffer[position] != rune('l') { + goto l697 + } + position++ + goto l696 + l697: + position, tokenIndex = position696, tokenIndex696 + if buffer[position] != rune('L') { + goto l636 + } + position++ + } + l696: } - l679: + l649: { - position681, tokenIndex681 := position, tokenIndex - if buffer[position] != rune('l') { - goto l682 - } - position++ - goto l681 - l682: - position, tokenIndex = position681, tokenIndex681 - if buffer[position] != rune('L') { - goto l636 + position698, tokenIndex698 := position, tokenIndex + { + position699, tokenIndex699 := position, tokenIndex + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l700 + } + position++ + goto l699 + l700: + position, tokenIndex = position699, tokenIndex699 + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l701 + } + position++ + goto l699 + l701: + position, tokenIndex = position699, tokenIndex699 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l702 + } + position++ + goto l699 + l702: + position, tokenIndex = position699, tokenIndex699 + if buffer[position] != rune('_') { + goto l698 + } + position++ } - position++ + l699: + goto l636 + l698: + position, tokenIndex = position698, tokenIndex698 } - l681: } l637: { - position683, tokenIndex683 := position, tokenIndex + position703, tokenIndex703 := position, tokenIndex if !_rules[ruleWS]() { - goto l683 + goto l703 } { - position685, tokenIndex685 := position, tokenIndex + position705, tokenIndex705 := position, tokenIndex if buffer[position] != rune('#') { - goto l685 + goto l705 } position++ - goto l686 - l685: - position, tokenIndex = position685, tokenIndex685 + goto l706 + l705: + position, tokenIndex = position705, tokenIndex705 } - l686: + l706: if !_rules[ruleOffset]() { - goto l683 + goto l703 } - goto l684 - l683: - position, tokenIndex = position683, tokenIndex683 + goto l704 + l703: + position, tokenIndex = position703, tokenIndex703 } - l684: + l704: goto l635 l636: position, tokenIndex = position635, tokenIndex635 { - position687, tokenIndex687 := position, tokenIndex + position707, tokenIndex707 := position, tokenIndex if buffer[position] != rune('m') { - goto l688 + goto l708 } position++ - goto l687 - l688: - position, tokenIndex = position687, tokenIndex687 + goto l707 + l708: + position, tokenIndex = position707, tokenIndex707 if buffer[position] != rune('M') { goto l633 } position++ } - l687: + l707: { - position689, tokenIndex689 := position, tokenIndex + position709, tokenIndex709 := position, tokenIndex if buffer[position] != rune('u') { - goto l690 + goto l710 } position++ - goto l689 - l690: - position, tokenIndex = position689, tokenIndex689 + goto l709 + l710: + position, tokenIndex = position709, tokenIndex709 if buffer[position] != rune('U') { goto l633 } position++ } - l689: + l709: { - position691, tokenIndex691 := position, tokenIndex + position711, tokenIndex711 := position, tokenIndex if buffer[position] != rune('l') { - goto l692 + goto l712 } position++ - goto l691 - l692: - position, tokenIndex = position691, tokenIndex691 + goto l711 + l712: + position, tokenIndex = position711, tokenIndex711 if buffer[position] != rune('L') { goto l633 } position++ } - l691: + l711: if buffer[position] != rune(' ') { goto l633 } position++ { - position693, tokenIndex693 := position, tokenIndex + position713, tokenIndex713 := position, tokenIndex if buffer[position] != rune('v') { - goto l694 + goto l714 } position++ - goto l693 - l694: - position, tokenIndex = position693, tokenIndex693 + goto l713 + l714: + position, tokenIndex = position713, tokenIndex713 if buffer[position] != rune('V') { goto l633 } position++ } - l693: + l713: { - position695, tokenIndex695 := position, tokenIndex + position715, tokenIndex715 := position, tokenIndex if buffer[position] != rune('l') { - goto l696 + goto l716 } position++ - goto l695 - l696: - position, tokenIndex = position695, tokenIndex695 + goto l715 + l716: + position, tokenIndex = position715, tokenIndex715 if buffer[position] != rune('L') { goto l633 } position++ } - l695: + l715: } l635: add(ruleARMConstantTweak, position634) @@ -5541,2386 +5676,2386 @@ func (p *Asm) Init(options ...func(*Asm) error) error { }, /* 44 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]? !ARMRegisterBoundary) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / ARMVectorRegister / SVE2PredicateRegister / ('{' WS? ARMVectorRegister WS? ((',' / '-') WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ func() bool { - position697, tokenIndex697 := position, tokenIndex + position717, tokenIndex717 := position, tokenIndex { - position698 := position + position718 := position { - position699, tokenIndex699 := position, tokenIndex + position719, tokenIndex719 := position, tokenIndex { - position701, tokenIndex701 := position, tokenIndex + position721, tokenIndex721 := position, tokenIndex if buffer[position] != rune('s') { - goto l702 + goto l722 } position++ - goto l701 - l702: - position, tokenIndex = position701, tokenIndex701 + goto l721 + l722: + position, tokenIndex = position721, tokenIndex721 if buffer[position] != rune('S') { - goto l700 + goto l720 } position++ } - l701: + l721: { - position703, tokenIndex703 := position, tokenIndex + position723, tokenIndex723 := position, tokenIndex if buffer[position] != rune('p') { - goto l704 + goto l724 } position++ - goto l703 - l704: - position, tokenIndex = position703, tokenIndex703 + goto l723 + l724: + position, tokenIndex = position723, tokenIndex723 if buffer[position] != rune('P') { - goto l700 + goto l720 } position++ } - l703: - goto l699 - l700: - position, tokenIndex = position699, tokenIndex699 + l723: + goto l719 + l720: + position, tokenIndex = position719, tokenIndex719 { - position706, tokenIndex706 := position, tokenIndex + position726, tokenIndex726 := position, tokenIndex if buffer[position] != rune('x') { - goto l707 + goto l727 } position++ - goto l706 - l707: - position, tokenIndex = position706, tokenIndex706 + goto l726 + l727: + position, tokenIndex = position726, tokenIndex726 if buffer[position] != rune('w') { - goto l708 + goto l728 } position++ - goto l706 - l708: - position, tokenIndex = position706, tokenIndex706 + goto l726 + l728: + position, tokenIndex = position726, tokenIndex726 if buffer[position] != rune('d') { - goto l709 + goto l729 } position++ - goto l706 - l709: - position, tokenIndex = position706, tokenIndex706 + goto l726 + l729: + position, tokenIndex = position726, tokenIndex726 if buffer[position] != rune('q') { - goto l710 + goto l730 } position++ - goto l706 - l710: - position, tokenIndex = position706, tokenIndex706 + goto l726 + l730: + position, tokenIndex = position726, tokenIndex726 if buffer[position] != rune('s') { - goto l711 + goto l731 } position++ - goto l706 - l711: - position, tokenIndex = position706, tokenIndex706 + goto l726 + l731: + position, tokenIndex = position726, tokenIndex726 if buffer[position] != rune('h') { - goto l712 + goto l732 } position++ - goto l706 - l712: - position, tokenIndex = position706, tokenIndex706 + goto l726 + l732: + position, tokenIndex = position726, tokenIndex726 if buffer[position] != rune('b') { - goto l705 + goto l725 } position++ } - l706: + l726: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l705 + goto l725 } position++ { - position713, tokenIndex713 := position, tokenIndex + position733, tokenIndex733 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l713 + goto l733 } position++ - goto l714 - l713: - position, tokenIndex = position713, tokenIndex713 + goto l734 + l733: + position, tokenIndex = position733, tokenIndex733 } - l714: + l734: { - position715, tokenIndex715 := position, tokenIndex + position735, tokenIndex735 := position, tokenIndex if !_rules[ruleARMRegisterBoundary]() { - goto l715 + goto l735 } - goto l705 - l715: - position, tokenIndex = position715, tokenIndex715 + goto l725 + l735: + position, tokenIndex = position735, tokenIndex735 } - goto l699 - l705: - position, tokenIndex = position699, tokenIndex699 + goto l719 + l725: + position, tokenIndex = position719, tokenIndex719 { - position717, tokenIndex717 := position, tokenIndex + position737, tokenIndex737 := position, tokenIndex if buffer[position] != rune('x') { - goto l718 + goto l738 } position++ - goto l717 - l718: - position, tokenIndex = position717, tokenIndex717 + goto l737 + l738: + position, tokenIndex = position737, tokenIndex737 if buffer[position] != rune('X') { - goto l716 + goto l736 } position++ } - l717: + l737: { - position719, tokenIndex719 := position, tokenIndex + position739, tokenIndex739 := position, tokenIndex if buffer[position] != rune('z') { - goto l720 + goto l740 } position++ - goto l719 - l720: - position, tokenIndex = position719, tokenIndex719 + goto l739 + l740: + position, tokenIndex = position739, tokenIndex739 if buffer[position] != rune('Z') { - goto l716 + goto l736 } position++ } - l719: + l739: { - position721, tokenIndex721 := position, tokenIndex + position741, tokenIndex741 := position, tokenIndex if buffer[position] != rune('r') { - goto l722 + goto l742 } position++ - goto l721 - l722: - position, tokenIndex = position721, tokenIndex721 + goto l741 + l742: + position, tokenIndex = position741, tokenIndex741 if buffer[position] != rune('R') { - goto l716 + goto l736 } position++ } - l721: - goto l699 - l716: - position, tokenIndex = position699, tokenIndex699 + l741: + goto l719 + l736: + position, tokenIndex = position719, tokenIndex719 { - position724, tokenIndex724 := position, tokenIndex + position744, tokenIndex744 := position, tokenIndex if buffer[position] != rune('w') { - goto l725 + goto l745 } position++ - goto l724 - l725: - position, tokenIndex = position724, tokenIndex724 + goto l744 + l745: + position, tokenIndex = position744, tokenIndex744 if buffer[position] != rune('W') { - goto l723 + goto l743 } position++ } - l724: + l744: { - position726, tokenIndex726 := position, tokenIndex + position746, tokenIndex746 := position, tokenIndex if buffer[position] != rune('z') { - goto l727 + goto l747 } position++ - goto l726 - l727: - position, tokenIndex = position726, tokenIndex726 + goto l746 + l747: + position, tokenIndex = position746, tokenIndex746 if buffer[position] != rune('Z') { - goto l723 + goto l743 } position++ } - l726: + l746: { - position728, tokenIndex728 := position, tokenIndex + position748, tokenIndex748 := position, tokenIndex if buffer[position] != rune('r') { - goto l729 + goto l749 } position++ - goto l728 - l729: - position, tokenIndex = position728, tokenIndex728 + goto l748 + l749: + position, tokenIndex = position748, tokenIndex748 if buffer[position] != rune('R') { - goto l723 + goto l743 } position++ } - l728: - goto l699 - l723: - position, tokenIndex = position699, tokenIndex699 + l748: + goto l719 + l743: + position, tokenIndex = position719, tokenIndex719 { - position731, tokenIndex731 := position, tokenIndex + position751, tokenIndex751 := position, tokenIndex if buffer[position] != rune('n') { - goto l732 + goto l752 } position++ - goto l731 - l732: - position, tokenIndex = position731, tokenIndex731 + goto l751 + l752: + position, tokenIndex = position751, tokenIndex751 if buffer[position] != rune('N') { - goto l730 + goto l750 } position++ } - l731: + l751: { - position733, tokenIndex733 := position, tokenIndex + position753, tokenIndex753 := position, tokenIndex if buffer[position] != rune('z') { - goto l734 + goto l754 } position++ - goto l733 - l734: - position, tokenIndex = position733, tokenIndex733 + goto l753 + l754: + position, tokenIndex = position753, tokenIndex753 if buffer[position] != rune('Z') { - goto l730 + goto l750 } position++ } - l733: + l753: { - position735, tokenIndex735 := position, tokenIndex + position755, tokenIndex755 := position, tokenIndex if buffer[position] != rune('c') { - goto l736 + goto l756 } position++ - goto l735 - l736: - position, tokenIndex = position735, tokenIndex735 + goto l755 + l756: + position, tokenIndex = position755, tokenIndex755 if buffer[position] != rune('C') { - goto l730 + goto l750 } position++ } - l735: + l755: { - position737, tokenIndex737 := position, tokenIndex + position757, tokenIndex757 := position, tokenIndex if buffer[position] != rune('v') { - goto l738 + goto l758 } position++ - goto l737 - l738: - position, tokenIndex = position737, tokenIndex737 + goto l757 + l758: + position, tokenIndex = position757, tokenIndex757 if buffer[position] != rune('V') { - goto l730 + goto l750 } position++ } - l737: - goto l699 - l730: - position, tokenIndex = position699, tokenIndex699 + l757: + goto l719 + l750: + position, tokenIndex = position719, tokenIndex719 if !_rules[ruleARMVectorRegister]() { - goto l739 + goto l759 } - goto l699 - l739: - position, tokenIndex = position699, tokenIndex699 + goto l719 + l759: + position, tokenIndex = position719, tokenIndex719 if !_rules[ruleSVE2PredicateRegister]() { - goto l740 + goto l760 } - goto l699 - l740: - position, tokenIndex = position699, tokenIndex699 + goto l719 + l760: + position, tokenIndex = position719, tokenIndex719 if buffer[position] != rune('{') { - goto l697 + goto l717 } position++ { - position741, tokenIndex741 := position, tokenIndex + position761, tokenIndex761 := position, tokenIndex if !_rules[ruleWS]() { - goto l741 + goto l761 } - goto l742 - l741: - position, tokenIndex = position741, tokenIndex741 + goto l762 + l761: + position, tokenIndex = position761, tokenIndex761 } - l742: + l762: if !_rules[ruleARMVectorRegister]() { - goto l697 + goto l717 } { - position743, tokenIndex743 := position, tokenIndex + position763, tokenIndex763 := position, tokenIndex if !_rules[ruleWS]() { - goto l743 + goto l763 } - goto l744 - l743: - position, tokenIndex = position743, tokenIndex743 + goto l764 + l763: + position, tokenIndex = position763, tokenIndex763 } - l744: - l745: + l764: + l765: { - position746, tokenIndex746 := position, tokenIndex + position766, tokenIndex766 := position, tokenIndex { - position747, tokenIndex747 := position, tokenIndex + position767, tokenIndex767 := position, tokenIndex if buffer[position] != rune(',') { - goto l748 + goto l768 } position++ - goto l747 - l748: - position, tokenIndex = position747, tokenIndex747 + goto l767 + l768: + position, tokenIndex = position767, tokenIndex767 if buffer[position] != rune('-') { - goto l746 + goto l766 } position++ } - l747: + l767: { - position749, tokenIndex749 := position, tokenIndex + position769, tokenIndex769 := position, tokenIndex if !_rules[ruleWS]() { - goto l749 + goto l769 } - goto l750 - l749: - position, tokenIndex = position749, tokenIndex749 + goto l770 + l769: + position, tokenIndex = position769, tokenIndex769 } - l750: + l770: if !_rules[ruleARMVectorRegister]() { - goto l746 + goto l766 } - goto l745 - l746: - position, tokenIndex = position746, tokenIndex746 + goto l765 + l766: + position, tokenIndex = position766, tokenIndex766 } { - position751, tokenIndex751 := position, tokenIndex + position771, tokenIndex771 := position, tokenIndex if !_rules[ruleWS]() { - goto l751 + goto l771 } - goto l752 - l751: - position, tokenIndex = position751, tokenIndex751 + goto l772 + l771: + position, tokenIndex = position771, tokenIndex771 } - l752: + l772: if buffer[position] != rune('}') { - goto l697 + goto l717 } position++ { - position753, tokenIndex753 := position, tokenIndex + position773, tokenIndex773 := position, tokenIndex if buffer[position] != rune('[') { - goto l753 + goto l773 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l753 + goto l773 } position++ { - position755, tokenIndex755 := position, tokenIndex + position775, tokenIndex775 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l755 + goto l775 } position++ - goto l756 - l755: - position, tokenIndex = position755, tokenIndex755 + goto l776 + l775: + position, tokenIndex = position775, tokenIndex775 } - l756: + l776: if buffer[position] != rune(']') { - goto l753 + goto l773 } position++ - goto l754 - l753: - position, tokenIndex = position753, tokenIndex753 + goto l774 + l773: + position, tokenIndex = position773, tokenIndex773 } - l754: + l774: } - l699: - add(ruleARMRegister, position698) + l719: + add(ruleARMRegister, position718) } return true - l697: - position, tokenIndex = position697, tokenIndex697 + l717: + position, tokenIndex = position717, tokenIndex717 return false }, /* 45 ARMVectorRegister <- <(('v' / 'z') [0-9] [0-9]? ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q' / 'B' / 'S' / 'D' / 'H' / 'Q') ('[' [0-9] [0-9]? ']')?)?)> */ func() bool { - position757, tokenIndex757 := position, tokenIndex + position777, tokenIndex777 := position, tokenIndex { - position758 := position + position778 := position { - position759, tokenIndex759 := position, tokenIndex + position779, tokenIndex779 := position, tokenIndex if buffer[position] != rune('v') { - goto l760 + goto l780 } position++ - goto l759 - l760: - position, tokenIndex = position759, tokenIndex759 + goto l779 + l780: + position, tokenIndex = position779, tokenIndex779 if buffer[position] != rune('z') { - goto l757 + goto l777 } position++ } - l759: + l779: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l757 + goto l777 } position++ { - position761, tokenIndex761 := position, tokenIndex + position781, tokenIndex781 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l761 + goto l781 } position++ - goto l762 - l761: - position, tokenIndex = position761, tokenIndex761 + goto l782 + l781: + position, tokenIndex = position781, tokenIndex781 } - l762: + l782: { - position763, tokenIndex763 := position, tokenIndex + position783, tokenIndex783 := position, tokenIndex if buffer[position] != rune('.') { - goto l763 + goto l783 } position++ - l765: + l785: { - position766, tokenIndex766 := position, tokenIndex + position786, tokenIndex786 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l766 + goto l786 } position++ - goto l765 - l766: - position, tokenIndex = position766, tokenIndex766 + goto l785 + l786: + position, tokenIndex = position786, tokenIndex786 } { - position767, tokenIndex767 := position, tokenIndex + position787, tokenIndex787 := position, tokenIndex if buffer[position] != rune('b') { - goto l768 + goto l788 } position++ - goto l767 - l768: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l788: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('s') { - goto l769 + goto l789 } position++ - goto l767 - l769: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l789: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('d') { - goto l770 + goto l790 } position++ - goto l767 - l770: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l790: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('h') { - goto l771 + goto l791 } position++ - goto l767 - l771: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l791: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('q') { - goto l772 + goto l792 } position++ - goto l767 - l772: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l792: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('B') { - goto l773 + goto l793 } position++ - goto l767 - l773: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l793: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('S') { - goto l774 + goto l794 } position++ - goto l767 - l774: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l794: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('D') { - goto l775 + goto l795 } position++ - goto l767 - l775: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l795: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('H') { - goto l776 + goto l796 } position++ - goto l767 - l776: - position, tokenIndex = position767, tokenIndex767 + goto l787 + l796: + position, tokenIndex = position787, tokenIndex787 if buffer[position] != rune('Q') { - goto l763 + goto l783 } position++ } - l767: + l787: { - position777, tokenIndex777 := position, tokenIndex + position797, tokenIndex797 := position, tokenIndex if buffer[position] != rune('[') { - goto l777 + goto l797 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l777 + goto l797 } position++ { - position779, tokenIndex779 := position, tokenIndex + position799, tokenIndex799 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l779 + goto l799 } position++ - goto l780 - l779: - position, tokenIndex = position779, tokenIndex779 + goto l800 + l799: + position, tokenIndex = position799, tokenIndex799 } - l780: + l800: if buffer[position] != rune(']') { - goto l777 + goto l797 } position++ - goto l778 - l777: - position, tokenIndex = position777, tokenIndex777 + goto l798 + l797: + position, tokenIndex = position797, tokenIndex797 } - l778: - goto l764 - l763: - position, tokenIndex = position763, tokenIndex763 + l798: + goto l784 + l783: + position, tokenIndex = position783, tokenIndex783 } - l764: - add(ruleARMVectorRegister, position758) + l784: + add(ruleARMVectorRegister, position778) } return true - l757: - position, tokenIndex = position757, tokenIndex757 + l777: + position, tokenIndex = position777, tokenIndex777 return false }, /* 46 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / 'z' / 'Z'))> */ func() bool { - position781, tokenIndex781 := position, tokenIndex + position801, tokenIndex801 := position, tokenIndex { - position782 := position + position802 := position { - position783, tokenIndex783 := position, tokenIndex + position803, tokenIndex803 := position, tokenIndex if buffer[position] != rune('p') { - goto l784 + goto l804 } position++ - goto l783 - l784: - position, tokenIndex = position783, tokenIndex783 + goto l803 + l804: + position, tokenIndex = position803, tokenIndex803 if buffer[position] != rune('P') { - goto l781 + goto l801 } position++ } - l783: + l803: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l781 + goto l801 } position++ { - position785, tokenIndex785 := position, tokenIndex + position805, tokenIndex805 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l785 + goto l805 } position++ - goto l786 - l785: - position, tokenIndex = position785, tokenIndex785 + goto l806 + l805: + position, tokenIndex = position805, tokenIndex805 } - l786: + l806: if buffer[position] != rune('/') { - goto l781 + goto l801 } position++ { - position787, tokenIndex787 := position, tokenIndex + position807, tokenIndex807 := position, tokenIndex if buffer[position] != rune('m') { - goto l788 + goto l808 } position++ - goto l787 - l788: - position, tokenIndex = position787, tokenIndex787 + goto l807 + l808: + position, tokenIndex = position807, tokenIndex807 if buffer[position] != rune('M') { - goto l789 + goto l809 } position++ - goto l787 - l789: - position, tokenIndex = position787, tokenIndex787 + goto l807 + l809: + position, tokenIndex = position807, tokenIndex807 if buffer[position] != rune('z') { - goto l790 + goto l810 } position++ - goto l787 - l790: - position, tokenIndex = position787, tokenIndex787 + goto l807 + l810: + position, tokenIndex = position807, tokenIndex807 if buffer[position] != rune('Z') { - goto l781 + goto l801 } position++ } - l787: - add(ruleSVE2PredicateRegister, position782) + l807: + add(ruleSVE2PredicateRegister, position802) } return true - l781: - position, tokenIndex = position781, tokenIndex781 + l801: + position, tokenIndex = position801, tokenIndex801 return false }, /* 47 ARMRegisterBoundary <- <([a-z] / [A-Z] / [0-9] / '_')> */ func() bool { - position791, tokenIndex791 := position, tokenIndex + position811, tokenIndex811 := position, tokenIndex { - position792 := position + position812 := position { - position793, tokenIndex793 := position, tokenIndex + position813, tokenIndex813 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l794 + goto l814 } position++ - goto l793 - l794: - position, tokenIndex = position793, tokenIndex793 + goto l813 + l814: + position, tokenIndex = position813, tokenIndex813 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l795 + goto l815 } position++ - goto l793 - l795: - position, tokenIndex = position793, tokenIndex793 + goto l813 + l815: + position, tokenIndex = position813, tokenIndex813 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l796 + goto l816 } position++ - goto l793 - l796: - position, tokenIndex = position793, tokenIndex793 + goto l813 + l816: + position, tokenIndex = position813, tokenIndex813 if buffer[position] != rune('_') { - goto l791 + goto l811 } position++ } - l793: - add(ruleARMRegisterBoundary, position792) + l813: + add(ruleARMRegisterBoundary, position812) } return true - l791: - position, tokenIndex = position791, tokenIndex791 + l811: + position, tokenIndex = position811, tokenIndex811 return false }, /* 48 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - position797, tokenIndex797 := position, tokenIndex + position817, tokenIndex817 := position, tokenIndex { - position798 := position + position818 := position { - position799, tokenIndex799 := position, tokenIndex + position819, tokenIndex819 := position, tokenIndex if !_rules[ruleSymbolRef]() { - goto l800 + goto l820 } if !_rules[ruleBaseIndexScale]() { - goto l800 + goto l820 } - goto l799 - l800: - position, tokenIndex = position799, tokenIndex799 + goto l819 + l820: + position, tokenIndex = position819, tokenIndex819 if !_rules[ruleSymbolRef]() { - goto l801 + goto l821 } - goto l799 - l801: - position, tokenIndex = position799, tokenIndex799 + goto l819 + l821: + position, tokenIndex = position819, tokenIndex819 if !_rules[ruleLow12BitsSymbolRef]() { - goto l802 + goto l822 } - goto l799 - l802: - position, tokenIndex = position799, tokenIndex799 - l804: + goto l819 + l822: + position, tokenIndex = position819, tokenIndex819 + l824: { - position805, tokenIndex805 := position, tokenIndex + position825, tokenIndex825 := position, tokenIndex if !_rules[ruleOffset]() { - goto l805 + goto l825 } - goto l804 - l805: - position, tokenIndex = position805, tokenIndex805 + goto l824 + l825: + position, tokenIndex = position825, tokenIndex825 } if !_rules[ruleBaseIndexScale]() { - goto l803 + goto l823 } - goto l799 - l803: - position, tokenIndex = position799, tokenIndex799 + goto l819 + l823: + position, tokenIndex = position819, tokenIndex819 if !_rules[ruleSegmentRegister]() { - goto l806 + goto l826 } if !_rules[ruleOffset]() { - goto l806 + goto l826 } if !_rules[ruleBaseIndexScale]() { - goto l806 + goto l826 } - goto l799 - l806: - position, tokenIndex = position799, tokenIndex799 + goto l819 + l826: + position, tokenIndex = position819, tokenIndex819 if !_rules[ruleSegmentRegister]() { - goto l807 + goto l827 } if !_rules[ruleBaseIndexScale]() { - goto l807 + goto l827 } - goto l799 - l807: - position, tokenIndex = position799, tokenIndex799 + goto l819 + l827: + position, tokenIndex = position819, tokenIndex819 if !_rules[ruleSegmentRegister]() { - goto l808 + goto l828 } if !_rules[ruleOffset]() { - goto l808 + goto l828 } - goto l799 - l808: - position, tokenIndex = position799, tokenIndex799 + goto l819 + l828: + position, tokenIndex = position819, tokenIndex819 if !_rules[ruleARMBaseIndexScale]() { - goto l809 + goto l829 } - goto l799 - l809: - position, tokenIndex = position799, tokenIndex799 + goto l819 + l829: + position, tokenIndex = position819, tokenIndex819 if !_rules[ruleBaseIndexScale]() { - goto l797 + goto l817 } } - l799: - add(ruleMemoryRef, position798) + l819: + add(ruleMemoryRef, position818) } return true - l797: - position, tokenIndex = position797, tokenIndex797 + l817: + position, tokenIndex = position817, tokenIndex817 return false }, /* 49 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ func() bool { - position810, tokenIndex810 := position, tokenIndex + position830, tokenIndex830 := position, tokenIndex { - position811 := position + position831 := position { - position812, tokenIndex812 := position, tokenIndex - l814: + position832, tokenIndex832 := position, tokenIndex + l834: { - position815, tokenIndex815 := position, tokenIndex + position835, tokenIndex835 := position, tokenIndex if !_rules[ruleOffset]() { - goto l815 + goto l835 } - goto l814 - l815: - position, tokenIndex = position815, tokenIndex815 + goto l834 + l835: + position, tokenIndex = position835, tokenIndex835 } if buffer[position] != rune('+') { - goto l812 + goto l832 } position++ - goto l813 - l812: - position, tokenIndex = position812, tokenIndex812 + goto l833 + l832: + position, tokenIndex = position832, tokenIndex832 } - l813: + l833: { - position816, tokenIndex816 := position, tokenIndex + position836, tokenIndex836 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l817 + goto l837 } - goto l816 - l817: - position, tokenIndex = position816, tokenIndex816 + goto l836 + l837: + position, tokenIndex = position836, tokenIndex836 if !_rules[ruleSymbolName]() { - goto l810 + goto l830 } } - l816: - l818: + l836: + l838: { - position819, tokenIndex819 := position, tokenIndex + position839, tokenIndex839 := position, tokenIndex if !_rules[ruleOffset]() { - goto l819 + goto l839 } - goto l818 - l819: - position, tokenIndex = position819, tokenIndex819 + goto l838 + l839: + position, tokenIndex = position839, tokenIndex839 } { - position820, tokenIndex820 := position, tokenIndex + position840, tokenIndex840 := position, tokenIndex if buffer[position] != rune('@') { - goto l820 + goto l840 } position++ if !_rules[ruleSection]() { - goto l820 + goto l840 } - l822: + l842: { - position823, tokenIndex823 := position, tokenIndex + position843, tokenIndex843 := position, tokenIndex if !_rules[ruleOffset]() { - goto l823 + goto l843 } - goto l822 - l823: - position, tokenIndex = position823, tokenIndex823 + goto l842 + l843: + position, tokenIndex = position843, tokenIndex843 } - goto l821 - l820: - position, tokenIndex = position820, tokenIndex820 + goto l841 + l840: + position, tokenIndex = position840, tokenIndex840 } - l821: - add(ruleSymbolRef, position811) + l841: + add(ruleSymbolRef, position831) } return true - l810: - position, tokenIndex = position810, tokenIndex810 + l830: + position, tokenIndex = position830, tokenIndex830 return false }, /* 50 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ func() bool { - position824, tokenIndex824 := position, tokenIndex + position844, tokenIndex844 := position, tokenIndex { - position825 := position + position845 := position if buffer[position] != rune(':') { - goto l824 + goto l844 } position++ { - position826, tokenIndex826 := position, tokenIndex + position846, tokenIndex846 := position, tokenIndex if buffer[position] != rune('l') { - goto l827 + goto l847 } position++ - goto l826 - l827: - position, tokenIndex = position826, tokenIndex826 + goto l846 + l847: + position, tokenIndex = position846, tokenIndex846 if buffer[position] != rune('L') { - goto l824 + goto l844 } position++ } - l826: + l846: { - position828, tokenIndex828 := position, tokenIndex + position848, tokenIndex848 := position, tokenIndex if buffer[position] != rune('o') { - goto l829 + goto l849 } position++ - goto l828 - l829: - position, tokenIndex = position828, tokenIndex828 + goto l848 + l849: + position, tokenIndex = position848, tokenIndex848 if buffer[position] != rune('O') { - goto l824 + goto l844 } position++ } - l828: + l848: if buffer[position] != rune('1') { - goto l824 + goto l844 } position++ if buffer[position] != rune('2') { - goto l824 + goto l844 } position++ if buffer[position] != rune(':') { - goto l824 + goto l844 } position++ { - position830, tokenIndex830 := position, tokenIndex + position850, tokenIndex850 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l831 + goto l851 } - goto l830 - l831: - position, tokenIndex = position830, tokenIndex830 + goto l850 + l851: + position, tokenIndex = position850, tokenIndex850 if !_rules[ruleSymbolName]() { - goto l824 + goto l844 } } - l830: + l850: { - position832, tokenIndex832 := position, tokenIndex + position852, tokenIndex852 := position, tokenIndex if !_rules[ruleOffset]() { - goto l832 + goto l852 } - goto l833 - l832: - position, tokenIndex = position832, tokenIndex832 + goto l853 + l852: + position, tokenIndex = position852, tokenIndex852 } - l833: - add(ruleLow12BitsSymbolRef, position825) + l853: + add(ruleLow12BitsSymbolRef, position845) } return true - l824: - position, tokenIndex = position824, tokenIndex824 + l844: + position, tokenIndex = position844, tokenIndex844 return false }, /* 51 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#'? Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ('#'? ARMGOTLow12) / ('#'? Low12BitsSymbolRef) / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - position834, tokenIndex834 := position, tokenIndex + position854, tokenIndex854 := position, tokenIndex { - position835 := position + position855 := position if buffer[position] != rune('[') { - goto l834 + goto l854 } position++ if !_rules[ruleARMRegister]() { - goto l834 + goto l854 } { - position836, tokenIndex836 := position, tokenIndex + position856, tokenIndex856 := position, tokenIndex if buffer[position] != rune(',') { - goto l836 + goto l856 } position++ { - position838, tokenIndex838 := position, tokenIndex + position858, tokenIndex858 := position, tokenIndex if !_rules[ruleWS]() { - goto l838 + goto l858 } - goto l839 - l838: - position, tokenIndex = position838, tokenIndex838 + goto l859 + l858: + position, tokenIndex = position858, tokenIndex858 } - l839: + l859: { - position840, tokenIndex840 := position, tokenIndex + position860, tokenIndex860 := position, tokenIndex { - position842, tokenIndex842 := position, tokenIndex + position862, tokenIndex862 := position, tokenIndex if buffer[position] != rune('#') { - goto l842 + goto l862 } position++ - goto l843 - l842: - position, tokenIndex = position842, tokenIndex842 + goto l863 + l862: + position, tokenIndex = position862, tokenIndex862 } - l843: + l863: if !_rules[ruleOffset]() { - goto l841 + goto l861 } { - position844, tokenIndex844 := position, tokenIndex + position864, tokenIndex864 := position, tokenIndex { - position846, tokenIndex846 := position, tokenIndex + position866, tokenIndex866 := position, tokenIndex if buffer[position] != rune('*') { - goto l847 + goto l867 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l847 + goto l867 } position++ - l848: + l868: { - position849, tokenIndex849 := position, tokenIndex + position869, tokenIndex869 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l849 + goto l869 } position++ - goto l848 - l849: - position, tokenIndex = position849, tokenIndex849 + goto l868 + l869: + position, tokenIndex = position869, tokenIndex869 } - goto l846 - l847: - position, tokenIndex = position846, tokenIndex846 + goto l866 + l867: + position, tokenIndex = position866, tokenIndex866 if buffer[position] != rune('*') { - goto l850 + goto l870 } position++ if buffer[position] != rune('(') { - goto l850 + goto l870 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l850 + goto l870 } position++ - l851: + l871: { - position852, tokenIndex852 := position, tokenIndex + position872, tokenIndex872 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l852 + goto l872 } position++ - goto l851 - l852: - position, tokenIndex = position852, tokenIndex852 + goto l871 + l872: + position, tokenIndex = position872, tokenIndex872 } if !_rules[ruleOperator]() { - goto l850 + goto l870 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l850 + goto l870 } position++ - l853: + l873: { - position854, tokenIndex854 := position, tokenIndex + position874, tokenIndex874 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l854 + goto l874 } position++ - goto l853 - l854: - position, tokenIndex = position854, tokenIndex854 + goto l873 + l874: + position, tokenIndex = position874, tokenIndex874 } if buffer[position] != rune(')') { - goto l850 + goto l870 } position++ - goto l846 - l850: - position, tokenIndex = position846, tokenIndex846 - l855: + goto l866 + l870: + position, tokenIndex = position866, tokenIndex866 + l875: { - position856, tokenIndex856 := position, tokenIndex + position876, tokenIndex876 := position, tokenIndex if buffer[position] != rune('+') { - goto l856 + goto l876 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l856 + goto l876 } position++ - l857: + l877: { - position858, tokenIndex858 := position, tokenIndex + position878, tokenIndex878 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l858 + goto l878 } position++ - goto l857 - l858: - position, tokenIndex = position858, tokenIndex858 + goto l877 + l878: + position, tokenIndex = position878, tokenIndex878 } - goto l855 - l856: - position, tokenIndex = position856, tokenIndex856 + goto l875 + l876: + position, tokenIndex = position876, tokenIndex876 } } - l846: - goto l845 + l866: + goto l865 - position, tokenIndex = position844, tokenIndex844 + position, tokenIndex = position864, tokenIndex864 } - l845: - goto l840 - l841: - position, tokenIndex = position840, tokenIndex840 + l865: + goto l860 + l861: + position, tokenIndex = position860, tokenIndex860 { - position860, tokenIndex860 := position, tokenIndex + position880, tokenIndex880 := position, tokenIndex if buffer[position] != rune('#') { - goto l860 + goto l880 } position++ - goto l861 - l860: - position, tokenIndex = position860, tokenIndex860 + goto l881 + l880: + position, tokenIndex = position880, tokenIndex880 } - l861: + l881: if !_rules[ruleARMGOTLow12]() { - goto l859 + goto l879 } - goto l840 - l859: - position, tokenIndex = position840, tokenIndex840 + goto l860 + l879: + position, tokenIndex = position860, tokenIndex860 { - position863, tokenIndex863 := position, tokenIndex + position883, tokenIndex883 := position, tokenIndex if buffer[position] != rune('#') { - goto l863 + goto l883 } position++ - goto l864 - l863: - position, tokenIndex = position863, tokenIndex863 + goto l884 + l883: + position, tokenIndex = position883, tokenIndex883 } - l864: + l884: if !_rules[ruleLow12BitsSymbolRef]() { - goto l862 + goto l882 } - goto l840 - l862: - position, tokenIndex = position840, tokenIndex840 + goto l860 + l882: + position, tokenIndex = position860, tokenIndex860 if !_rules[ruleARMRegister]() { - goto l836 + goto l856 } } - l840: + l860: { - position865, tokenIndex865 := position, tokenIndex + position885, tokenIndex885 := position, tokenIndex if buffer[position] != rune(',') { - goto l865 + goto l885 } position++ { - position867, tokenIndex867 := position, tokenIndex + position887, tokenIndex887 := position, tokenIndex if !_rules[ruleWS]() { - goto l867 + goto l887 } - goto l868 - l867: - position, tokenIndex = position867, tokenIndex867 + goto l888 + l887: + position, tokenIndex = position887, tokenIndex887 } - l868: + l888: if !_rules[ruleARMConstantTweak]() { - goto l865 + goto l885 } - goto l866 - l865: - position, tokenIndex = position865, tokenIndex865 + goto l886 + l885: + position, tokenIndex = position885, tokenIndex885 } - l866: - goto l837 - l836: - position, tokenIndex = position836, tokenIndex836 + l886: + goto l857 + l856: + position, tokenIndex = position856, tokenIndex856 } - l837: + l857: if buffer[position] != rune(']') { - goto l834 + goto l854 } position++ { - position869, tokenIndex869 := position, tokenIndex + position889, tokenIndex889 := position, tokenIndex if !_rules[ruleARMPostincrement]() { - goto l869 + goto l889 } - goto l870 - l869: - position, tokenIndex = position869, tokenIndex869 + goto l890 + l889: + position, tokenIndex = position889, tokenIndex889 } - l870: - add(ruleARMBaseIndexScale, position835) + l890: + add(ruleARMBaseIndexScale, position855) } return true - l834: - position, tokenIndex = position834, tokenIndex834 + l854: + position, tokenIndex = position854, tokenIndex854 return false }, /* 52 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - position871, tokenIndex871 := position, tokenIndex + position891, tokenIndex891 := position, tokenIndex { - position872 := position + position892 := position if buffer[position] != rune(':') { - goto l871 + goto l891 } position++ { - position873, tokenIndex873 := position, tokenIndex + position893, tokenIndex893 := position, tokenIndex if buffer[position] != rune('g') { - goto l874 + goto l894 } position++ - goto l873 - l874: - position, tokenIndex = position873, tokenIndex873 + goto l893 + l894: + position, tokenIndex = position893, tokenIndex893 if buffer[position] != rune('G') { - goto l871 + goto l891 } position++ } - l873: + l893: { - position875, tokenIndex875 := position, tokenIndex + position895, tokenIndex895 := position, tokenIndex if buffer[position] != rune('o') { - goto l876 + goto l896 } position++ - goto l875 - l876: - position, tokenIndex = position875, tokenIndex875 + goto l895 + l896: + position, tokenIndex = position895, tokenIndex895 if buffer[position] != rune('O') { - goto l871 + goto l891 } position++ } - l875: + l895: { - position877, tokenIndex877 := position, tokenIndex + position897, tokenIndex897 := position, tokenIndex if buffer[position] != rune('t') { - goto l878 + goto l898 } position++ - goto l877 - l878: - position, tokenIndex = position877, tokenIndex877 + goto l897 + l898: + position, tokenIndex = position897, tokenIndex897 if buffer[position] != rune('T') { - goto l871 + goto l891 } position++ } - l877: + l897: if buffer[position] != rune('_') { - goto l871 + goto l891 } position++ { - position879, tokenIndex879 := position, tokenIndex + position899, tokenIndex899 := position, tokenIndex if buffer[position] != rune('l') { - goto l880 + goto l900 } position++ - goto l879 - l880: - position, tokenIndex = position879, tokenIndex879 + goto l899 + l900: + position, tokenIndex = position899, tokenIndex899 if buffer[position] != rune('L') { - goto l871 + goto l891 } position++ } - l879: + l899: { - position881, tokenIndex881 := position, tokenIndex + position901, tokenIndex901 := position, tokenIndex if buffer[position] != rune('o') { - goto l882 + goto l902 } position++ - goto l881 - l882: - position, tokenIndex = position881, tokenIndex881 + goto l901 + l902: + position, tokenIndex = position901, tokenIndex901 if buffer[position] != rune('O') { - goto l871 + goto l891 } position++ } - l881: + l901: if buffer[position] != rune('1') { - goto l871 + goto l891 } position++ if buffer[position] != rune('2') { - goto l871 + goto l891 } position++ if buffer[position] != rune(':') { - goto l871 + goto l891 } position++ if !_rules[ruleSymbolName]() { - goto l871 + goto l891 } - add(ruleARMGOTLow12, position872) + add(ruleARMGOTLow12, position892) } return true - l871: - position, tokenIndex = position871, tokenIndex871 + l891: + position, tokenIndex = position891, tokenIndex891 return false }, /* 53 ARMPostincrement <- <'!'> */ func() bool { - position883, tokenIndex883 := position, tokenIndex + position903, tokenIndex903 := position, tokenIndex { - position884 := position + position904 := position if buffer[position] != rune('!') { - goto l883 + goto l903 } position++ - add(ruleARMPostincrement, position884) + add(ruleARMPostincrement, position904) } return true - l883: - position, tokenIndex = position883, tokenIndex883 + l903: + position, tokenIndex = position903, tokenIndex903 return false }, /* 54 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ func() bool { - position885, tokenIndex885 := position, tokenIndex + position905, tokenIndex905 := position, tokenIndex { - position886 := position + position906 := position if buffer[position] != rune('(') { - goto l885 + goto l905 } position++ { - position887, tokenIndex887 := position, tokenIndex + position907, tokenIndex907 := position, tokenIndex if !_rules[ruleRegisterOrConstant]() { - goto l887 + goto l907 } - goto l888 - l887: - position, tokenIndex = position887, tokenIndex887 + goto l908 + l907: + position, tokenIndex = position907, tokenIndex907 } - l888: + l908: { - position889, tokenIndex889 := position, tokenIndex + position909, tokenIndex909 := position, tokenIndex if !_rules[ruleWS]() { - goto l889 + goto l909 } - goto l890 - l889: - position, tokenIndex = position889, tokenIndex889 + goto l910 + l909: + position, tokenIndex = position909, tokenIndex909 } - l890: + l910: { - position891, tokenIndex891 := position, tokenIndex + position911, tokenIndex911 := position, tokenIndex if buffer[position] != rune(',') { - goto l891 + goto l911 } position++ { - position893, tokenIndex893 := position, tokenIndex + position913, tokenIndex913 := position, tokenIndex if !_rules[ruleWS]() { - goto l893 + goto l913 } - goto l894 - l893: - position, tokenIndex = position893, tokenIndex893 + goto l914 + l913: + position, tokenIndex = position913, tokenIndex913 } - l894: + l914: if !_rules[ruleRegisterOrConstant]() { - goto l891 + goto l911 } { - position895, tokenIndex895 := position, tokenIndex + position915, tokenIndex915 := position, tokenIndex if !_rules[ruleWS]() { - goto l895 + goto l915 } - goto l896 - l895: - position, tokenIndex = position895, tokenIndex895 + goto l916 + l915: + position, tokenIndex = position915, tokenIndex915 } - l896: + l916: { - position897, tokenIndex897 := position, tokenIndex + position917, tokenIndex917 := position, tokenIndex if buffer[position] != rune(',') { - goto l897 + goto l917 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l897 + goto l917 } position++ - l899: + l919: { - position900, tokenIndex900 := position, tokenIndex + position920, tokenIndex920 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l900 + goto l920 } position++ - goto l899 - l900: - position, tokenIndex = position900, tokenIndex900 + goto l919 + l920: + position, tokenIndex = position920, tokenIndex920 } - goto l898 - l897: - position, tokenIndex = position897, tokenIndex897 + goto l918 + l917: + position, tokenIndex = position917, tokenIndex917 } - l898: - goto l892 - l891: - position, tokenIndex = position891, tokenIndex891 + l918: + goto l912 + l911: + position, tokenIndex = position911, tokenIndex911 } - l892: + l912: if buffer[position] != rune(')') { - goto l885 + goto l905 } position++ - add(ruleBaseIndexScale, position886) + add(ruleBaseIndexScale, position906) } return true - l885: - position, tokenIndex = position885, tokenIndex885 + l905: + position, tokenIndex = position905, tokenIndex905 return false }, /* 55 Operator <- <('+' / '-')> */ func() bool { - position901, tokenIndex901 := position, tokenIndex + position921, tokenIndex921 := position, tokenIndex { - position902 := position + position922 := position { - position903, tokenIndex903 := position, tokenIndex + position923, tokenIndex923 := position, tokenIndex if buffer[position] != rune('+') { - goto l904 + goto l924 } position++ - goto l903 - l904: - position, tokenIndex = position903, tokenIndex903 + goto l923 + l924: + position, tokenIndex = position923, tokenIndex923 if buffer[position] != rune('-') { - goto l901 + goto l921 } position++ } - l903: - add(ruleOperator, position902) + l923: + add(ruleOperator, position922) } return true - l901: - position, tokenIndex = position901, tokenIndex901 + l921: + position, tokenIndex = position921, tokenIndex921 return false }, /* 56 OffsetOperator <- <('+' / '-' / '*')> */ func() bool { - position905, tokenIndex905 := position, tokenIndex + position925, tokenIndex925 := position, tokenIndex { - position906 := position + position926 := position { - position907, tokenIndex907 := position, tokenIndex + position927, tokenIndex927 := position, tokenIndex if buffer[position] != rune('+') { - goto l908 + goto l928 } position++ - goto l907 - l908: - position, tokenIndex = position907, tokenIndex907 + goto l927 + l928: + position, tokenIndex = position927, tokenIndex927 if buffer[position] != rune('-') { - goto l909 + goto l929 } position++ - goto l907 - l909: - position, tokenIndex = position907, tokenIndex907 + goto l927 + l929: + position, tokenIndex = position927, tokenIndex927 if buffer[position] != rune('*') { - goto l905 + goto l925 } position++ } - l907: - add(ruleOffsetOperator, position906) + l927: + add(ruleOffsetOperator, position926) } return true - l905: - position, tokenIndex = position905, tokenIndex905 + l925: + position, tokenIndex = position925, tokenIndex925 return false }, /* 57 S2nBignumHelper <- <('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ ')' WS? OffsetOperator? WS?)> */ func() bool { - position910, tokenIndex910 := position, tokenIndex + position930, tokenIndex930 := position, tokenIndex { - position911 := position + position931 := position if buffer[position] != rune('(') { - goto l910 + goto l930 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l910 + goto l930 } position++ - l912: + l932: { - position913, tokenIndex913 := position, tokenIndex + position933, tokenIndex933 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l913 + goto l933 } position++ - goto l912 - l913: - position, tokenIndex = position913, tokenIndex913 + goto l932 + l933: + position, tokenIndex = position933, tokenIndex933 } { - position914, tokenIndex914 := position, tokenIndex + position934, tokenIndex934 := position, tokenIndex if !_rules[ruleWS]() { - goto l914 + goto l934 } - goto l915 - l914: - position, tokenIndex = position914, tokenIndex914 + goto l935 + l934: + position, tokenIndex = position934, tokenIndex934 } - l915: + l935: if !_rules[ruleOffsetOperator]() { - goto l910 + goto l930 } { - position916, tokenIndex916 := position, tokenIndex + position936, tokenIndex936 := position, tokenIndex if !_rules[ruleWS]() { - goto l916 + goto l936 } - goto l917 - l916: - position, tokenIndex = position916, tokenIndex916 + goto l937 + l936: + position, tokenIndex = position936, tokenIndex936 } - l917: + l937: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l910 + goto l930 } position++ - l918: + l938: { - position919, tokenIndex919 := position, tokenIndex + position939, tokenIndex939 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l919 + goto l939 } position++ - goto l918 - l919: - position, tokenIndex = position919, tokenIndex919 + goto l938 + l939: + position, tokenIndex = position939, tokenIndex939 } if buffer[position] != rune(')') { - goto l910 + goto l930 } position++ { - position920, tokenIndex920 := position, tokenIndex + position940, tokenIndex940 := position, tokenIndex if !_rules[ruleWS]() { - goto l920 + goto l940 } - goto l921 - l920: - position, tokenIndex = position920, tokenIndex920 + goto l941 + l940: + position, tokenIndex = position940, tokenIndex940 } - l921: + l941: { - position922, tokenIndex922 := position, tokenIndex + position942, tokenIndex942 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l922 + goto l942 } - goto l923 - l922: - position, tokenIndex = position922, tokenIndex922 + goto l943 + l942: + position, tokenIndex = position942, tokenIndex942 } - l923: + l943: { - position924, tokenIndex924 := position, tokenIndex + position944, tokenIndex944 := position, tokenIndex if !_rules[ruleWS]() { - goto l924 + goto l944 } - goto l925 - l924: - position, tokenIndex = position924, tokenIndex924 + goto l945 + l944: + position, tokenIndex = position944, tokenIndex944 } - l925: - add(ruleS2nBignumHelper, position911) + l945: + add(ruleS2nBignumHelper, position931) } return true - l910: - position, tokenIndex = position910, tokenIndex910 + l930: + position, tokenIndex = position930, tokenIndex930 return false }, /* 58 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / ((([0-9]+ WS OffsetOperator [0-9]+) / ([0-9]+ (OffsetOperator '(' [0-9]+ OffsetOperator [0-9]+ ')')?) / ([0-9]+ (OffsetOperator [0-9]+ OffsetOperator [0-9]+)?) / ([0-9]+ (OffsetOperator [0-9]+)?) / (S2nBignumHelper S2nBignumHelper (S2nBignumHelper ([0-9]+ OffsetOperator)? [0-9]+ OffsetOperator)? [0-9]+) / (S2nBignumHelper [0-9]+ ((WS? OffsetOperator [0-9]+ (WS? OffsetOperator [0-9]+)?) / !'x')) / S2nBignumHelper / ('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ WS? OffsetOperator WS? [0-9]+ ')')) !([a-z] / [A-Z]))))> */ func() bool { - position926, tokenIndex926 := position, tokenIndex + position946, tokenIndex946 := position, tokenIndex { - position927 := position + position947 := position { - position928, tokenIndex928 := position, tokenIndex + position948, tokenIndex948 := position, tokenIndex if buffer[position] != rune('+') { - goto l928 + goto l948 } position++ - goto l929 - l928: - position, tokenIndex = position928, tokenIndex928 + goto l949 + l948: + position, tokenIndex = position948, tokenIndex948 } - l929: + l949: { - position930, tokenIndex930 := position, tokenIndex + position950, tokenIndex950 := position, tokenIndex if buffer[position] != rune('-') { - goto l930 + goto l950 } position++ - goto l931 - l930: - position, tokenIndex = position930, tokenIndex930 + goto l951 + l950: + position, tokenIndex = position950, tokenIndex950 } - l931: + l951: { - position932, tokenIndex932 := position, tokenIndex + position952, tokenIndex952 := position, tokenIndex if buffer[position] != rune('0') { - goto l933 + goto l953 } position++ { - position934, tokenIndex934 := position, tokenIndex + position954, tokenIndex954 := position, tokenIndex if buffer[position] != rune('b') { - goto l935 + goto l955 } position++ - goto l934 - l935: - position, tokenIndex = position934, tokenIndex934 + goto l954 + l955: + position, tokenIndex = position954, tokenIndex954 if buffer[position] != rune('B') { - goto l933 + goto l953 } position++ } - l934: + l954: { - position938, tokenIndex938 := position, tokenIndex + position958, tokenIndex958 := position, tokenIndex if buffer[position] != rune('0') { - goto l939 + goto l959 } position++ - goto l938 - l939: - position, tokenIndex = position938, tokenIndex938 + goto l958 + l959: + position, tokenIndex = position958, tokenIndex958 if buffer[position] != rune('1') { - goto l933 + goto l953 } position++ } - l938: - l936: + l958: + l956: { - position937, tokenIndex937 := position, tokenIndex + position957, tokenIndex957 := position, tokenIndex { - position940, tokenIndex940 := position, tokenIndex + position960, tokenIndex960 := position, tokenIndex if buffer[position] != rune('0') { - goto l941 + goto l961 } position++ - goto l940 - l941: - position, tokenIndex = position940, tokenIndex940 + goto l960 + l961: + position, tokenIndex = position960, tokenIndex960 if buffer[position] != rune('1') { - goto l937 + goto l957 } position++ } - l940: - goto l936 - l937: - position, tokenIndex = position937, tokenIndex937 + l960: + goto l956 + l957: + position, tokenIndex = position957, tokenIndex957 } - goto l932 - l933: - position, tokenIndex = position932, tokenIndex932 + goto l952 + l953: + position, tokenIndex = position952, tokenIndex952 if buffer[position] != rune('0') { - goto l942 + goto l962 } position++ { - position943, tokenIndex943 := position, tokenIndex + position963, tokenIndex963 := position, tokenIndex if buffer[position] != rune('x') { - goto l944 + goto l964 } position++ - goto l943 - l944: - position, tokenIndex = position943, tokenIndex943 + goto l963 + l964: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('X') { - goto l942 + goto l962 } position++ } - l943: + l963: { - position947, tokenIndex947 := position, tokenIndex + position967, tokenIndex967 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l948 + goto l968 } position++ - goto l947 - l948: - position, tokenIndex = position947, tokenIndex947 + goto l967 + l968: + position, tokenIndex = position967, tokenIndex967 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l949 + goto l969 } position++ - goto l947 - l949: - position, tokenIndex = position947, tokenIndex947 + goto l967 + l969: + position, tokenIndex = position967, tokenIndex967 { - position950, tokenIndex950 := position, tokenIndex + position970, tokenIndex970 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l951 + goto l971 } position++ - goto l950 - l951: - position, tokenIndex = position950, tokenIndex950 + goto l970 + l971: + position, tokenIndex = position970, tokenIndex970 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l942 + goto l962 } position++ } - l950: + l970: } - l947: - l945: + l967: + l965: { - position946, tokenIndex946 := position, tokenIndex + position966, tokenIndex966 := position, tokenIndex { - position952, tokenIndex952 := position, tokenIndex + position972, tokenIndex972 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l953 + goto l973 } position++ - goto l952 - l953: - position, tokenIndex = position952, tokenIndex952 + goto l972 + l973: + position, tokenIndex = position972, tokenIndex972 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l954 + goto l974 } position++ - goto l952 - l954: - position, tokenIndex = position952, tokenIndex952 + goto l972 + l974: + position, tokenIndex = position972, tokenIndex972 { - position955, tokenIndex955 := position, tokenIndex + position975, tokenIndex975 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l956 + goto l976 } position++ - goto l955 - l956: - position, tokenIndex = position955, tokenIndex955 + goto l975 + l976: + position, tokenIndex = position975, tokenIndex975 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l946 + goto l966 } position++ } - l955: + l975: } - l952: - goto l945 - l946: - position, tokenIndex = position946, tokenIndex946 + l972: + goto l965 + l966: + position, tokenIndex = position966, tokenIndex966 } - goto l932 - l942: - position, tokenIndex = position932, tokenIndex932 + goto l952 + l962: + position, tokenIndex = position952, tokenIndex952 { - position957, tokenIndex957 := position, tokenIndex + position977, tokenIndex977 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l958 + goto l978 } position++ - l959: + l979: { - position960, tokenIndex960 := position, tokenIndex + position980, tokenIndex980 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l960 + goto l980 } position++ - goto l959 - l960: - position, tokenIndex = position960, tokenIndex960 + goto l979 + l980: + position, tokenIndex = position980, tokenIndex980 } if !_rules[ruleWS]() { - goto l958 + goto l978 } if !_rules[ruleOffsetOperator]() { - goto l958 + goto l978 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l958 + goto l978 } position++ - l961: + l981: { - position962, tokenIndex962 := position, tokenIndex + position982, tokenIndex982 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l962 + goto l982 } position++ - goto l961 - l962: - position, tokenIndex = position962, tokenIndex962 + goto l981 + l982: + position, tokenIndex = position982, tokenIndex982 } - goto l957 - l958: - position, tokenIndex = position957, tokenIndex957 + goto l977 + l978: + position, tokenIndex = position977, tokenIndex977 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l963 + goto l983 } position++ - l964: + l984: { - position965, tokenIndex965 := position, tokenIndex + position985, tokenIndex985 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l965 + goto l985 } position++ - goto l964 - l965: - position, tokenIndex = position965, tokenIndex965 + goto l984 + l985: + position, tokenIndex = position985, tokenIndex985 } { - position966, tokenIndex966 := position, tokenIndex + position986, tokenIndex986 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l966 + goto l986 } if buffer[position] != rune('(') { - goto l966 + goto l986 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l966 + goto l986 } position++ - l968: + l988: { - position969, tokenIndex969 := position, tokenIndex + position989, tokenIndex989 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l969 + goto l989 } position++ - goto l968 - l969: - position, tokenIndex = position969, tokenIndex969 + goto l988 + l989: + position, tokenIndex = position989, tokenIndex989 } if !_rules[ruleOffsetOperator]() { - goto l966 + goto l986 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l966 + goto l986 } position++ - l970: + l990: { - position971, tokenIndex971 := position, tokenIndex + position991, tokenIndex991 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l971 + goto l991 } position++ - goto l970 - l971: - position, tokenIndex = position971, tokenIndex971 + goto l990 + l991: + position, tokenIndex = position991, tokenIndex991 } if buffer[position] != rune(')') { - goto l966 + goto l986 } position++ - goto l967 - l966: - position, tokenIndex = position966, tokenIndex966 + goto l987 + l986: + position, tokenIndex = position986, tokenIndex986 } - l967: - goto l957 - l963: - position, tokenIndex = position957, tokenIndex957 + l987: + goto l977 + l983: + position, tokenIndex = position977, tokenIndex977 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l972 + goto l992 } position++ - l973: + l993: { - position974, tokenIndex974 := position, tokenIndex + position994, tokenIndex994 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l974 + goto l994 } position++ - goto l973 - l974: - position, tokenIndex = position974, tokenIndex974 + goto l993 + l994: + position, tokenIndex = position994, tokenIndex994 } { - position975, tokenIndex975 := position, tokenIndex + position995, tokenIndex995 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l975 + goto l995 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l975 + goto l995 } position++ - l977: + l997: { - position978, tokenIndex978 := position, tokenIndex + position998, tokenIndex998 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l978 + goto l998 } position++ - goto l977 - l978: - position, tokenIndex = position978, tokenIndex978 + goto l997 + l998: + position, tokenIndex = position998, tokenIndex998 } if !_rules[ruleOffsetOperator]() { - goto l975 + goto l995 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l975 + goto l995 } position++ - l979: + l999: { - position980, tokenIndex980 := position, tokenIndex + position1000, tokenIndex1000 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l980 + goto l1000 } position++ - goto l979 - l980: - position, tokenIndex = position980, tokenIndex980 + goto l999 + l1000: + position, tokenIndex = position1000, tokenIndex1000 } - goto l976 - l975: - position, tokenIndex = position975, tokenIndex975 + goto l996 + l995: + position, tokenIndex = position995, tokenIndex995 } - l976: - goto l957 - l972: - position, tokenIndex = position957, tokenIndex957 + l996: + goto l977 + l992: + position, tokenIndex = position977, tokenIndex977 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l981 + goto l1001 } position++ - l982: + l1002: { - position983, tokenIndex983 := position, tokenIndex + position1003, tokenIndex1003 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l983 + goto l1003 } position++ - goto l982 - l983: - position, tokenIndex = position983, tokenIndex983 + goto l1002 + l1003: + position, tokenIndex = position1003, tokenIndex1003 } { - position984, tokenIndex984 := position, tokenIndex + position1004, tokenIndex1004 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l984 + goto l1004 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l984 + goto l1004 } position++ - l986: + l1006: { - position987, tokenIndex987 := position, tokenIndex + position1007, tokenIndex1007 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l987 + goto l1007 } position++ - goto l986 - l987: - position, tokenIndex = position987, tokenIndex987 + goto l1006 + l1007: + position, tokenIndex = position1007, tokenIndex1007 } - goto l985 - l984: - position, tokenIndex = position984, tokenIndex984 + goto l1005 + l1004: + position, tokenIndex = position1004, tokenIndex1004 } - l985: - goto l957 - l981: - position, tokenIndex = position957, tokenIndex957 + l1005: + goto l977 + l1001: + position, tokenIndex = position977, tokenIndex977 if !_rules[ruleS2nBignumHelper]() { - goto l988 + goto l1008 } if !_rules[ruleS2nBignumHelper]() { - goto l988 + goto l1008 } { - position989, tokenIndex989 := position, tokenIndex + position1009, tokenIndex1009 := position, tokenIndex if !_rules[ruleS2nBignumHelper]() { - goto l989 + goto l1009 } { - position991, tokenIndex991 := position, tokenIndex + position1011, tokenIndex1011 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l991 + goto l1011 } position++ - l993: + l1013: { - position994, tokenIndex994 := position, tokenIndex + position1014, tokenIndex1014 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l994 + goto l1014 } position++ - goto l993 - l994: - position, tokenIndex = position994, tokenIndex994 + goto l1013 + l1014: + position, tokenIndex = position1014, tokenIndex1014 } if !_rules[ruleOffsetOperator]() { - goto l991 + goto l1011 } - goto l992 - l991: - position, tokenIndex = position991, tokenIndex991 + goto l1012 + l1011: + position, tokenIndex = position1011, tokenIndex1011 } - l992: + l1012: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l989 + goto l1009 } position++ - l995: + l1015: { - position996, tokenIndex996 := position, tokenIndex + position1016, tokenIndex1016 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l996 + goto l1016 } position++ - goto l995 - l996: - position, tokenIndex = position996, tokenIndex996 + goto l1015 + l1016: + position, tokenIndex = position1016, tokenIndex1016 } if !_rules[ruleOffsetOperator]() { - goto l989 + goto l1009 } - goto l990 - l989: - position, tokenIndex = position989, tokenIndex989 + goto l1010 + l1009: + position, tokenIndex = position1009, tokenIndex1009 } - l990: + l1010: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l988 + goto l1008 } position++ - l997: + l1017: { - position998, tokenIndex998 := position, tokenIndex + position1018, tokenIndex1018 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l998 + goto l1018 } position++ - goto l997 - l998: - position, tokenIndex = position998, tokenIndex998 + goto l1017 + l1018: + position, tokenIndex = position1018, tokenIndex1018 } - goto l957 - l988: - position, tokenIndex = position957, tokenIndex957 + goto l977 + l1008: + position, tokenIndex = position977, tokenIndex977 if !_rules[ruleS2nBignumHelper]() { - goto l999 + goto l1019 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l999 + goto l1019 } position++ - l1000: + l1020: { - position1001, tokenIndex1001 := position, tokenIndex + position1021, tokenIndex1021 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1001 + goto l1021 } position++ - goto l1000 - l1001: - position, tokenIndex = position1001, tokenIndex1001 + goto l1020 + l1021: + position, tokenIndex = position1021, tokenIndex1021 } { - position1002, tokenIndex1002 := position, tokenIndex + position1022, tokenIndex1022 := position, tokenIndex { - position1004, tokenIndex1004 := position, tokenIndex + position1024, tokenIndex1024 := position, tokenIndex if !_rules[ruleWS]() { - goto l1004 + goto l1024 } - goto l1005 - l1004: - position, tokenIndex = position1004, tokenIndex1004 + goto l1025 + l1024: + position, tokenIndex = position1024, tokenIndex1024 } - l1005: + l1025: if !_rules[ruleOffsetOperator]() { - goto l1003 + goto l1023 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1003 + goto l1023 } position++ - l1006: + l1026: { - position1007, tokenIndex1007 := position, tokenIndex + position1027, tokenIndex1027 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1007 + goto l1027 } position++ - goto l1006 - l1007: - position, tokenIndex = position1007, tokenIndex1007 + goto l1026 + l1027: + position, tokenIndex = position1027, tokenIndex1027 } { - position1008, tokenIndex1008 := position, tokenIndex + position1028, tokenIndex1028 := position, tokenIndex { - position1010, tokenIndex1010 := position, tokenIndex + position1030, tokenIndex1030 := position, tokenIndex if !_rules[ruleWS]() { - goto l1010 + goto l1030 } - goto l1011 - l1010: - position, tokenIndex = position1010, tokenIndex1010 + goto l1031 + l1030: + position, tokenIndex = position1030, tokenIndex1030 } - l1011: + l1031: if !_rules[ruleOffsetOperator]() { - goto l1008 + goto l1028 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1008 + goto l1028 } position++ - l1012: + l1032: { - position1013, tokenIndex1013 := position, tokenIndex + position1033, tokenIndex1033 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1013 + goto l1033 } position++ - goto l1012 - l1013: - position, tokenIndex = position1013, tokenIndex1013 + goto l1032 + l1033: + position, tokenIndex = position1033, tokenIndex1033 } - goto l1009 - l1008: - position, tokenIndex = position1008, tokenIndex1008 + goto l1029 + l1028: + position, tokenIndex = position1028, tokenIndex1028 } - l1009: - goto l1002 - l1003: - position, tokenIndex = position1002, tokenIndex1002 + l1029: + goto l1022 + l1023: + position, tokenIndex = position1022, tokenIndex1022 { - position1014, tokenIndex1014 := position, tokenIndex + position1034, tokenIndex1034 := position, tokenIndex if buffer[position] != rune('x') { - goto l1014 + goto l1034 } position++ - goto l999 - l1014: - position, tokenIndex = position1014, tokenIndex1014 + goto l1019 + l1034: + position, tokenIndex = position1034, tokenIndex1034 } } - l1002: - goto l957 - l999: - position, tokenIndex = position957, tokenIndex957 + l1022: + goto l977 + l1019: + position, tokenIndex = position977, tokenIndex977 if !_rules[ruleS2nBignumHelper]() { - goto l1015 + goto l1035 } - goto l957 - l1015: - position, tokenIndex = position957, tokenIndex957 + goto l977 + l1035: + position, tokenIndex = position977, tokenIndex977 if buffer[position] != rune('(') { - goto l926 + goto l946 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 + goto l946 } position++ - l1016: + l1036: { - position1017, tokenIndex1017 := position, tokenIndex + position1037, tokenIndex1037 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1017 + goto l1037 } position++ - goto l1016 - l1017: - position, tokenIndex = position1017, tokenIndex1017 + goto l1036 + l1037: + position, tokenIndex = position1037, tokenIndex1037 } { - position1018, tokenIndex1018 := position, tokenIndex + position1038, tokenIndex1038 := position, tokenIndex if !_rules[ruleWS]() { - goto l1018 + goto l1038 } - goto l1019 - l1018: - position, tokenIndex = position1018, tokenIndex1018 + goto l1039 + l1038: + position, tokenIndex = position1038, tokenIndex1038 } - l1019: + l1039: if !_rules[ruleOffsetOperator]() { - goto l926 + goto l946 } { - position1020, tokenIndex1020 := position, tokenIndex + position1040, tokenIndex1040 := position, tokenIndex if !_rules[ruleWS]() { - goto l1020 + goto l1040 } - goto l1021 - l1020: - position, tokenIndex = position1020, tokenIndex1020 + goto l1041 + l1040: + position, tokenIndex = position1040, tokenIndex1040 } - l1021: + l1041: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 + goto l946 } position++ - l1022: + l1042: { - position1023, tokenIndex1023 := position, tokenIndex + position1043, tokenIndex1043 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1023 + goto l1043 } position++ - goto l1022 - l1023: - position, tokenIndex = position1023, tokenIndex1023 + goto l1042 + l1043: + position, tokenIndex = position1043, tokenIndex1043 } { - position1024, tokenIndex1024 := position, tokenIndex + position1044, tokenIndex1044 := position, tokenIndex if !_rules[ruleWS]() { - goto l1024 + goto l1044 } - goto l1025 - l1024: - position, tokenIndex = position1024, tokenIndex1024 + goto l1045 + l1044: + position, tokenIndex = position1044, tokenIndex1044 } - l1025: + l1045: if !_rules[ruleOffsetOperator]() { - goto l926 + goto l946 } { - position1026, tokenIndex1026 := position, tokenIndex + position1046, tokenIndex1046 := position, tokenIndex if !_rules[ruleWS]() { - goto l1026 + goto l1046 } - goto l1027 - l1026: - position, tokenIndex = position1026, tokenIndex1026 + goto l1047 + l1046: + position, tokenIndex = position1046, tokenIndex1046 } - l1027: + l1047: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 + goto l946 } position++ - l1028: + l1048: { - position1029, tokenIndex1029 := position, tokenIndex + position1049, tokenIndex1049 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1029 + goto l1049 } position++ - goto l1028 - l1029: - position, tokenIndex = position1029, tokenIndex1029 + goto l1048 + l1049: + position, tokenIndex = position1049, tokenIndex1049 } if buffer[position] != rune(')') { - goto l926 + goto l946 } position++ } - l957: + l977: { - position1030, tokenIndex1030 := position, tokenIndex + position1050, tokenIndex1050 := position, tokenIndex { - position1031, tokenIndex1031 := position, tokenIndex + position1051, tokenIndex1051 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1032 + goto l1052 } position++ - goto l1031 - l1032: - position, tokenIndex = position1031, tokenIndex1031 + goto l1051 + l1052: + position, tokenIndex = position1051, tokenIndex1051 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1030 + goto l1050 } position++ } - l1031: - goto l926 - l1030: - position, tokenIndex = position1030, tokenIndex1030 + l1051: + goto l946 + l1050: + position, tokenIndex = position1050, tokenIndex1050 } } - l932: - add(ruleOffset, position927) + l952: + add(ruleOffset, position947) } return true - l926: - position, tokenIndex = position926, tokenIndex926 + l946: + position, tokenIndex = position946, tokenIndex946 return false }, /* 59 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - position1033, tokenIndex1033 := position, tokenIndex + position1053, tokenIndex1053 := position, tokenIndex { - position1034 := position + position1054 := position { - position1037, tokenIndex1037 := position, tokenIndex + position1057, tokenIndex1057 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1038 + goto l1058 } position++ - goto l1037 - l1038: - position, tokenIndex = position1037, tokenIndex1037 + goto l1057 + l1058: + position, tokenIndex = position1057, tokenIndex1057 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1039 + goto l1059 } position++ - goto l1037 - l1039: - position, tokenIndex = position1037, tokenIndex1037 + goto l1057 + l1059: + position, tokenIndex = position1057, tokenIndex1057 if buffer[position] != rune('@') { - goto l1033 + goto l1053 } position++ } - l1037: - l1035: + l1057: + l1055: { - position1036, tokenIndex1036 := position, tokenIndex + position1056, tokenIndex1056 := position, tokenIndex { - position1040, tokenIndex1040 := position, tokenIndex + position1060, tokenIndex1060 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1041 + goto l1061 } position++ - goto l1040 - l1041: - position, tokenIndex = position1040, tokenIndex1040 + goto l1060 + l1061: + position, tokenIndex = position1060, tokenIndex1060 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1042 + goto l1062 } position++ - goto l1040 - l1042: - position, tokenIndex = position1040, tokenIndex1040 + goto l1060 + l1062: + position, tokenIndex = position1060, tokenIndex1060 if buffer[position] != rune('@') { - goto l1036 + goto l1056 } position++ } - l1040: - goto l1035 - l1036: - position, tokenIndex = position1036, tokenIndex1036 + l1060: + goto l1055 + l1056: + position, tokenIndex = position1056, tokenIndex1056 } - add(ruleSection, position1034) + add(ruleSection, position1054) } return true - l1033: - position, tokenIndex = position1033, tokenIndex1033 + l1053: + position, tokenIndex = position1053, tokenIndex1053 return false }, /* 60 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ func() bool { - position1043, tokenIndex1043 := position, tokenIndex + position1063, tokenIndex1063 := position, tokenIndex { - position1044 := position + position1064 := position if buffer[position] != rune('%') { - goto l1043 + goto l1063 } position++ { - position1045, tokenIndex1045 := position, tokenIndex + position1065, tokenIndex1065 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l1046 + goto l1066 } position++ - goto l1045 - l1046: - position, tokenIndex = position1045, tokenIndex1045 + goto l1065 + l1066: + position, tokenIndex = position1065, tokenIndex1065 if buffer[position] != rune('s') { - goto l1043 + goto l1063 } position++ } - l1045: + l1065: if buffer[position] != rune('s') { - goto l1043 + goto l1063 } position++ if buffer[position] != rune(':') { - goto l1043 + goto l1063 } position++ - add(ruleSegmentRegister, position1044) + add(ruleSegmentRegister, position1064) } return true - l1043: - position, tokenIndex = position1043, tokenIndex1043 + l1063: + position, tokenIndex = position1063, tokenIndex1063 return false }, } diff --git a/util/fipstools/delocate/delocate_test.go b/util/fipstools/delocate/delocate_test.go index 0c12feb400..0016e0c2f5 100644 --- a/util/fipstools/delocate/delocate_test.go +++ b/util/fipstools/delocate/delocate_test.go @@ -19,6 +19,7 @@ import ( "flag" "os" "path/filepath" + "strings" "testing" ) @@ -86,8 +87,20 @@ func TestDelocate(t *testing.T) { if err != nil { t.Fatalf("could not read %q: %s", test.Path(test.out), err) } - if !bytes.Equal(buf.Bytes(), expected) { - t.Errorf("delocated output differed. Wanted:\n%s\nGot:\n%s\n", expected, buf.Bytes()) + + got := buf.Bytes() + if !bytes.Equal(got, expected) { + t.Errorf("delocated output differed.\nWanted:\n%s\nGot:\n%s\n", expected, got) + + expectedLines := strings.Split(string(expected), "\n") + gotLines := strings.Split(string(got), "\n") + + for i := 0; i < len(expectedLines) && i < len(gotLines); i++ { + if expectedLines[i] != gotLines[i] { + t.Errorf("\nFirst difference at line %d:\nExpected:\t%q\nGot:\t%q\n", i+1, expectedLines[i], gotLines[i]) + break + } + } } } }) diff --git a/util/fipstools/delocate/testdata/aarch64-Basic/in.s b/util/fipstools/delocate/testdata/aarch64-Basic/in.s index afda6c5e34..48ea3b1ade 100644 --- a/util/fipstools/delocate/testdata/aarch64-Basic/in.s +++ b/util/fipstools/delocate/testdata/aarch64-Basic/in.s @@ -86,6 +86,14 @@ foo: add w0, w1, b2, sxtw add w0, w1, b2, sxtx + // Test other shifts + add x0, x1, x2, lsl #2 + add x0, x1, x2, lsr #2 + ldr x0, [x1, x2, asl #3] + add x0, x1, x2, asr #2 + add x0, x1, x2, ror #2 + add x0, x1, x2, rol #2 + // Make sure we can parse different immediates add x22, sp, #(13*32) add x22, sp, #(13*32)+96 diff --git a/util/fipstools/delocate/testdata/aarch64-Basic/out.s b/util/fipstools/delocate/testdata/aarch64-Basic/out.s index d5b344136b..3234b80414 100644 --- a/util/fipstools/delocate/testdata/aarch64-Basic/out.s +++ b/util/fipstools/delocate/testdata/aarch64-Basic/out.s @@ -179,6 +179,14 @@ foo: add w0, w1, b2, sxtw add w0, w1, b2, sxtx + // Test other shifts + add x0, x1, x2, lsl #2 + add x0, x1, x2, lsr #2 + ldr x0, [x1, x2, asl #3] + add x0, x1, x2, asr #2 + add x0, x1, x2, ror #2 + add x0, x1, x2, rol #2 + // Make sure we can parse different immediates add x22, sp, #(13*32) add x22, sp, #(13*32)+96 diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s index 8bb2ffc55c..8ec9183455 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s @@ -10,6 +10,12 @@ x25519_foo: movq $0, %rax ret + .type ROL64, @function + .globl ROL64 +ROL64: + movq $0, %rax + ret + bar: # References to globals must be rewritten to their local targets. call foo @@ -21,6 +27,9 @@ bar: # matched as global symbols and rewritten to the corresponding local target. call x25519_foo + # Refernces potentially matching arm instructions e.g. arm rol, and label ROL64 + callq ROL64 + # Jumps to PLT symbols are rewritten through redirectors. call memcpy@PLT jmp memcpy@PLT diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s index 55ad1addf6..0b997dcc36 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s @@ -51,6 +51,13 @@ x25519_foo: movq $0, %rax ret + .type ROL64, @function + .globl ROL64 +.LROL64_local_target: +ROL64: + movq $0, %rax + ret + .Lbar_local_target: bar: # References to globals must be rewritten to their local targets. @@ -68,6 +75,10 @@ bar: # WAS call x25519_foo call .Lx25519_foo_local_target + # Refernces potentially matching arm instructions e.g. arm rol, and label ROL64 +# WAS callq ROL64 + callq .LROL64_local_target + # Jumps to PLT symbols are rewritten through redirectors. # WAS call memcpy@PLT call .Lbcm_redirector_memcpy