Allow local labels in symbol expressions Newer GCCs emit code like `.long 3f - 2f`. Change-Id: I0af4d31def5e5ef88251e5f9e3d18944921cd38b Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/69149 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index ff23a80..c719859 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg
@@ -50,7 +50,7 @@ SymbolArg <- SymbolExpr SymbolExpr <- SymbolAtom (WS? SymbolOperator WS? SymbolExpr)? -SymbolAtom <- Offset / SymbolType / LocalSymbol TCMarker? / SymbolName Offset / SymbolName TCMarker? / Dot / OpenParen WS? SymbolExpr WS? CloseParen +SymbolAtom <- LocalLabelRef / Offset / SymbolType / LocalSymbol TCMarker? / SymbolName Offset / SymbolName TCMarker? / Dot / OpenParen WS? SymbolExpr WS? CloseParen SymbolOperator <- '+' / '-' / '|' / '<<' / '>>' OpenParen <- '(' CloseParen <- ')'
diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go index aa93136..ee8a108 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go
@@ -2670,98 +2670,104 @@ position, tokenIndex = position304, tokenIndex304 return false }, - /* 17 SymbolAtom <- <(Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ + /* 17 SymbolAtom <- <(LocalLabelRef / Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ func() bool { position312, tokenIndex312 := position, tokenIndex { position313 := position { position314, tokenIndex314 := position, tokenIndex - if !_rules[ruleOffset]() { + if !_rules[ruleLocalLabelRef]() { goto l315 } goto l314 l315: position, tokenIndex = position314, tokenIndex314 - if !_rules[ruleSymbolType]() { + if !_rules[ruleOffset]() { goto l316 } goto l314 l316: position, tokenIndex = position314, tokenIndex314 - if !_rules[ruleLocalSymbol]() { + if !_rules[ruleSymbolType]() { goto l317 } - { - position318, tokenIndex318 := position, tokenIndex - if !_rules[ruleTCMarker]() { - goto l318 - } - goto l319 - l318: - position, tokenIndex = position318, tokenIndex318 - } - l319: goto l314 l317: position, tokenIndex = position314, tokenIndex314 - if !_rules[ruleSymbolName]() { - goto l320 + if !_rules[ruleLocalSymbol]() { + goto l318 } - if !_rules[ruleOffset]() { + { + position319, tokenIndex319 := position, tokenIndex + if !_rules[ruleTCMarker]() { + goto l319 + } goto l320 + l319: + position, tokenIndex = position319, tokenIndex319 } - goto l314 l320: + goto l314 + l318: position, tokenIndex = position314, tokenIndex314 if !_rules[ruleSymbolName]() { goto l321 } - { - position322, tokenIndex322 := position, tokenIndex - if !_rules[ruleTCMarker]() { - goto l322 - } - goto l323 - l322: - position, tokenIndex = position322, tokenIndex322 + if !_rules[ruleOffset]() { + goto l321 } - l323: goto l314 l321: position, tokenIndex = position314, tokenIndex314 - if !_rules[ruleDot]() { + if !_rules[ruleSymbolName]() { + goto l322 + } + { + position323, tokenIndex323 := position, tokenIndex + if !_rules[ruleTCMarker]() { + goto l323 + } goto l324 + l323: + position, tokenIndex = position323, tokenIndex323 + } + l324: + goto l314 + l322: + position, tokenIndex = position314, tokenIndex314 + if !_rules[ruleDot]() { + goto l325 } goto l314 - l324: + l325: position, tokenIndex = position314, tokenIndex314 if !_rules[ruleOpenParen]() { goto l312 } { - position325, tokenIndex325 := position, tokenIndex + position326, tokenIndex326 := position, tokenIndex if !_rules[ruleWS]() { - goto l325 + goto l326 } - goto l326 - l325: - position, tokenIndex = position325, tokenIndex325 + goto l327 + l326: + position, tokenIndex = position326, tokenIndex326 } - l326: + l327: if !_rules[ruleSymbolExpr]() { goto l312 } { - position327, tokenIndex327 := position, tokenIndex + position328, tokenIndex328 := position, tokenIndex if !_rules[ruleWS]() { - goto l327 + goto l328 } - goto l328 - l327: - position, tokenIndex = position327, tokenIndex327 + goto l329 + l328: + position, tokenIndex = position328, tokenIndex328 } - l328: + l329: if !_rules[ruleCloseParen]() { goto l312 } @@ -2776,4823 +2782,4823 @@ }, /* 18 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ func() bool { - position329, tokenIndex329 := position, tokenIndex + position330, tokenIndex330 := position, tokenIndex { - position330 := position + position331 := position { - position331, tokenIndex331 := position, tokenIndex + position332, tokenIndex332 := position, tokenIndex if buffer[position] != rune('+') { - goto l332 - } - position++ - goto l331 - l332: - position, tokenIndex = position331, tokenIndex331 - if buffer[position] != rune('-') { goto l333 } position++ - goto l331 + goto l332 l333: - position, tokenIndex = position331, tokenIndex331 - if buffer[position] != rune('|') { + position, tokenIndex = position332, tokenIndex332 + if buffer[position] != rune('-') { goto l334 } position++ - goto l331 + goto l332 l334: - position, tokenIndex = position331, tokenIndex331 - if buffer[position] != rune('<') { + position, tokenIndex = position332, tokenIndex332 + if buffer[position] != rune('|') { goto l335 } position++ - if buffer[position] != rune('<') { - goto l335 - } - position++ - goto l331 + goto l332 l335: - position, tokenIndex = position331, tokenIndex331 + position, tokenIndex = position332, tokenIndex332 + if buffer[position] != rune('<') { + goto l336 + } + position++ + if buffer[position] != rune('<') { + goto l336 + } + position++ + goto l332 + l336: + position, tokenIndex = position332, tokenIndex332 if buffer[position] != rune('>') { - goto l329 + goto l330 } position++ if buffer[position] != rune('>') { - goto l329 + goto l330 } position++ } - l331: - add(ruleSymbolOperator, position330) + l332: + add(ruleSymbolOperator, position331) } return true - l329: - position, tokenIndex = position329, tokenIndex329 + l330: + position, tokenIndex = position330, tokenIndex330 return false }, /* 19 OpenParen <- <'('> */ func() bool { - position336, tokenIndex336 := position, tokenIndex + position337, tokenIndex337 := position, tokenIndex { - position337 := position + position338 := position if buffer[position] != rune('(') { - goto l336 + goto l337 } position++ - add(ruleOpenParen, position337) + add(ruleOpenParen, position338) } return true - l336: - position, tokenIndex = position336, tokenIndex336 + l337: + position, tokenIndex = position337, tokenIndex337 return false }, /* 20 CloseParen <- <')'> */ func() bool { - position338, tokenIndex338 := position, tokenIndex + position339, tokenIndex339 := position, tokenIndex { - position339 := position + position340 := position if buffer[position] != rune(')') { - goto l338 + goto l339 } position++ - add(ruleCloseParen, position339) + add(ruleCloseParen, position340) } return true - l338: - position, tokenIndex = position338, tokenIndex338 + l339: + position, tokenIndex = position339, tokenIndex339 return false }, /* 21 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ func() bool { - position340, tokenIndex340 := position, tokenIndex + position341, tokenIndex341 := position, tokenIndex { - position341 := position + position342 := position { - position342, tokenIndex342 := position, tokenIndex + position343, tokenIndex343 := position, tokenIndex if buffer[position] != rune('@') { - goto l343 + goto l344 } position++ - goto l342 - l343: - position, tokenIndex = position342, tokenIndex342 + goto l343 + l344: + position, tokenIndex = position343, tokenIndex343 if buffer[position] != rune('%') { - goto l340 + goto l341 } position++ } - l342: + l343: { - position344, tokenIndex344 := position, tokenIndex + position345, tokenIndex345 := position, tokenIndex if buffer[position] != rune('f') { - goto l345 + goto l346 } position++ if buffer[position] != rune('u') { - goto l345 + goto l346 } position++ if buffer[position] != rune('n') { - goto l345 + goto l346 } position++ if buffer[position] != rune('c') { - goto l345 + goto l346 } position++ if buffer[position] != rune('t') { - goto l345 + goto l346 } position++ if buffer[position] != rune('i') { - goto l345 + goto l346 } position++ if buffer[position] != rune('o') { - goto l345 + goto l346 } position++ if buffer[position] != rune('n') { - goto l345 + goto l346 } position++ - goto l344 - l345: - position, tokenIndex = position344, tokenIndex344 + goto l345 + l346: + position, tokenIndex = position345, tokenIndex345 if buffer[position] != rune('o') { - goto l340 + goto l341 } position++ if buffer[position] != rune('b') { - goto l340 + goto l341 } position++ if buffer[position] != rune('j') { - goto l340 + goto l341 } position++ if buffer[position] != rune('e') { - goto l340 + goto l341 } position++ if buffer[position] != rune('c') { - goto l340 + goto l341 } position++ if buffer[position] != rune('t') { - goto l340 + goto l341 } position++ } - l344: - add(ruleSymbolType, position341) + l345: + add(ruleSymbolType, position342) } return true - l340: - position, tokenIndex = position340, tokenIndex340 + l341: + position, tokenIndex = position341, tokenIndex341 return false }, /* 22 Dot <- <'.'> */ func() bool { - position346, tokenIndex346 := position, tokenIndex + position347, tokenIndex347 := position, tokenIndex { - position347 := position + position348 := position if buffer[position] != rune('.') { - goto l346 + goto l347 } position++ - add(ruleDot, position347) + add(ruleDot, position348) } return true - l346: - position, tokenIndex = position346, tokenIndex346 + l347: + position, tokenIndex = position347, tokenIndex347 return false }, /* 23 TCMarker <- <('[' 'T' 'C' ']')> */ func() bool { - position348, tokenIndex348 := position, tokenIndex + position349, tokenIndex349 := position, tokenIndex { - position349 := position + position350 := position if buffer[position] != rune('[') { - goto l348 + goto l349 } position++ if buffer[position] != rune('T') { - goto l348 + goto l349 } position++ if buffer[position] != rune('C') { - goto l348 + goto l349 } position++ if buffer[position] != rune(']') { - goto l348 + goto l349 } position++ - add(ruleTCMarker, position349) + add(ruleTCMarker, position350) } return true - l348: - position, tokenIndex = position348, tokenIndex348 + l349: + position, tokenIndex = position349, tokenIndex349 return false }, /* 24 EscapedChar <- <('\\' .)> */ func() bool { - position350, tokenIndex350 := position, tokenIndex + position351, tokenIndex351 := position, tokenIndex { - position351 := position + position352 := position if buffer[position] != rune('\\') { - goto l350 + goto l351 } position++ if !matchDot() { - goto l350 + goto l351 } - add(ruleEscapedChar, position351) + add(ruleEscapedChar, position352) } return true - l350: - position, tokenIndex = position350, tokenIndex350 + l351: + position, tokenIndex = position351, tokenIndex351 return false }, /* 25 WS <- <(' ' / '\t')+> */ func() bool { - position352, tokenIndex352 := position, tokenIndex + position353, tokenIndex353 := position, tokenIndex { - position353 := position + position354 := position + { + position357, tokenIndex357 := position, tokenIndex + if buffer[position] != rune(' ') { + goto l358 + } + position++ + goto l357 + l358: + position, tokenIndex = position357, tokenIndex357 + if buffer[position] != rune('\t') { + goto l353 + } + position++ + } + l357: + l355: { position356, tokenIndex356 := position, tokenIndex - if buffer[position] != rune(' ') { - goto l357 - } - position++ - goto l356 - l357: - position, tokenIndex = position356, tokenIndex356 - if buffer[position] != rune('\t') { - goto l352 - } - position++ - } - l356: - l354: - { - position355, tokenIndex355 := position, tokenIndex { - position358, tokenIndex358 := position, tokenIndex + position359, tokenIndex359 := position, tokenIndex if buffer[position] != rune(' ') { - goto l359 + goto l360 } position++ - goto l358 - l359: - position, tokenIndex = position358, tokenIndex358 + goto l359 + l360: + position, tokenIndex = position359, tokenIndex359 if buffer[position] != rune('\t') { - goto l355 + goto l356 } position++ } - l358: - goto l354 - l355: - position, tokenIndex = position355, tokenIndex355 + l359: + goto l355 + l356: + position, tokenIndex = position356, tokenIndex356 } - add(ruleWS, position353) + add(ruleWS, position354) } return true - l352: - position, tokenIndex = position352, tokenIndex352 + l353: + position, tokenIndex = position353, tokenIndex353 return false }, /* 26 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ func() bool { - position360, tokenIndex360 := position, tokenIndex + position361, tokenIndex361 := position, tokenIndex { - position361 := position + position362 := position { - position362, tokenIndex362 := position, tokenIndex + position363, tokenIndex363 := position, tokenIndex if buffer[position] != rune('/') { - goto l363 + goto l364 } position++ if buffer[position] != rune('/') { - goto l363 + goto l364 } position++ - goto l362 - l363: - position, tokenIndex = position362, tokenIndex362 + goto l363 + l364: + position, tokenIndex = position363, tokenIndex363 if buffer[position] != rune('#') { - goto l360 + goto l361 } position++ } - l362: - l364: + l363: + l365: { - position365, tokenIndex365 := position, tokenIndex + position366, tokenIndex366 := position, tokenIndex { - position366, tokenIndex366 := position, tokenIndex + position367, tokenIndex367 := position, tokenIndex if buffer[position] != rune('\n') { - goto l366 + goto l367 } position++ - goto l365 - l366: - position, tokenIndex = position366, tokenIndex366 + goto l366 + l367: + position, tokenIndex = position367, tokenIndex367 } if !matchDot() { - goto l365 + goto l366 } - goto l364 - l365: - position, tokenIndex = position365, tokenIndex365 + goto l365 + l366: + position, tokenIndex = position366, tokenIndex366 } - add(ruleComment, position361) + add(ruleComment, position362) } return true - l360: - position, tokenIndex = position360, tokenIndex360 + l361: + position, tokenIndex = position361, tokenIndex361 return false }, /* 27 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ func() bool { - position367, tokenIndex367 := position, tokenIndex + position368, tokenIndex368 := position, tokenIndex { - position368 := position + position369 := position { - position369, tokenIndex369 := position, tokenIndex + position370, tokenIndex370 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l370 - } - goto l369 - l370: - position, tokenIndex = position369, tokenIndex369 - if !_rules[ruleLocalLabel]() { goto l371 } - goto l369 + goto l370 l371: - position, tokenIndex = position369, tokenIndex369 + position, tokenIndex = position370, tokenIndex370 + if !_rules[ruleLocalLabel]() { + goto l372 + } + goto l370 + l372: + position, tokenIndex = position370, tokenIndex370 if !_rules[ruleSymbolName]() { - goto l367 + goto l368 } } - l369: + l370: if buffer[position] != rune(':') { - goto l367 + goto l368 } position++ - add(ruleLabel, position368) + add(ruleLabel, position369) } return true - l367: - position, tokenIndex = position367, tokenIndex367 + l368: + position, tokenIndex = position368, tokenIndex368 return false }, /* 28 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ func() bool { - position372, tokenIndex372 := position, tokenIndex + position373, tokenIndex373 := position, tokenIndex { - position373 := position + position374 := position { - position374, tokenIndex374 := position, tokenIndex + position375, tokenIndex375 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l375 - } - position++ - goto l374 - l375: - position, tokenIndex = position374, tokenIndex374 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l376 } position++ - goto l374 + goto l375 l376: - position, tokenIndex = position374, tokenIndex374 - if buffer[position] != rune('.') { + position, tokenIndex = position375, tokenIndex375 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l377 } position++ - goto l374 + goto l375 l377: - position, tokenIndex = position374, tokenIndex374 + position, tokenIndex = position375, tokenIndex375 + if buffer[position] != rune('.') { + goto l378 + } + position++ + goto l375 + l378: + position, tokenIndex = position375, tokenIndex375 if buffer[position] != rune('_') { - goto l372 + goto l373 } position++ } - l374: - l378: + l375: + l379: { - position379, tokenIndex379 := position, tokenIndex + position380, tokenIndex380 := position, tokenIndex { - position380, tokenIndex380 := position, tokenIndex + position381, tokenIndex381 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l381 - } - position++ - goto l380 - l381: - position, tokenIndex = position380, tokenIndex380 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l382 } position++ - goto l380 + goto l381 l382: - position, tokenIndex = position380, tokenIndex380 - if buffer[position] != rune('.') { + position, tokenIndex = position381, tokenIndex381 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l383 } position++ - goto l380 + goto l381 l383: - position, tokenIndex = position380, tokenIndex380 - { - position385, tokenIndex385 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l386 - } - position++ - goto l385 - l386: - position, tokenIndex = position385, tokenIndex385 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l384 - } - position++ - } - l385: - goto l380 - l384: - position, tokenIndex = position380, tokenIndex380 - if buffer[position] != rune('$') { - goto l387 + position, tokenIndex = position381, tokenIndex381 + if buffer[position] != rune('.') { + goto l384 } position++ - goto l380 - l387: - position, tokenIndex = position380, tokenIndex380 + goto l381 + l384: + position, tokenIndex = position381, tokenIndex381 + { + position386, tokenIndex386 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l387 + } + position++ + goto l386 + l387: + position, tokenIndex = position386, tokenIndex386 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l385 + } + position++ + } + l386: + goto l381 + l385: + position, tokenIndex = position381, tokenIndex381 + if buffer[position] != rune('$') { + goto l388 + } + position++ + goto l381 + l388: + position, tokenIndex = position381, tokenIndex381 if buffer[position] != rune('_') { - goto l379 + goto l380 } position++ } + l381: + goto l379 l380: - goto l378 - l379: - position, tokenIndex = position379, tokenIndex379 + position, tokenIndex = position380, tokenIndex380 } - add(ruleSymbolName, position373) + add(ruleSymbolName, position374) } return true - l372: - position, tokenIndex = position372, tokenIndex372 + l373: + position, tokenIndex = position373, tokenIndex373 return false }, /* 29 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ func() bool { - position388, tokenIndex388 := position, tokenIndex + position389, tokenIndex389 := position, tokenIndex { - position389 := position + position390 := position if buffer[position] != rune('.') { - goto l388 + goto l389 } position++ if buffer[position] != rune('L') { - goto l388 + goto l389 } position++ { - position392, tokenIndex392 := position, tokenIndex + position393, tokenIndex393 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l393 - } - position++ - goto l392 - l393: - position, tokenIndex = position392, tokenIndex392 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l394 } position++ - goto l392 + goto l393 l394: - position, tokenIndex = position392, tokenIndex392 - { - position396, tokenIndex396 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l397 - } - position++ - goto l396 - l397: - position, tokenIndex = position396, tokenIndex396 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l395 - } - position++ + position, tokenIndex = position393, tokenIndex393 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l395 } - l396: - goto l392 + position++ + goto l393 l395: - position, tokenIndex = position392, tokenIndex392 - if buffer[position] != rune('.') { - goto l398 - } - position++ - goto l392 - l398: - position, tokenIndex = position392, tokenIndex392 + position, tokenIndex = position393, tokenIndex393 { - position400, tokenIndex400 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l401 + position397, tokenIndex397 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l398 } position++ - goto l400 - l401: - position, tokenIndex = position400, tokenIndex400 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l399 + goto l397 + l398: + position, tokenIndex = position397, tokenIndex397 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l396 } position++ } - l400: - goto l392 - l399: - position, tokenIndex = position392, tokenIndex392 - if buffer[position] != rune('$') { - goto l402 + l397: + goto l393 + l396: + position, tokenIndex = position393, tokenIndex393 + if buffer[position] != rune('.') { + goto l399 } position++ - goto l392 - l402: - position, tokenIndex = position392, tokenIndex392 + goto l393 + l399: + position, tokenIndex = position393, tokenIndex393 + { + position401, tokenIndex401 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l402 + } + position++ + goto l401 + l402: + position, tokenIndex = position401, tokenIndex401 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l400 + } + position++ + } + l401: + goto l393 + l400: + position, tokenIndex = position393, tokenIndex393 + if buffer[position] != rune('$') { + goto l403 + } + position++ + goto l393 + l403: + position, tokenIndex = position393, tokenIndex393 if buffer[position] != rune('_') { - goto l388 + goto l389 } position++ } - l392: - l390: + l393: + l391: { - position391, tokenIndex391 := position, tokenIndex + position392, tokenIndex392 := position, tokenIndex { - position403, tokenIndex403 := position, tokenIndex + position404, tokenIndex404 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l404 - } - position++ - goto l403 - l404: - position, tokenIndex = position403, tokenIndex403 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l405 } position++ - goto l403 + goto l404 l405: - position, tokenIndex = position403, tokenIndex403 - { - position407, tokenIndex407 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l408 - } - position++ - goto l407 - l408: - position, tokenIndex = position407, tokenIndex407 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l406 - } - position++ + position, tokenIndex = position404, tokenIndex404 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l406 } - l407: - goto l403 + position++ + goto l404 l406: - position, tokenIndex = position403, tokenIndex403 - if buffer[position] != rune('.') { - goto l409 - } - position++ - goto l403 - l409: - position, tokenIndex = position403, tokenIndex403 + position, tokenIndex = position404, tokenIndex404 { - position411, tokenIndex411 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l412 + position408, tokenIndex408 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l409 } position++ - goto l411 - l412: - position, tokenIndex = position411, tokenIndex411 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l410 + goto l408 + l409: + position, tokenIndex = position408, tokenIndex408 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l407 } position++ } - l411: - goto l403 - l410: - position, tokenIndex = position403, tokenIndex403 - if buffer[position] != rune('$') { - goto l413 + l408: + goto l404 + l407: + position, tokenIndex = position404, tokenIndex404 + if buffer[position] != rune('.') { + goto l410 } position++ - goto l403 - l413: - position, tokenIndex = position403, tokenIndex403 + goto l404 + l410: + position, tokenIndex = position404, tokenIndex404 + { + position412, tokenIndex412 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l413 + } + position++ + goto l412 + l413: + position, tokenIndex = position412, tokenIndex412 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l411 + } + position++ + } + l412: + goto l404 + l411: + position, tokenIndex = position404, tokenIndex404 + if buffer[position] != rune('$') { + goto l414 + } + position++ + goto l404 + l414: + position, tokenIndex = position404, tokenIndex404 if buffer[position] != rune('_') { - goto l391 + goto l392 } position++ } - l403: - goto l390 - l391: - position, tokenIndex = position391, tokenIndex391 + l404: + goto l391 + l392: + position, tokenIndex = position392, tokenIndex392 } - add(ruleLocalSymbol, position389) + add(ruleLocalSymbol, position390) } return true - l388: - position, tokenIndex = position388, tokenIndex388 + l389: + position, tokenIndex = position389, tokenIndex389 return false }, /* 30 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ func() bool { - position414, tokenIndex414 := position, tokenIndex + position415, tokenIndex415 := position, tokenIndex { - position415 := position + position416 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l414 + goto l415 } position++ - l416: + l417: { - position417, tokenIndex417 := position, tokenIndex + position418, tokenIndex418 := position, tokenIndex { - position418, tokenIndex418 := position, tokenIndex + position419, tokenIndex419 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l419 + goto l420 } position++ - goto l418 - l419: - position, tokenIndex = position418, tokenIndex418 + goto l419 + l420: + position, tokenIndex = position419, tokenIndex419 if buffer[position] != rune('$') { - goto l417 + goto l418 } position++ } + l419: + goto l417 l418: - goto l416 - l417: - position, tokenIndex = position417, tokenIndex417 + position, tokenIndex = position418, tokenIndex418 } - add(ruleLocalLabel, position415) + add(ruleLocalLabel, position416) } return true - l414: - position, tokenIndex = position414, tokenIndex414 + l415: + position, tokenIndex = position415, tokenIndex415 return false }, /* 31 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ func() bool { - position420, tokenIndex420 := position, tokenIndex + position421, tokenIndex421 := position, tokenIndex { - position421 := position + position422 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l420 + goto l421 } position++ - l422: + l423: { - position423, tokenIndex423 := position, tokenIndex + position424, tokenIndex424 := position, tokenIndex { - position424, tokenIndex424 := position, tokenIndex + position425, tokenIndex425 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l425 + goto l426 } position++ - goto l424 - l425: - position, tokenIndex = position424, tokenIndex424 + goto l425 + l426: + position, tokenIndex = position425, tokenIndex425 if buffer[position] != rune('$') { - goto l423 + goto l424 } position++ } + l425: + goto l423 l424: - goto l422 - l423: - position, tokenIndex = position423, tokenIndex423 + position, tokenIndex = position424, tokenIndex424 } { - position426, tokenIndex426 := position, tokenIndex + position427, tokenIndex427 := position, tokenIndex if buffer[position] != rune('b') { - goto l427 + goto l428 } position++ - goto l426 - l427: - position, tokenIndex = position426, tokenIndex426 + goto l427 + l428: + position, tokenIndex = position427, tokenIndex427 if buffer[position] != rune('f') { - goto l420 + goto l421 } position++ } - l426: - add(ruleLocalLabelRef, position421) + l427: + add(ruleLocalLabelRef, position422) } return true - l420: - position, tokenIndex = position420, tokenIndex420 + l421: + position, tokenIndex = position421, tokenIndex421 return false }, /* 32 InstructionPrefix <- <(('n' / 'N') ('o' / 'O') ('t' / 'T') ('r' / 'R') ('a' / 'A') ('c' / 'C') ('k' / 'K'))> */ func() bool { - position428, tokenIndex428 := position, tokenIndex + position429, tokenIndex429 := position, tokenIndex { - position429 := position + position430 := position { - position430, tokenIndex430 := position, tokenIndex + position431, tokenIndex431 := position, tokenIndex if buffer[position] != rune('n') { - goto l431 + goto l432 } position++ - goto l430 - l431: - position, tokenIndex = position430, tokenIndex430 + goto l431 + l432: + position, tokenIndex = position431, tokenIndex431 if buffer[position] != rune('N') { - goto l428 + goto l429 } position++ } - l430: + l431: { - position432, tokenIndex432 := position, tokenIndex + position433, tokenIndex433 := position, tokenIndex if buffer[position] != rune('o') { - goto l433 + goto l434 } position++ - goto l432 - l433: - position, tokenIndex = position432, tokenIndex432 + goto l433 + l434: + position, tokenIndex = position433, tokenIndex433 if buffer[position] != rune('O') { - goto l428 + goto l429 } position++ } - l432: + l433: { - position434, tokenIndex434 := position, tokenIndex + position435, tokenIndex435 := position, tokenIndex if buffer[position] != rune('t') { - goto l435 + goto l436 } position++ - goto l434 - l435: - position, tokenIndex = position434, tokenIndex434 + goto l435 + l436: + position, tokenIndex = position435, tokenIndex435 if buffer[position] != rune('T') { - goto l428 + goto l429 } position++ } - l434: + l435: { - position436, tokenIndex436 := position, tokenIndex + position437, tokenIndex437 := position, tokenIndex if buffer[position] != rune('r') { - goto l437 + goto l438 } position++ - goto l436 - l437: - position, tokenIndex = position436, tokenIndex436 + goto l437 + l438: + position, tokenIndex = position437, tokenIndex437 if buffer[position] != rune('R') { - goto l428 + goto l429 } position++ } - l436: + l437: { - position438, tokenIndex438 := position, tokenIndex + position439, tokenIndex439 := position, tokenIndex if buffer[position] != rune('a') { - goto l439 + goto l440 } position++ - goto l438 - l439: - position, tokenIndex = position438, tokenIndex438 + goto l439 + l440: + position, tokenIndex = position439, tokenIndex439 if buffer[position] != rune('A') { - goto l428 + goto l429 } position++ } - l438: + l439: { - position440, tokenIndex440 := position, tokenIndex + position441, tokenIndex441 := position, tokenIndex if buffer[position] != rune('c') { - goto l441 + goto l442 } position++ - goto l440 - l441: - position, tokenIndex = position440, tokenIndex440 + goto l441 + l442: + position, tokenIndex = position441, tokenIndex441 if buffer[position] != rune('C') { - goto l428 + goto l429 } position++ } - l440: + l441: { - position442, tokenIndex442 := position, tokenIndex + position443, tokenIndex443 := position, tokenIndex if buffer[position] != rune('k') { - goto l443 + goto l444 } position++ - goto l442 - l443: - position, tokenIndex = position442, tokenIndex442 + goto l443 + l444: + position, tokenIndex = position443, tokenIndex443 if buffer[position] != rune('K') { - goto l428 + goto l429 } position++ } - l442: - add(ruleInstructionPrefix, position429) + l443: + add(ruleInstructionPrefix, position430) } return true - l428: - position, tokenIndex = position428, tokenIndex428 + l429: + position, tokenIndex = position429, tokenIndex429 return false }, /* 33 Instruction <- <((InstructionPrefix WS)? InstructionName (WS InstructionArg (WS? ',' WS? InstructionArg)*)?)> */ func() bool { - position444, tokenIndex444 := position, tokenIndex + position445, tokenIndex445 := position, tokenIndex { - position445 := position + position446 := position { - position446, tokenIndex446 := position, tokenIndex + position447, tokenIndex447 := position, tokenIndex if !_rules[ruleInstructionPrefix]() { - goto l446 + goto l447 } if !_rules[ruleWS]() { - goto l446 + goto l447 } - goto l447 - l446: - position, tokenIndex = position446, tokenIndex446 + goto l448 + l447: + position, tokenIndex = position447, tokenIndex447 } - l447: + l448: if !_rules[ruleInstructionName]() { - goto l444 + goto l445 } { - position448, tokenIndex448 := position, tokenIndex + position449, tokenIndex449 := position, tokenIndex if !_rules[ruleWS]() { - goto l448 + goto l449 } if !_rules[ruleInstructionArg]() { - goto l448 + goto l449 } - l450: + l451: { - position451, tokenIndex451 := position, tokenIndex + position452, tokenIndex452 := position, tokenIndex { - position452, tokenIndex452 := position, tokenIndex + position453, tokenIndex453 := position, tokenIndex if !_rules[ruleWS]() { - goto l452 + goto l453 } - goto l453 - l452: - position, tokenIndex = position452, tokenIndex452 + goto l454 + l453: + position, tokenIndex = position453, tokenIndex453 } - l453: + l454: if buffer[position] != rune(',') { - goto l451 + goto l452 } position++ { - position454, tokenIndex454 := position, tokenIndex + position455, tokenIndex455 := position, tokenIndex if !_rules[ruleWS]() { - goto l454 + goto l455 } - goto l455 - l454: - position, tokenIndex = position454, tokenIndex454 + goto l456 + l455: + position, tokenIndex = position455, tokenIndex455 } - l455: + l456: if !_rules[ruleInstructionArg]() { - goto l451 + goto l452 } - goto l450 - l451: - position, tokenIndex = position451, tokenIndex451 + goto l451 + l452: + position, tokenIndex = position452, tokenIndex452 } - goto l449 - l448: - position, tokenIndex = position448, tokenIndex448 + goto l450 + l449: + position, tokenIndex = position449, tokenIndex449 } - l449: - add(ruleInstruction, position445) + l450: + add(ruleInstruction, position446) } return true - l444: - position, tokenIndex = position444, tokenIndex444 + l445: + position, tokenIndex = position445, tokenIndex445 return false }, /* 34 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ func() bool { - position456, tokenIndex456 := position, tokenIndex + position457, tokenIndex457 := position, tokenIndex { - position457 := position + position458 := position { - position458, tokenIndex458 := position, tokenIndex + position459, tokenIndex459 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l459 + goto l460 } position++ - goto l458 - l459: - position, tokenIndex = position458, tokenIndex458 + goto l459 + l460: + position, tokenIndex = position459, tokenIndex459 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l456 + goto l457 } position++ } - l458: - l460: + l459: + l461: { - position461, tokenIndex461 := position, tokenIndex + position462, tokenIndex462 := position, tokenIndex { - position462, tokenIndex462 := position, tokenIndex + position463, tokenIndex463 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l463 - } - position++ - goto l462 - l463: - position, tokenIndex = position462, tokenIndex462 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l464 } position++ - goto l462 + goto l463 l464: - position, tokenIndex = position462, tokenIndex462 - if buffer[position] != rune('.') { + position, tokenIndex = position463, tokenIndex463 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l465 } position++ - goto l462 + goto l463 l465: - position, tokenIndex = position462, tokenIndex462 - { - position466, tokenIndex466 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l467 - } - position++ - goto l466 - l467: - position, tokenIndex = position466, tokenIndex466 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l461 - } - position++ - } - l466: - } - l462: - goto l460 - l461: - position, tokenIndex = position461, tokenIndex461 - } - { - position468, tokenIndex468 := position, tokenIndex - { - position470, tokenIndex470 := position, tokenIndex + position, tokenIndex = position463, tokenIndex463 if buffer[position] != rune('.') { - goto l471 + goto l466 } position++ - goto l470 - l471: - position, tokenIndex = position470, tokenIndex470 - if buffer[position] != rune('+') { + goto l463 + l466: + position, tokenIndex = position463, tokenIndex463 + { + position467, tokenIndex467 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l468 + } + position++ + goto l467 + l468: + position, tokenIndex = position467, tokenIndex467 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l462 + } + position++ + } + l467: + } + l463: + goto l461 + l462: + position, tokenIndex = position462, tokenIndex462 + } + { + position469, tokenIndex469 := position, tokenIndex + { + position471, tokenIndex471 := position, tokenIndex + if buffer[position] != rune('.') { goto l472 } position++ - goto l470 + goto l471 l472: - position, tokenIndex = position470, tokenIndex470 + position, tokenIndex = position471, tokenIndex471 + if buffer[position] != rune('+') { + goto l473 + } + position++ + goto l471 + l473: + position, tokenIndex = position471, tokenIndex471 if buffer[position] != rune('-') { - goto l468 + goto l469 } position++ } - l470: - goto l469 - l468: - position, tokenIndex = position468, tokenIndex468 + l471: + goto l470 + l469: + position, tokenIndex = position469, tokenIndex469 } - l469: - add(ruleInstructionName, position457) + l470: + add(ruleInstructionName, position458) } return true - l456: - position, tokenIndex = position456, tokenIndex456 + l457: + position, tokenIndex = position457, tokenIndex457 return false }, /* 35 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTAddress / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ func() bool { - position473, tokenIndex473 := position, tokenIndex + position474, tokenIndex474 := position, tokenIndex { - position474 := position + position475 := position { - position475, tokenIndex475 := position, tokenIndex + position476, tokenIndex476 := position, tokenIndex if !_rules[ruleIndirectionIndicator]() { - goto l475 - } - goto l476 - l475: - position, tokenIndex = position475, tokenIndex475 - } - l476: - { - position477, tokenIndex477 := position, tokenIndex - if !_rules[ruleARMConstantTweak]() { - goto l478 + goto l476 } goto l477 - l478: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleRegisterOrConstant]() { - goto l479 - } - goto l477 - l479: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleLocalLabelRef]() { - goto l480 - } - goto l477 - l480: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleTOCRefHigh]() { - goto l481 - } - goto l477 - l481: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleTOCRefLow]() { - goto l482 - } - goto l477 - l482: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleGOTLocation]() { - goto l483 - } - goto l477 - l483: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleGOTAddress]() { - goto l484 - } - goto l477 - l484: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleGOTSymbolOffset]() { - goto l485 - } - goto l477 - l485: - position, tokenIndex = position477, tokenIndex477 - if !_rules[ruleMemoryRef]() { - goto l473 - } + l476: + position, tokenIndex = position476, tokenIndex476 } l477: - l486: { - position487, tokenIndex487 := position, tokenIndex - if !_rules[ruleAVX512Token]() { - goto l487 + position478, tokenIndex478 := position, tokenIndex + if !_rules[ruleARMConstantTweak]() { + goto l479 } - goto l486 - l487: - position, tokenIndex = position487, tokenIndex487 + goto l478 + l479: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleRegisterOrConstant]() { + goto l480 + } + goto l478 + l480: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleLocalLabelRef]() { + goto l481 + } + goto l478 + l481: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleTOCRefHigh]() { + goto l482 + } + goto l478 + l482: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleTOCRefLow]() { + goto l483 + } + goto l478 + l483: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleGOTLocation]() { + goto l484 + } + goto l478 + l484: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleGOTAddress]() { + goto l485 + } + goto l478 + l485: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleGOTSymbolOffset]() { + goto l486 + } + goto l478 + l486: + position, tokenIndex = position478, tokenIndex478 + if !_rules[ruleMemoryRef]() { + goto l474 + } } - add(ruleInstructionArg, position474) + l478: + l487: + { + position488, tokenIndex488 := position, tokenIndex + if !_rules[ruleAVX512Token]() { + goto l488 + } + goto l487 + l488: + position, tokenIndex = position488, tokenIndex488 + } + add(ruleInstructionArg, position475) } return true - l473: - position, tokenIndex = position473, tokenIndex473 + l474: + position, tokenIndex = position474, tokenIndex474 return false }, /* 36 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ func() bool { - position488, tokenIndex488 := position, tokenIndex + position489, tokenIndex489 := position, tokenIndex { - position489 := position + position490 := position if buffer[position] != rune('$') { - goto l488 + goto l489 } position++ if buffer[position] != rune('_') { - goto l488 + goto l489 } position++ if buffer[position] != rune('G') { - goto l488 + goto l489 } position++ if buffer[position] != rune('L') { - goto l488 + goto l489 } position++ if buffer[position] != rune('O') { - goto l488 + goto l489 } position++ if buffer[position] != rune('B') { - goto l488 + goto l489 } position++ if buffer[position] != rune('A') { - goto l488 + goto l489 } position++ if buffer[position] != rune('L') { - goto l488 + goto l489 } position++ if buffer[position] != rune('_') { - goto l488 + goto l489 } position++ if buffer[position] != rune('O') { - goto l488 + goto l489 } position++ if buffer[position] != rune('F') { - goto l488 + goto l489 } position++ if buffer[position] != rune('F') { - goto l488 + goto l489 } position++ if buffer[position] != rune('S') { - goto l488 + goto l489 } position++ if buffer[position] != rune('E') { - goto l488 + goto l489 } position++ if buffer[position] != rune('T') { - goto l488 + goto l489 } position++ if buffer[position] != rune('_') { - goto l488 + goto l489 } position++ if buffer[position] != rune('T') { - goto l488 + goto l489 } position++ if buffer[position] != rune('A') { - goto l488 + goto l489 } position++ if buffer[position] != rune('B') { - goto l488 + goto l489 } position++ if buffer[position] != rune('L') { - goto l488 + goto l489 } position++ if buffer[position] != rune('E') { - goto l488 + goto l489 } position++ if buffer[position] != rune('_') { - goto l488 + goto l489 } position++ if buffer[position] != rune('-') { - goto l488 + goto l489 } position++ if !_rules[ruleLocalSymbol]() { - goto l488 + goto l489 } - add(ruleGOTLocation, position489) + add(ruleGOTLocation, position490) } return true - l488: - position, tokenIndex = position488, tokenIndex488 + l489: + position, tokenIndex = position489, tokenIndex489 return false }, /* 37 GOTAddress <- <('_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '(' '%' 'r' 'i' 'p' ')')> */ func() bool { - position490, tokenIndex490 := position, tokenIndex + position491, tokenIndex491 := position, tokenIndex { - position491 := position + position492 := position if buffer[position] != rune('_') { - goto l490 + goto l491 } position++ if buffer[position] != rune('G') { - goto l490 + goto l491 } position++ if buffer[position] != rune('L') { - goto l490 + goto l491 } position++ if buffer[position] != rune('O') { - goto l490 + goto l491 } position++ if buffer[position] != rune('B') { - goto l490 + goto l491 } position++ if buffer[position] != rune('A') { - goto l490 + goto l491 } position++ if buffer[position] != rune('L') { - goto l490 + goto l491 } position++ if buffer[position] != rune('_') { - goto l490 + goto l491 } position++ if buffer[position] != rune('O') { - goto l490 + goto l491 } position++ if buffer[position] != rune('F') { - goto l490 + goto l491 } position++ if buffer[position] != rune('F') { - goto l490 + goto l491 } position++ if buffer[position] != rune('S') { - goto l490 + goto l491 } position++ if buffer[position] != rune('E') { - goto l490 + goto l491 } position++ if buffer[position] != rune('T') { - goto l490 + goto l491 } position++ if buffer[position] != rune('_') { - goto l490 + goto l491 } position++ if buffer[position] != rune('T') { - goto l490 + goto l491 } position++ if buffer[position] != rune('A') { - goto l490 + goto l491 } position++ if buffer[position] != rune('B') { - goto l490 + goto l491 } position++ if buffer[position] != rune('L') { - goto l490 + goto l491 } position++ if buffer[position] != rune('E') { - goto l490 + goto l491 } position++ if buffer[position] != rune('_') { - goto l490 + goto l491 } position++ if buffer[position] != rune('(') { - goto l490 + goto l491 } position++ if buffer[position] != rune('%') { - goto l490 + goto l491 } position++ if buffer[position] != rune('r') { - goto l490 + goto l491 } position++ if buffer[position] != rune('i') { - goto l490 + goto l491 } position++ if buffer[position] != rune('p') { - goto l490 + goto l491 } position++ if buffer[position] != rune(')') { - goto l490 + goto l491 } position++ - add(ruleGOTAddress, position491) + add(ruleGOTAddress, position492) } return true - l490: - position, tokenIndex = position490, tokenIndex490 + l491: + position, tokenIndex = position491, tokenIndex491 return false }, /* 38 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ func() bool { - position492, tokenIndex492 := position, tokenIndex + position493, tokenIndex493 := position, tokenIndex { - position493 := position + position494 := position { - position494, tokenIndex494 := position, tokenIndex + position495, tokenIndex495 := position, tokenIndex if buffer[position] != rune('$') { - goto l495 + goto l496 } position++ if !_rules[ruleSymbolName]() { - goto l495 + goto l496 } if buffer[position] != rune('@') { - goto l495 + goto l496 } position++ if buffer[position] != rune('G') { - goto l495 + goto l496 } position++ if buffer[position] != rune('O') { - goto l495 + goto l496 } position++ if buffer[position] != rune('T') { - goto l495 + goto l496 } position++ { - position496, tokenIndex496 := position, tokenIndex + position497, tokenIndex497 := position, tokenIndex if buffer[position] != rune('O') { - goto l496 + goto l497 } position++ if buffer[position] != rune('F') { - goto l496 + goto l497 } position++ if buffer[position] != rune('F') { - goto l496 - } - position++ - goto l497 - l496: - position, tokenIndex = position496, tokenIndex496 - } - l497: - goto l494 - l495: - position, tokenIndex = position494, tokenIndex494 - if buffer[position] != rune(':') { - goto l492 - } - position++ - { - position498, tokenIndex498 := position, tokenIndex - if buffer[position] != rune('g') { - goto l499 + goto l497 } position++ goto l498 - l499: - position, tokenIndex = position498, tokenIndex498 - if buffer[position] != rune('G') { - goto l492 - } - position++ + l497: + position, tokenIndex = position497, tokenIndex497 } l498: - { - position500, tokenIndex500 := position, tokenIndex - if buffer[position] != rune('o') { - goto l501 - } - position++ - goto l500 - l501: - position, tokenIndex = position500, tokenIndex500 - if buffer[position] != rune('O') { - goto l492 - } - position++ - } - l500: - { - position502, tokenIndex502 := position, tokenIndex - if buffer[position] != rune('t') { - goto l503 - } - position++ - goto l502 - l503: - position, tokenIndex = position502, tokenIndex502 - if buffer[position] != rune('T') { - goto l492 - } - position++ - } - l502: + goto l495 + l496: + position, tokenIndex = position495, tokenIndex495 if buffer[position] != rune(':') { - goto l492 + goto l493 + } + position++ + { + position499, tokenIndex499 := position, tokenIndex + if buffer[position] != rune('g') { + goto l500 + } + position++ + goto l499 + l500: + position, tokenIndex = position499, tokenIndex499 + if buffer[position] != rune('G') { + goto l493 + } + position++ + } + l499: + { + position501, tokenIndex501 := position, tokenIndex + if buffer[position] != rune('o') { + goto l502 + } + position++ + goto l501 + l502: + position, tokenIndex = position501, tokenIndex501 + if buffer[position] != rune('O') { + goto l493 + } + position++ + } + l501: + { + position503, tokenIndex503 := position, tokenIndex + if buffer[position] != rune('t') { + goto l504 + } + position++ + goto l503 + l504: + position, tokenIndex = position503, tokenIndex503 + if buffer[position] != rune('T') { + goto l493 + } + position++ + } + l503: + if buffer[position] != rune(':') { + goto l493 } position++ if !_rules[ruleSymbolName]() { - goto l492 + goto l493 } } - l494: - add(ruleGOTSymbolOffset, position493) + l495: + add(ruleGOTSymbolOffset, position494) } return true - l492: - position, tokenIndex = position492, tokenIndex492 + l493: + position, tokenIndex = position493, tokenIndex493 return false }, /* 39 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ func() bool { - position504, tokenIndex504 := position, tokenIndex + position505, tokenIndex505 := position, tokenIndex { - position505 := position + position506 := position { - position506, tokenIndex506 := position, tokenIndex + position507, tokenIndex507 := position, tokenIndex if !_rules[ruleWS]() { - goto l506 + goto l507 } - goto l507 - l506: - position, tokenIndex = position506, tokenIndex506 + goto l508 + l507: + position, tokenIndex = position507, tokenIndex507 } - l507: + l508: if buffer[position] != rune('{') { - goto l504 + goto l505 } position++ { - position508, tokenIndex508 := position, tokenIndex + position509, tokenIndex509 := position, tokenIndex if buffer[position] != rune('%') { - goto l508 + goto l509 } position++ - goto l509 - l508: - position, tokenIndex = position508, tokenIndex508 - } - l509: - l510: - { - position511, tokenIndex511 := position, tokenIndex - { - position512, tokenIndex512 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l513 - } - position++ - goto l512 - l513: - position, tokenIndex = position512, tokenIndex512 - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l511 - } - position++ - } - l512: goto l510 - l511: - position, tokenIndex = position511, tokenIndex511 + l509: + position, tokenIndex = position509, tokenIndex509 } - if buffer[position] != rune('}') { - goto l504 - } - position++ - add(ruleAVX512Token, position505) - } - return true - l504: - position, tokenIndex = position504, tokenIndex504 - return false - }, - /* 40 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ - func() bool { - position514, tokenIndex514 := position, tokenIndex - { - position515 := position - if buffer[position] != rune('.') { - goto l514 - } - position++ - if buffer[position] != rune('T') { - goto l514 - } - position++ - if buffer[position] != rune('O') { - goto l514 - } - position++ - if buffer[position] != rune('C') { - goto l514 - } - position++ - if buffer[position] != rune('.') { - goto l514 - } - position++ - if buffer[position] != rune('-') { - goto l514 - } - position++ + l510: + l511: { - position516, tokenIndex516 := position, tokenIndex - if buffer[position] != rune('0') { - goto l517 - } - position++ - if buffer[position] != rune('b') { - goto l517 - } - position++ - goto l516 - l517: - position, tokenIndex = position516, tokenIndex516 - if buffer[position] != rune('.') { - goto l514 - } - position++ - if buffer[position] != rune('L') { - goto l514 - } - position++ + position512, tokenIndex512 := position, tokenIndex { - position520, tokenIndex520 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l521 - } - position++ - goto l520 - l521: - position, tokenIndex = position520, tokenIndex520 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l522 - } - position++ - goto l520 - l522: - position, tokenIndex = position520, tokenIndex520 - if buffer[position] != rune('_') { - goto l523 - } - position++ - goto l520 - l523: - position, tokenIndex = position520, tokenIndex520 + position513, tokenIndex513 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { goto l514 } position++ - } - l520: - l518: - { - position519, tokenIndex519 := position, tokenIndex - { - position524, tokenIndex524 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l525 - } - position++ - goto l524 - l525: - position, tokenIndex = position524, tokenIndex524 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l526 - } - position++ - goto l524 - l526: - position, tokenIndex = position524, tokenIndex524 - if buffer[position] != rune('_') { - goto l527 - } - position++ - goto l524 - l527: - position, tokenIndex = position524, tokenIndex524 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l519 - } - position++ + goto l513 + l514: + position, tokenIndex = position513, tokenIndex513 + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l512 } - l524: - goto l518 - l519: - position, tokenIndex = position519, tokenIndex519 + position++ } + l513: + goto l511 + l512: + position, tokenIndex = position512, tokenIndex512 } - l516: - if buffer[position] != rune('@') { - goto l514 + if buffer[position] != rune('}') { + goto l505 + } + position++ + add(ruleAVX512Token, position506) + } + return true + l505: + position, tokenIndex = position505, tokenIndex505 + return false + }, + /* 40 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ + func() bool { + position515, tokenIndex515 := position, tokenIndex + { + position516 := position + if buffer[position] != rune('.') { + goto l515 + } + position++ + if buffer[position] != rune('T') { + goto l515 + } + position++ + if buffer[position] != rune('O') { + goto l515 + } + position++ + if buffer[position] != rune('C') { + goto l515 + } + position++ + if buffer[position] != rune('.') { + goto l515 + } + position++ + if buffer[position] != rune('-') { + goto l515 } position++ { - position528, tokenIndex528 := position, tokenIndex - if buffer[position] != rune('h') { - goto l529 + position517, tokenIndex517 := position, tokenIndex + if buffer[position] != rune('0') { + goto l518 } position++ - goto l528 - l529: - position, tokenIndex = position528, tokenIndex528 - if buffer[position] != rune('H') { - goto l514 + if buffer[position] != rune('b') { + goto l518 } position++ + goto l517 + l518: + position, tokenIndex = position517, tokenIndex517 + if buffer[position] != rune('.') { + goto l515 + } + position++ + if buffer[position] != rune('L') { + goto l515 + } + position++ + { + position521, tokenIndex521 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l522 + } + position++ + goto l521 + l522: + position, tokenIndex = position521, tokenIndex521 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l523 + } + position++ + goto l521 + l523: + position, tokenIndex = position521, tokenIndex521 + if buffer[position] != rune('_') { + goto l524 + } + position++ + goto l521 + l524: + position, tokenIndex = position521, tokenIndex521 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l515 + } + position++ + } + l521: + l519: + { + position520, tokenIndex520 := position, tokenIndex + { + position525, tokenIndex525 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l526 + } + position++ + goto l525 + l526: + position, tokenIndex = position525, tokenIndex525 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l527 + } + position++ + goto l525 + l527: + position, tokenIndex = position525, tokenIndex525 + if buffer[position] != rune('_') { + goto l528 + } + position++ + goto l525 + l528: + position, tokenIndex = position525, tokenIndex525 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l520 + } + position++ + } + l525: + goto l519 + l520: + position, tokenIndex = position520, tokenIndex520 + } } - l528: + l517: + if buffer[position] != rune('@') { + goto l515 + } + position++ { - position530, tokenIndex530 := position, tokenIndex - if buffer[position] != rune('a') { - goto l531 + position529, tokenIndex529 := position, tokenIndex + if buffer[position] != rune('h') { + goto l530 } position++ - goto l530 - l531: - position, tokenIndex = position530, tokenIndex530 - if buffer[position] != rune('A') { - goto l514 + goto l529 + l530: + position, tokenIndex = position529, tokenIndex529 + if buffer[position] != rune('H') { + goto l515 } position++ } - l530: - add(ruleTOCRefHigh, position515) + l529: + { + position531, tokenIndex531 := position, tokenIndex + if buffer[position] != rune('a') { + goto l532 + } + position++ + goto l531 + l532: + position, tokenIndex = position531, tokenIndex531 + if buffer[position] != rune('A') { + goto l515 + } + position++ + } + l531: + add(ruleTOCRefHigh, position516) } return true - l514: - position, tokenIndex = position514, tokenIndex514 + l515: + position, tokenIndex = position515, tokenIndex515 return false }, /* 41 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ func() bool { - position532, tokenIndex532 := position, tokenIndex + position533, tokenIndex533 := position, tokenIndex { - position533 := position + position534 := position if buffer[position] != rune('.') { - goto l532 + goto l533 } position++ if buffer[position] != rune('T') { - goto l532 + goto l533 } position++ if buffer[position] != rune('O') { - goto l532 + goto l533 } position++ if buffer[position] != rune('C') { - goto l532 + goto l533 } position++ if buffer[position] != rune('.') { - goto l532 + goto l533 } position++ if buffer[position] != rune('-') { - goto l532 + goto l533 } position++ { - position534, tokenIndex534 := position, tokenIndex + position535, tokenIndex535 := position, tokenIndex if buffer[position] != rune('0') { - goto l535 + goto l536 } position++ if buffer[position] != rune('b') { - goto l535 + goto l536 } position++ - goto l534 - l535: - position, tokenIndex = position534, tokenIndex534 + goto l535 + l536: + position, tokenIndex = position535, tokenIndex535 if buffer[position] != rune('.') { - goto l532 + goto l533 } position++ if buffer[position] != rune('L') { - goto l532 + goto l533 } position++ { - position538, tokenIndex538 := position, tokenIndex + position539, tokenIndex539 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l539 - } - position++ - goto l538 - l539: - position, tokenIndex = position538, tokenIndex538 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l540 } position++ - goto l538 + goto l539 l540: - position, tokenIndex = position538, tokenIndex538 - if buffer[position] != rune('_') { + position, tokenIndex = position539, tokenIndex539 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l541 } position++ - goto l538 + goto l539 l541: - position, tokenIndex = position538, tokenIndex538 + position, tokenIndex = position539, tokenIndex539 + if buffer[position] != rune('_') { + goto l542 + } + position++ + goto l539 + l542: + position, tokenIndex = position539, tokenIndex539 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l532 + goto l533 } position++ } - l538: - l536: + l539: + l537: { - position537, tokenIndex537 := position, tokenIndex + position538, tokenIndex538 := position, tokenIndex { - position542, tokenIndex542 := position, tokenIndex + position543, tokenIndex543 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l543 - } - position++ - goto l542 - l543: - position, tokenIndex = position542, tokenIndex542 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l544 } position++ - goto l542 + goto l543 l544: - position, tokenIndex = position542, tokenIndex542 - if buffer[position] != rune('_') { + position, tokenIndex = position543, tokenIndex543 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l545 } position++ - goto l542 + goto l543 l545: - position, tokenIndex = position542, tokenIndex542 + position, tokenIndex = position543, tokenIndex543 + if buffer[position] != rune('_') { + goto l546 + } + position++ + goto l543 + l546: + position, tokenIndex = position543, tokenIndex543 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l537 + goto l538 } position++ } - l542: - goto l536 - l537: - position, tokenIndex = position537, tokenIndex537 + l543: + goto l537 + l538: + position, tokenIndex = position538, tokenIndex538 } } - l534: + l535: if buffer[position] != rune('@') { - goto l532 + goto l533 } position++ { - position546, tokenIndex546 := position, tokenIndex + position547, tokenIndex547 := position, tokenIndex if buffer[position] != rune('l') { - goto l547 + goto l548 } position++ - goto l546 - l547: - position, tokenIndex = position546, tokenIndex546 + goto l547 + l548: + position, tokenIndex = position547, tokenIndex547 if buffer[position] != rune('L') { - goto l532 + goto l533 } position++ } - l546: - add(ruleTOCRefLow, position533) + l547: + add(ruleTOCRefLow, position534) } return true - l532: - position, tokenIndex = position532, tokenIndex532 + l533: + position, tokenIndex = position533, tokenIndex533 return false }, /* 42 IndirectionIndicator <- <'*'> */ func() bool { - position548, tokenIndex548 := position, tokenIndex + position549, tokenIndex549 := position, tokenIndex { - position549 := position + position550 := position if buffer[position] != rune('*') { - goto l548 + goto l549 } position++ - add(ruleIndirectionIndicator, position549) + add(ruleIndirectionIndicator, position550) } return true - l548: - position, tokenIndex = position548, tokenIndex548 + l549: + position, tokenIndex = position549, tokenIndex549 return false }, /* 43 RegisterOrConstant <- <((('%' ([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))*) / ('$'? ((Offset Offset) / Offset)) / ('#' Offset ('*' [0-9]+ ('-' [0-9] [0-9]*)?)?) / ('#' '~'? '(' [0-9] WS? ('<' '<') WS? [0-9] ')') / ARMRegister) !('f' / 'b' / ':' / '(' / '+' / '-'))> */ func() bool { - position550, tokenIndex550 := position, tokenIndex + position551, tokenIndex551 := position, tokenIndex { - position551 := position + position552 := position { - position552, tokenIndex552 := position, tokenIndex + position553, tokenIndex553 := position, tokenIndex if buffer[position] != rune('%') { - goto l553 + goto l554 } position++ { - position554, tokenIndex554 := position, tokenIndex + position555, tokenIndex555 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l555 + goto l556 } position++ - goto l554 - l555: - position, tokenIndex = position554, tokenIndex554 + goto l555 + l556: + position, tokenIndex = position555, tokenIndex555 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l553 + goto l554 } position++ } - l554: - l556: + l555: + l557: { - position557, tokenIndex557 := position, tokenIndex + position558, tokenIndex558 := position, tokenIndex { - position558, tokenIndex558 := position, tokenIndex + position559, tokenIndex559 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l559 - } - position++ - goto l558 - l559: - position, tokenIndex = position558, tokenIndex558 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l560 } position++ - goto l558 + goto l559 l560: - position, tokenIndex = position558, tokenIndex558 + position, tokenIndex = position559, tokenIndex559 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l561 + } + position++ + goto l559 + l561: + position, tokenIndex = position559, tokenIndex559 { - position561, tokenIndex561 := position, tokenIndex + position562, tokenIndex562 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l562 + goto l563 } position++ - goto l561 - l562: - position, tokenIndex = position561, tokenIndex561 + goto l562 + l563: + position, tokenIndex = position562, tokenIndex562 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l557 + goto l558 } position++ } - l561: + l562: } + l559: + goto l557 l558: - goto l556 - l557: - position, tokenIndex = position557, tokenIndex557 + position, tokenIndex = position558, tokenIndex558 } - goto l552 - l553: - position, tokenIndex = position552, tokenIndex552 + goto l553 + l554: + position, tokenIndex = position553, tokenIndex553 { - position564, tokenIndex564 := position, tokenIndex + position565, tokenIndex565 := position, tokenIndex if buffer[position] != rune('$') { - goto l564 + goto l565 } position++ - goto l565 - l564: - position, tokenIndex = position564, tokenIndex564 - } - l565: - { - position566, tokenIndex566 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l567 - } - if !_rules[ruleOffset]() { - goto l567 - } goto l566 - l567: - position, tokenIndex = position566, tokenIndex566 - if !_rules[ruleOffset]() { - goto l563 - } + l565: + position, tokenIndex = position565, tokenIndex565 } l566: - goto l552 - l563: - position, tokenIndex = position552, tokenIndex552 + { + position567, tokenIndex567 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l568 + } + if !_rules[ruleOffset]() { + goto l568 + } + goto l567 + l568: + position, tokenIndex = position567, tokenIndex567 + if !_rules[ruleOffset]() { + goto l564 + } + } + l567: + goto l553 + l564: + position, tokenIndex = position553, tokenIndex553 if buffer[position] != rune('#') { - goto l568 + goto l569 } position++ if !_rules[ruleOffset]() { - goto l568 + goto l569 } { - position569, tokenIndex569 := position, tokenIndex + position570, tokenIndex570 := position, tokenIndex if buffer[position] != rune('*') { - goto l569 + goto l570 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l569 + goto l570 } position++ - l571: - { - position572, tokenIndex572 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l572 - } - position++ - goto l571 - l572: - position, tokenIndex = position572, tokenIndex572 - } + l572: { position573, tokenIndex573 := position, tokenIndex - if buffer[position] != rune('-') { - goto l573 - } - position++ if c := buffer[position]; c < rune('0') || c > rune('9') { goto l573 } position++ - l575: - { - position576, tokenIndex576 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l576 - } - position++ - goto l575 - l576: - position, tokenIndex = position576, tokenIndex576 - } - goto l574 + goto l572 l573: position, tokenIndex = position573, tokenIndex573 } - l574: - goto l570 - l569: - position, tokenIndex = position569, tokenIndex569 + { + position574, tokenIndex574 := position, tokenIndex + if buffer[position] != rune('-') { + goto l574 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l574 + } + position++ + l576: + { + position577, tokenIndex577 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l577 + } + position++ + goto l576 + l577: + position, tokenIndex = position577, tokenIndex577 + } + goto l575 + l574: + position, tokenIndex = position574, tokenIndex574 + } + l575: + goto l571 + l570: + position, tokenIndex = position570, tokenIndex570 } - l570: - goto l552 - l568: - position, tokenIndex = position552, tokenIndex552 + l571: + goto l553 + l569: + position, tokenIndex = position553, tokenIndex553 if buffer[position] != rune('#') { - goto l577 + goto l578 } position++ { - position578, tokenIndex578 := position, tokenIndex + position579, tokenIndex579 := position, tokenIndex if buffer[position] != rune('~') { - goto l578 + goto l579 } position++ - goto l579 - l578: - position, tokenIndex = position578, tokenIndex578 + goto l580 + l579: + position, tokenIndex = position579, tokenIndex579 } - l579: + l580: if buffer[position] != rune('(') { - goto l577 + goto l578 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l577 + goto l578 } position++ { - position580, tokenIndex580 := position, tokenIndex + position581, tokenIndex581 := position, tokenIndex if !_rules[ruleWS]() { - goto l580 + goto l581 } - goto l581 - l580: - position, tokenIndex = position580, tokenIndex580 + goto l582 + l581: + position, tokenIndex = position581, tokenIndex581 } - l581: + l582: if buffer[position] != rune('<') { - goto l577 + goto l578 } position++ if buffer[position] != rune('<') { - goto l577 + goto l578 } position++ { - position582, tokenIndex582 := position, tokenIndex + position583, tokenIndex583 := position, tokenIndex if !_rules[ruleWS]() { - goto l582 + goto l583 } - goto l583 - l582: - position, tokenIndex = position582, tokenIndex582 + goto l584 + l583: + position, tokenIndex = position583, tokenIndex583 } - l583: + l584: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l577 + goto l578 } position++ if buffer[position] != rune(')') { - goto l577 + goto l578 } position++ - goto l552 - l577: - position, tokenIndex = position552, tokenIndex552 + goto l553 + l578: + position, tokenIndex = position553, tokenIndex553 if !_rules[ruleARMRegister]() { - goto l550 + goto l551 } } - l552: + l553: { - position584, tokenIndex584 := position, tokenIndex + position585, tokenIndex585 := position, tokenIndex { - position585, tokenIndex585 := position, tokenIndex + position586, tokenIndex586 := position, tokenIndex if buffer[position] != rune('f') { - goto l586 - } - position++ - goto l585 - l586: - position, tokenIndex = position585, tokenIndex585 - if buffer[position] != rune('b') { goto l587 } position++ - goto l585 + goto l586 l587: - position, tokenIndex = position585, tokenIndex585 - if buffer[position] != rune(':') { + position, tokenIndex = position586, tokenIndex586 + if buffer[position] != rune('b') { goto l588 } position++ - goto l585 + goto l586 l588: - position, tokenIndex = position585, tokenIndex585 - if buffer[position] != rune('(') { + position, tokenIndex = position586, tokenIndex586 + if buffer[position] != rune(':') { goto l589 } position++ - goto l585 + goto l586 l589: - position, tokenIndex = position585, tokenIndex585 - if buffer[position] != rune('+') { + position, tokenIndex = position586, tokenIndex586 + if buffer[position] != rune('(') { goto l590 } position++ - goto l585 + goto l586 l590: - position, tokenIndex = position585, tokenIndex585 + position, tokenIndex = position586, tokenIndex586 + if buffer[position] != rune('+') { + goto l591 + } + position++ + goto l586 + l591: + position, tokenIndex = position586, tokenIndex586 if buffer[position] != rune('-') { - goto l584 + goto l585 } position++ } + l586: + goto l551 l585: - goto l550 - l584: - position, tokenIndex = position584, tokenIndex584 + position, tokenIndex = position585, tokenIndex585 } - add(ruleRegisterOrConstant, position551) + add(ruleRegisterOrConstant, position552) } return true - l550: - position, tokenIndex = position550, tokenIndex550 + l551: + position, tokenIndex = position551, tokenIndex551 return false }, /* 44 ARMConstantTweak <- <((((('u' / 's') (('x' / 'X') ('t' / 'T')) ('x' / 'w' / 'h' / 'b')) / (('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R'))) (WS '#' Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' '#' [0-9]))> */ func() bool { - position591, tokenIndex591 := position, tokenIndex + position592, tokenIndex592 := position, tokenIndex { - position592 := position + position593 := position { - position593, tokenIndex593 := position, tokenIndex + position594, tokenIndex594 := position, tokenIndex { - position595, tokenIndex595 := position, tokenIndex + position596, tokenIndex596 := position, tokenIndex { - position597, tokenIndex597 := position, tokenIndex + position598, tokenIndex598 := position, tokenIndex if buffer[position] != rune('u') { - goto l598 + goto l599 } position++ - goto l597 - l598: - position, tokenIndex = position597, tokenIndex597 + goto l598 + l599: + position, tokenIndex = position598, tokenIndex598 if buffer[position] != rune('s') { - goto l596 + goto l597 } position++ } - l597: + l598: { - position599, tokenIndex599 := position, tokenIndex + position600, tokenIndex600 := position, tokenIndex if buffer[position] != rune('x') { - goto l600 + goto l601 } position++ - goto l599 - l600: - position, tokenIndex = position599, tokenIndex599 + goto l600 + l601: + position, tokenIndex = position600, tokenIndex600 if buffer[position] != rune('X') { - goto l596 + goto l597 } position++ } - l599: + l600: { - position601, tokenIndex601 := position, tokenIndex + position602, tokenIndex602 := position, tokenIndex if buffer[position] != rune('t') { - goto l602 + goto l603 } position++ - goto l601 - l602: - position, tokenIndex = position601, tokenIndex601 + goto l602 + l603: + position, tokenIndex = position602, tokenIndex602 if buffer[position] != rune('T') { - goto l596 + goto l597 } position++ } - l601: + l602: { - position603, tokenIndex603 := position, tokenIndex + position604, tokenIndex604 := position, tokenIndex if buffer[position] != rune('x') { - goto l604 - } - position++ - goto l603 - l604: - position, tokenIndex = position603, tokenIndex603 - if buffer[position] != rune('w') { goto l605 } position++ - goto l603 + goto l604 l605: - position, tokenIndex = position603, tokenIndex603 - if buffer[position] != rune('h') { + position, tokenIndex = position604, tokenIndex604 + if buffer[position] != rune('w') { goto l606 } position++ - goto l603 + goto l604 l606: - position, tokenIndex = position603, tokenIndex603 + position, tokenIndex = position604, tokenIndex604 + if buffer[position] != rune('h') { + goto l607 + } + position++ + goto l604 + l607: + position, tokenIndex = position604, tokenIndex604 if buffer[position] != rune('b') { - goto l596 + goto l597 } position++ } - l603: - goto l595 - l596: - position, tokenIndex = position595, tokenIndex595 + l604: + goto l596 + l597: + position, tokenIndex = position596, tokenIndex596 { - position608, tokenIndex608 := position, tokenIndex + position609, tokenIndex609 := position, tokenIndex if buffer[position] != rune('l') { - goto l609 + goto l610 } position++ - goto l608 - l609: - position, tokenIndex = position608, tokenIndex608 + goto l609 + l610: + position, tokenIndex = position609, tokenIndex609 if buffer[position] != rune('L') { - goto l607 + goto l608 } position++ } + l609: + { + position611, tokenIndex611 := position, tokenIndex + if buffer[position] != rune('s') { + goto l612 + } + position++ + goto l611 + l612: + position, tokenIndex = position611, tokenIndex611 + if buffer[position] != rune('S') { + goto l608 + } + position++ + } + l611: + { + position613, tokenIndex613 := position, tokenIndex + if buffer[position] != rune('l') { + goto l614 + } + position++ + goto l613 + l614: + position, tokenIndex = position613, tokenIndex613 + if buffer[position] != rune('L') { + goto l608 + } + position++ + } + l613: + goto l596 l608: + position, tokenIndex = position596, tokenIndex596 { - position610, tokenIndex610 := position, tokenIndex + position616, tokenIndex616 := position, tokenIndex + if buffer[position] != rune('l') { + goto l617 + } + position++ + goto l616 + l617: + position, tokenIndex = position616, tokenIndex616 + if buffer[position] != rune('L') { + goto l615 + } + position++ + } + l616: + { + position618, tokenIndex618 := position, tokenIndex if buffer[position] != rune('s') { - goto l611 + goto l619 } position++ - goto l610 - l611: - position, tokenIndex = position610, tokenIndex610 + goto l618 + l619: + position, tokenIndex = position618, tokenIndex618 if buffer[position] != rune('S') { - goto l607 + goto l615 } position++ } - l610: + l618: { - position612, tokenIndex612 := position, tokenIndex - if buffer[position] != rune('l') { - goto l613 + position620, tokenIndex620 := position, tokenIndex + if buffer[position] != rune('r') { + goto l621 } position++ - goto l612 - l613: - position, tokenIndex = position612, tokenIndex612 - if buffer[position] != rune('L') { - goto l607 + goto l620 + l621: + position, tokenIndex = position620, tokenIndex620 + if buffer[position] != rune('R') { + goto l615 } position++ } - l612: - goto l595 - l607: - position, tokenIndex = position595, tokenIndex595 - { - position615, tokenIndex615 := position, tokenIndex - if buffer[position] != rune('l') { - goto l616 - } - position++ - goto l615 - l616: - position, tokenIndex = position615, tokenIndex615 - if buffer[position] != rune('L') { - goto l614 - } - position++ - } + l620: + goto l596 l615: + position, tokenIndex = position596, tokenIndex596 { - position617, tokenIndex617 := position, tokenIndex - if buffer[position] != rune('s') { - goto l618 - } - position++ - goto l617 - l618: - position, tokenIndex = position617, tokenIndex617 - if buffer[position] != rune('S') { - goto l614 - } - position++ - } - l617: - { - position619, tokenIndex619 := position, tokenIndex + position623, tokenIndex623 := position, tokenIndex if buffer[position] != rune('r') { - goto l620 + goto l624 } position++ - goto l619 - l620: - position, tokenIndex = position619, tokenIndex619 + goto l623 + l624: + position, tokenIndex = position623, tokenIndex623 if buffer[position] != rune('R') { - goto l614 + goto l622 } position++ } - l619: - goto l595 - l614: - position, tokenIndex = position595, tokenIndex595 + l623: { - position622, tokenIndex622 := position, tokenIndex - if buffer[position] != rune('r') { - goto l623 - } - position++ - goto l622 - l623: - position, tokenIndex = position622, tokenIndex622 - if buffer[position] != rune('R') { - goto l621 - } - position++ - } - l622: - { - position624, tokenIndex624 := position, tokenIndex + position625, tokenIndex625 := position, tokenIndex if buffer[position] != rune('o') { - goto l625 + goto l626 } position++ - goto l624 - l625: - position, tokenIndex = position624, tokenIndex624 + goto l625 + l626: + position, tokenIndex = position625, tokenIndex625 if buffer[position] != rune('O') { - goto l621 + goto l622 } position++ } - l624: + l625: { - position626, tokenIndex626 := position, tokenIndex + position627, tokenIndex627 := position, tokenIndex if buffer[position] != rune('r') { - goto l627 + goto l628 } position++ - goto l626 - l627: - position, tokenIndex = position626, tokenIndex626 + goto l627 + l628: + position, tokenIndex = position627, tokenIndex627 if buffer[position] != rune('R') { - goto l621 + goto l622 } position++ } - l626: - goto l595 - l621: - position, tokenIndex = position595, tokenIndex595 + l627: + goto l596 + l622: + position, tokenIndex = position596, tokenIndex596 { - position628, tokenIndex628 := position, tokenIndex + position629, tokenIndex629 := position, tokenIndex if buffer[position] != rune('a') { - goto l629 + goto l630 } position++ - goto l628 - l629: - position, tokenIndex = position628, tokenIndex628 + goto l629 + l630: + position, tokenIndex = position629, tokenIndex629 if buffer[position] != rune('A') { - goto l594 + goto l595 } position++ } - l628: + l629: { - position630, tokenIndex630 := position, tokenIndex + position631, tokenIndex631 := position, tokenIndex if buffer[position] != rune('s') { - goto l631 + goto l632 } position++ - goto l630 - l631: - position, tokenIndex = position630, tokenIndex630 + goto l631 + l632: + position, tokenIndex = position631, tokenIndex631 if buffer[position] != rune('S') { - goto l594 + goto l595 } position++ } - l630: + l631: { - position632, tokenIndex632 := position, tokenIndex + position633, tokenIndex633 := position, tokenIndex if buffer[position] != rune('r') { - goto l633 + goto l634 } position++ - goto l632 - l633: - position, tokenIndex = position632, tokenIndex632 + goto l633 + l634: + position, tokenIndex = position633, tokenIndex633 if buffer[position] != rune('R') { - goto l594 + goto l595 } position++ } - l632: + l633: } - l595: + l596: { - position634, tokenIndex634 := position, tokenIndex + position635, tokenIndex635 := position, tokenIndex if !_rules[ruleWS]() { - goto l634 + goto l635 } if buffer[position] != rune('#') { - goto l634 + goto l635 } position++ if !_rules[ruleOffset]() { - goto l634 + goto l635 } - goto l635 - l634: - position, tokenIndex = position634, tokenIndex634 - } - l635: - goto l593 - l594: - position, tokenIndex = position593, tokenIndex593 - { - position637, tokenIndex637 := position, tokenIndex - if buffer[position] != rune('m') { - goto l638 - } - position++ - goto l637 - l638: - position, tokenIndex = position637, tokenIndex637 - if buffer[position] != rune('M') { - goto l636 - } - position++ - } - l637: - { - position639, tokenIndex639 := position, tokenIndex - if buffer[position] != rune('u') { - goto l640 - } - position++ - goto l639 - l640: - position, tokenIndex = position639, tokenIndex639 - if buffer[position] != rune('U') { - goto l636 - } - position++ - } - l639: - { - position641, tokenIndex641 := position, tokenIndex - if buffer[position] != rune('l') { - goto l642 - } - position++ - goto l641 - l642: - position, tokenIndex = position641, tokenIndex641 - if buffer[position] != rune('L') { - goto l636 - } - position++ - } - l641: - if buffer[position] != rune(' ') { goto l636 + l635: + position, tokenIndex = position635, tokenIndex635 + } + l636: + goto l594 + l595: + position, tokenIndex = position594, tokenIndex594 + { + position638, tokenIndex638 := position, tokenIndex + if buffer[position] != rune('m') { + goto l639 + } + position++ + goto l638 + l639: + position, tokenIndex = position638, tokenIndex638 + if buffer[position] != rune('M') { + goto l637 + } + position++ + } + l638: + { + position640, tokenIndex640 := position, tokenIndex + if buffer[position] != rune('u') { + goto l641 + } + position++ + goto l640 + l641: + position, tokenIndex = position640, tokenIndex640 + if buffer[position] != rune('U') { + goto l637 + } + position++ + } + l640: + { + position642, tokenIndex642 := position, tokenIndex + if buffer[position] != rune('l') { + goto l643 + } + position++ + goto l642 + l643: + position, tokenIndex = position642, tokenIndex642 + if buffer[position] != rune('L') { + goto l637 + } + position++ + } + l642: + if buffer[position] != rune(' ') { + goto l637 } position++ { - position643, tokenIndex643 := position, tokenIndex + position644, tokenIndex644 := position, tokenIndex if buffer[position] != rune('v') { - goto l644 + goto l645 } position++ - goto l643 - l644: - position, tokenIndex = position643, tokenIndex643 + goto l644 + l645: + position, tokenIndex = position644, tokenIndex644 if buffer[position] != rune('V') { - goto l636 + goto l637 } position++ } - l643: + l644: { - position645, tokenIndex645 := position, tokenIndex + position646, tokenIndex646 := position, tokenIndex if buffer[position] != rune('l') { - goto l646 + goto l647 } position++ - goto l645 - l646: - position, tokenIndex = position645, tokenIndex645 + goto l646 + l647: + position, tokenIndex = position646, tokenIndex646 if buffer[position] != rune('L') { - goto l636 + goto l637 } position++ } - l645: - goto l593 - l636: - position, tokenIndex = position593, tokenIndex593 + l646: + goto l594 + l637: + position, tokenIndex = position594, tokenIndex594 { - position647, tokenIndex647 := position, tokenIndex + position648, tokenIndex648 := position, tokenIndex if buffer[position] != rune('m') { - goto l648 + goto l649 } position++ - goto l647 - l648: - position, tokenIndex = position647, tokenIndex647 + goto l648 + l649: + position, tokenIndex = position648, tokenIndex648 if buffer[position] != rune('M') { - goto l591 + goto l592 } position++ } - l647: + l648: { - position649, tokenIndex649 := position, tokenIndex + position650, tokenIndex650 := position, tokenIndex if buffer[position] != rune('u') { - goto l650 + goto l651 } position++ - goto l649 - l650: - position, tokenIndex = position649, tokenIndex649 + goto l650 + l651: + position, tokenIndex = position650, tokenIndex650 if buffer[position] != rune('U') { - goto l591 + goto l592 } position++ } - l649: + l650: { - position651, tokenIndex651 := position, tokenIndex + position652, tokenIndex652 := position, tokenIndex if buffer[position] != rune('l') { - goto l652 + goto l653 } position++ - goto l651 - l652: - position, tokenIndex = position651, tokenIndex651 + goto l652 + l653: + position, tokenIndex = position652, tokenIndex652 if buffer[position] != rune('L') { - goto l591 + goto l592 } position++ } - l651: + l652: if buffer[position] != rune(' ') { - goto l591 + goto l592 } position++ if buffer[position] != rune('#') { - goto l591 + goto l592 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l591 + goto l592 } position++ } - l593: - add(ruleARMConstantTweak, position592) + l594: + add(ruleARMConstantTweak, position593) } return true - l591: - position, tokenIndex = position591, tokenIndex591 + l592: + position, tokenIndex = position592, tokenIndex592 return false }, /* 45 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / SVE2PredicateRegister / ARMVectorRegister / SVE2SpecialValue / ('{' WS? ARMVectorRegister (',' WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ func() bool { - position653, tokenIndex653 := position, tokenIndex + position654, tokenIndex654 := position, tokenIndex { - position654 := position + position655 := position { - position655, tokenIndex655 := position, tokenIndex + position656, tokenIndex656 := position, tokenIndex { - position657, tokenIndex657 := position, tokenIndex + position658, tokenIndex658 := position, tokenIndex if buffer[position] != rune('s') { - goto l658 + goto l659 } position++ - goto l657 - l658: - position, tokenIndex = position657, tokenIndex657 + goto l658 + l659: + position, tokenIndex = position658, tokenIndex658 if buffer[position] != rune('S') { - goto l656 + goto l657 } position++ } - l657: + l658: { - position659, tokenIndex659 := position, tokenIndex + position660, tokenIndex660 := position, tokenIndex if buffer[position] != rune('p') { - goto l660 - } - position++ - goto l659 - l660: - position, tokenIndex = position659, tokenIndex659 - if buffer[position] != rune('P') { - goto l656 - } - position++ - } - l659: - goto l655 - l656: - position, tokenIndex = position655, tokenIndex655 - { - position662, tokenIndex662 := position, tokenIndex - if buffer[position] != rune('x') { - goto l663 - } - position++ - goto l662 - l663: - position, tokenIndex = position662, tokenIndex662 - if buffer[position] != rune('w') { - goto l664 - } - position++ - goto l662 - l664: - position, tokenIndex = position662, tokenIndex662 - if buffer[position] != rune('d') { - goto l665 - } - position++ - goto l662 - l665: - position, tokenIndex = position662, tokenIndex662 - if buffer[position] != rune('q') { - goto l666 - } - position++ - goto l662 - l666: - position, tokenIndex = position662, tokenIndex662 - if buffer[position] != rune('s') { - goto l667 - } - position++ - goto l662 - l667: - position, tokenIndex = position662, tokenIndex662 - if buffer[position] != rune('h') { - goto l668 - } - position++ - goto l662 - l668: - position, tokenIndex = position662, tokenIndex662 - if buffer[position] != rune('b') { goto l661 } position++ + goto l660 + l661: + position, tokenIndex = position660, tokenIndex660 + if buffer[position] != rune('P') { + goto l657 + } + position++ } - l662: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l661 - } - position++ + l660: + goto l656 + l657: + position, tokenIndex = position656, tokenIndex656 { - position669, tokenIndex669 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + position663, tokenIndex663 := position, tokenIndex + if buffer[position] != rune('x') { + goto l664 + } + position++ + goto l663 + l664: + position, tokenIndex = position663, tokenIndex663 + if buffer[position] != rune('w') { + goto l665 + } + position++ + goto l663 + l665: + position, tokenIndex = position663, tokenIndex663 + if buffer[position] != rune('d') { + goto l666 + } + position++ + goto l663 + l666: + position, tokenIndex = position663, tokenIndex663 + if buffer[position] != rune('q') { + goto l667 + } + position++ + goto l663 + l667: + position, tokenIndex = position663, tokenIndex663 + if buffer[position] != rune('s') { + goto l668 + } + position++ + goto l663 + l668: + position, tokenIndex = position663, tokenIndex663 + if buffer[position] != rune('h') { goto l669 } position++ - goto l670 + goto l663 l669: - position, tokenIndex = position669, tokenIndex669 - } - l670: - goto l655 - l661: - position, tokenIndex = position655, tokenIndex655 - { - position672, tokenIndex672 := position, tokenIndex - if buffer[position] != rune('x') { - goto l673 - } - position++ - goto l672 - l673: - position, tokenIndex = position672, tokenIndex672 - if buffer[position] != rune('X') { - goto l671 + position, tokenIndex = position663, tokenIndex663 + if buffer[position] != rune('b') { + goto l662 } position++ } - l672: - { - position674, tokenIndex674 := position, tokenIndex - if buffer[position] != rune('z') { - goto l675 - } - position++ - goto l674 - l675: - position, tokenIndex = position674, tokenIndex674 - if buffer[position] != rune('Z') { - goto l671 - } - position++ - } - l674: - { - position676, tokenIndex676 := position, tokenIndex - if buffer[position] != rune('r') { - goto l677 - } - position++ - goto l676 - l677: - position, tokenIndex = position676, tokenIndex676 - if buffer[position] != rune('R') { - goto l671 - } - position++ - } - l676: - goto l655 - l671: - position, tokenIndex = position655, tokenIndex655 - { - position679, tokenIndex679 := position, tokenIndex - if buffer[position] != rune('w') { - goto l680 - } - position++ - goto l679 - l680: - position, tokenIndex = position679, tokenIndex679 - if buffer[position] != rune('W') { - goto l678 - } - position++ - } - l679: - { - position681, tokenIndex681 := position, tokenIndex - if buffer[position] != rune('z') { - goto l682 - } - position++ - goto l681 - l682: - position, tokenIndex = position681, tokenIndex681 - if buffer[position] != rune('Z') { - goto l678 - } - position++ - } - 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 l655 - l678: - position, tokenIndex = position655, tokenIndex655 - { - position686, tokenIndex686 := position, tokenIndex - if buffer[position] != rune('n') { - goto l687 - } - position++ - goto l686 - l687: - position, tokenIndex = position686, tokenIndex686 - if buffer[position] != rune('N') { - goto l685 - } - position++ - } - l686: - { - position688, tokenIndex688 := position, tokenIndex - if buffer[position] != rune('z') { - goto l689 - } - position++ - goto l688 - l689: - position, tokenIndex = position688, tokenIndex688 - if buffer[position] != rune('Z') { - goto l685 - } - position++ - } - l688: - { - position690, tokenIndex690 := position, tokenIndex - if buffer[position] != rune('c') { - goto l691 - } - position++ - goto l690 - l691: - position, tokenIndex = position690, tokenIndex690 - if buffer[position] != rune('C') { - goto l685 - } - position++ - } - l690: - { - position692, tokenIndex692 := position, tokenIndex - if buffer[position] != rune('v') { - goto l693 - } - position++ - goto l692 - l693: - position, tokenIndex = position692, tokenIndex692 - if buffer[position] != rune('V') { - goto l685 - } - position++ - } - l692: - goto l655 - l685: - position, tokenIndex = position655, tokenIndex655 - if !_rules[ruleSVE2PredicateRegister]() { - goto l694 - } - goto l655 - l694: - position, tokenIndex = position655, tokenIndex655 - if !_rules[ruleARMVectorRegister]() { - goto l695 - } - goto l655 - l695: - position, tokenIndex = position655, tokenIndex655 - if !_rules[ruleSVE2SpecialValue]() { - goto l696 - } - goto l655 - l696: - position, tokenIndex = position655, tokenIndex655 - if buffer[position] != rune('{') { - goto l653 + l663: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l662 } position++ { - position697, tokenIndex697 := position, tokenIndex - if !_rules[ruleWS]() { - goto l697 + position670, tokenIndex670 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l670 } - goto l698 - l697: - position, tokenIndex = position697, tokenIndex697 + position++ + goto l671 + l670: + position, tokenIndex = position670, tokenIndex670 } - l698: + l671: + goto l656 + l662: + position, tokenIndex = position656, tokenIndex656 + { + position673, tokenIndex673 := position, tokenIndex + if buffer[position] != rune('x') { + goto l674 + } + position++ + goto l673 + l674: + position, tokenIndex = position673, tokenIndex673 + if buffer[position] != rune('X') { + goto l672 + } + position++ + } + l673: + { + position675, tokenIndex675 := position, tokenIndex + if buffer[position] != rune('z') { + goto l676 + } + position++ + goto l675 + l676: + position, tokenIndex = position675, tokenIndex675 + if buffer[position] != rune('Z') { + goto l672 + } + position++ + } + l675: + { + position677, tokenIndex677 := position, tokenIndex + if buffer[position] != rune('r') { + goto l678 + } + position++ + goto l677 + l678: + position, tokenIndex = position677, tokenIndex677 + if buffer[position] != rune('R') { + goto l672 + } + position++ + } + l677: + goto l656 + l672: + position, tokenIndex = position656, tokenIndex656 + { + position680, tokenIndex680 := position, tokenIndex + if buffer[position] != rune('w') { + goto l681 + } + position++ + goto l680 + l681: + position, tokenIndex = position680, tokenIndex680 + if buffer[position] != rune('W') { + goto l679 + } + position++ + } + l680: + { + position682, tokenIndex682 := position, tokenIndex + if buffer[position] != rune('z') { + goto l683 + } + position++ + goto l682 + l683: + position, tokenIndex = position682, tokenIndex682 + if buffer[position] != rune('Z') { + goto l679 + } + position++ + } + l682: + { + position684, tokenIndex684 := position, tokenIndex + if buffer[position] != rune('r') { + goto l685 + } + position++ + goto l684 + l685: + position, tokenIndex = position684, tokenIndex684 + if buffer[position] != rune('R') { + goto l679 + } + position++ + } + l684: + goto l656 + l679: + position, tokenIndex = position656, tokenIndex656 + { + position687, tokenIndex687 := position, tokenIndex + if buffer[position] != rune('n') { + goto l688 + } + position++ + goto l687 + l688: + position, tokenIndex = position687, tokenIndex687 + if buffer[position] != rune('N') { + goto l686 + } + position++ + } + l687: + { + position689, tokenIndex689 := position, tokenIndex + if buffer[position] != rune('z') { + goto l690 + } + position++ + goto l689 + l690: + position, tokenIndex = position689, tokenIndex689 + if buffer[position] != rune('Z') { + goto l686 + } + position++ + } + l689: + { + position691, tokenIndex691 := position, tokenIndex + if buffer[position] != rune('c') { + goto l692 + } + position++ + goto l691 + l692: + position, tokenIndex = position691, tokenIndex691 + if buffer[position] != rune('C') { + goto l686 + } + position++ + } + l691: + { + position693, tokenIndex693 := position, tokenIndex + if buffer[position] != rune('v') { + goto l694 + } + position++ + goto l693 + l694: + position, tokenIndex = position693, tokenIndex693 + if buffer[position] != rune('V') { + goto l686 + } + position++ + } + l693: + goto l656 + l686: + position, tokenIndex = position656, tokenIndex656 + if !_rules[ruleSVE2PredicateRegister]() { + goto l695 + } + goto l656 + l695: + position, tokenIndex = position656, tokenIndex656 if !_rules[ruleARMVectorRegister]() { - goto l653 + goto l696 + } + goto l656 + l696: + position, tokenIndex = position656, tokenIndex656 + if !_rules[ruleSVE2SpecialValue]() { + goto l697 + } + goto l656 + l697: + position, tokenIndex = position656, tokenIndex656 + if buffer[position] != rune('{') { + goto l654 + } + position++ + { + position698, tokenIndex698 := position, tokenIndex + if !_rules[ruleWS]() { + goto l698 + } + goto l699 + l698: + position, tokenIndex = position698, tokenIndex698 } l699: + if !_rules[ruleARMVectorRegister]() { + goto l654 + } + l700: { - position700, tokenIndex700 := position, tokenIndex + position701, tokenIndex701 := position, tokenIndex if buffer[position] != rune(',') { - goto l700 + goto l701 } position++ { - position701, tokenIndex701 := position, tokenIndex + position702, tokenIndex702 := position, tokenIndex if !_rules[ruleWS]() { - goto l701 + goto l702 } - goto l702 - l701: - position, tokenIndex = position701, tokenIndex701 + goto l703 + l702: + position, tokenIndex = position702, tokenIndex702 } - l702: + l703: if !_rules[ruleARMVectorRegister]() { - goto l700 + goto l701 } - goto l699 - l700: - position, tokenIndex = position700, tokenIndex700 + goto l700 + l701: + position, tokenIndex = position701, tokenIndex701 } { - position703, tokenIndex703 := position, tokenIndex + position704, tokenIndex704 := position, tokenIndex if !_rules[ruleWS]() { - goto l703 + goto l704 } - goto l704 - l703: - position, tokenIndex = position703, tokenIndex703 + goto l705 + l704: + position, tokenIndex = position704, tokenIndex704 } - l704: + l705: if buffer[position] != rune('}') { - goto l653 + goto l654 } position++ { - position705, tokenIndex705 := position, tokenIndex + position706, tokenIndex706 := position, tokenIndex if buffer[position] != rune('[') { - goto l705 + goto l706 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l705 + goto l706 } position++ { - position707, tokenIndex707 := position, tokenIndex + position708, tokenIndex708 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l707 + goto l708 } position++ - goto l708 - l707: - position, tokenIndex = position707, tokenIndex707 + goto l709 + l708: + position, tokenIndex = position708, tokenIndex708 } - l708: + l709: if buffer[position] != rune(']') { - goto l705 + goto l706 } position++ - goto l706 - l705: - position, tokenIndex = position705, tokenIndex705 + goto l707 + l706: + position, tokenIndex = position706, tokenIndex706 } - l706: + l707: } - l655: - add(ruleARMRegister, position654) + l656: + add(ruleARMRegister, position655) } return true - l653: - position, tokenIndex = position653, tokenIndex653 + l654: + position, tokenIndex = position654, tokenIndex654 return false }, /* 46 ARMVectorRegister <- <(('p' / 'v' / 'z') [0-9] [0-9]? !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_') ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ func() bool { - position709, tokenIndex709 := position, tokenIndex + position710, tokenIndex710 := position, tokenIndex { - position710 := position + position711 := position { - position711, tokenIndex711 := position, tokenIndex + position712, tokenIndex712 := position, tokenIndex if buffer[position] != rune('p') { - goto l712 - } - position++ - goto l711 - l712: - position, tokenIndex = position711, tokenIndex711 - if buffer[position] != rune('v') { goto l713 } position++ - goto l711 + goto l712 l713: - position, tokenIndex = position711, tokenIndex711 - if buffer[position] != rune('z') { - goto l709 - } - position++ - } - l711: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l709 - } - position++ - { - position714, tokenIndex714 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + position, tokenIndex = position712, tokenIndex712 + if buffer[position] != rune('v') { goto l714 } position++ - goto l715 + goto l712 l714: - position, tokenIndex = position714, tokenIndex714 + position, tokenIndex = position712, tokenIndex712 + if buffer[position] != rune('z') { + goto l710 + } + position++ } - l715: + l712: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l710 + } + position++ { - position716, tokenIndex716 := position, tokenIndex + position715, tokenIndex715 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l715 + } + position++ + goto l716 + l715: + position, tokenIndex = position715, tokenIndex715 + } + l716: + { + position717, tokenIndex717 := position, tokenIndex { - position717, tokenIndex717 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l718 - } - position++ - goto l717 - l718: - position, tokenIndex = position717, tokenIndex717 + position718, tokenIndex718 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { goto l719 } position++ - goto l717 + goto l718 l719: - position, tokenIndex = position717, tokenIndex717 + position, tokenIndex = position718, tokenIndex718 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l720 + } + position++ + goto l718 + l720: + position, tokenIndex = position718, tokenIndex718 { - position721, tokenIndex721 := position, tokenIndex + position722, tokenIndex722 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l722 + goto l723 } position++ - goto l721 - l722: - position, tokenIndex = position721, tokenIndex721 + goto l722 + l723: + position, tokenIndex = position722, tokenIndex722 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l720 + goto l721 } position++ } + l722: + goto l718 l721: - goto l717 - l720: - position, tokenIndex = position717, tokenIndex717 + position, tokenIndex = position718, tokenIndex718 if buffer[position] != rune('_') { - goto l716 + goto l717 } position++ } + l718: + goto l710 l717: - goto l709 - l716: - position, tokenIndex = position716, tokenIndex716 + position, tokenIndex = position717, tokenIndex717 } { - position723, tokenIndex723 := position, tokenIndex + position724, tokenIndex724 := position, tokenIndex if buffer[position] != rune('.') { - goto l723 + goto l724 } position++ - l725: - { - position726, tokenIndex726 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l726 - } - position++ - goto l725 - l726: - position, tokenIndex = position726, tokenIndex726 - } + l726: { position727, tokenIndex727 := position, tokenIndex - if buffer[position] != rune('b') { - goto l728 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l727 } position++ - goto l727 - l728: + goto l726 + l727: position, tokenIndex = position727, tokenIndex727 - if buffer[position] != rune('s') { + } + { + position728, tokenIndex728 := position, tokenIndex + if buffer[position] != rune('b') { goto l729 } position++ - goto l727 + goto l728 l729: - position, tokenIndex = position727, tokenIndex727 - if buffer[position] != rune('d') { + position, tokenIndex = position728, tokenIndex728 + if buffer[position] != rune('s') { goto l730 } position++ - goto l727 + goto l728 l730: - position, tokenIndex = position727, tokenIndex727 - if buffer[position] != rune('h') { + position, tokenIndex = position728, tokenIndex728 + if buffer[position] != rune('d') { goto l731 } position++ - goto l727 + goto l728 l731: - position, tokenIndex = position727, tokenIndex727 + position, tokenIndex = position728, tokenIndex728 + if buffer[position] != rune('h') { + goto l732 + } + position++ + goto l728 + l732: + position, tokenIndex = position728, tokenIndex728 if buffer[position] != rune('q') { - goto l723 + goto l724 } position++ } - l727: + l728: { - position732, tokenIndex732 := position, tokenIndex + position733, tokenIndex733 := position, tokenIndex if buffer[position] != rune('[') { - goto l732 + goto l733 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l732 + goto l733 } position++ { - position734, tokenIndex734 := position, tokenIndex + position735, tokenIndex735 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l734 + goto l735 } position++ - goto l735 - l734: - position, tokenIndex = position734, tokenIndex734 + goto l736 + l735: + position, tokenIndex = position735, tokenIndex735 } - l735: + l736: if buffer[position] != rune(']') { - goto l732 + goto l733 } position++ - goto l733 - l732: - position, tokenIndex = position732, tokenIndex732 + goto l734 + l733: + position, tokenIndex = position733, tokenIndex733 } - l733: - goto l724 - l723: - position, tokenIndex = position723, tokenIndex723 + l734: + goto l725 + l724: + position, tokenIndex = position724, tokenIndex724 } - l724: - add(ruleARMVectorRegister, position710) + l725: + add(ruleARMVectorRegister, position711) } return true - l709: - position, tokenIndex = position709, tokenIndex709 + l710: + position, tokenIndex = position710, tokenIndex710 return false }, /* 47 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / ('z' / 'Z')))> */ func() bool { - position736, tokenIndex736 := position, tokenIndex + position737, tokenIndex737 := position, tokenIndex { - position737 := position + position738 := position { - position738, tokenIndex738 := position, tokenIndex + position739, tokenIndex739 := position, tokenIndex if buffer[position] != rune('p') { - goto l739 - } - position++ - goto l738 - l739: - position, tokenIndex = position738, tokenIndex738 - if buffer[position] != rune('P') { - goto l736 - } - position++ - } - l738: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l736 - } - position++ - { - position740, tokenIndex740 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { goto l740 } position++ - goto l741 + goto l739 l740: - position, tokenIndex = position740, tokenIndex740 + position, tokenIndex = position739, tokenIndex739 + if buffer[position] != rune('P') { + goto l737 + } + position++ } - l741: - if buffer[position] != rune('/') { - goto l736 + l739: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l737 } position++ { - position742, tokenIndex742 := position, tokenIndex - if buffer[position] != rune('m') { - goto l743 + position741, tokenIndex741 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l741 } position++ goto l742 - l743: - position, tokenIndex = position742, tokenIndex742 - if buffer[position] != rune('M') { + l741: + position, tokenIndex = position741, tokenIndex741 + } + l742: + if buffer[position] != rune('/') { + goto l737 + } + position++ + { + position743, tokenIndex743 := position, tokenIndex + if buffer[position] != rune('m') { goto l744 } position++ - goto l742 + goto l743 l744: - position, tokenIndex = position742, tokenIndex742 + position, tokenIndex = position743, tokenIndex743 + if buffer[position] != rune('M') { + goto l745 + } + position++ + goto l743 + l745: + position, tokenIndex = position743, tokenIndex743 { - position745, tokenIndex745 := position, tokenIndex + position746, tokenIndex746 := position, tokenIndex if buffer[position] != rune('z') { - goto l746 + goto l747 } position++ - goto l745 - l746: - position, tokenIndex = position745, tokenIndex745 + goto l746 + l747: + position, tokenIndex = position746, tokenIndex746 if buffer[position] != rune('Z') { - goto l736 + goto l737 } position++ } - l745: + l746: } - l742: - add(ruleSVE2PredicateRegister, position737) + l743: + add(ruleSVE2PredicateRegister, position738) } return true - l736: - position, tokenIndex = position736, tokenIndex736 + l737: + position, tokenIndex = position737, tokenIndex737 return false }, /* 48 SVE2SpecialValue <- <(((('p' / 'P') ('o' / 'O') ('w' / 'W') '2') / (('v' / 'V') ('l' / 'L') ('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8') ![0-9]) / (('v' / 'V') ('l' / 'L') '1' '6') / (('v' / 'V') ('l' / 'L') '3' '2') / (('v' / 'V') ('l' / 'L') '6' '4') / (('v' / 'V') ('l' / 'L') '1' '2' '8') / (('v' / 'V') ('l' / 'L') '2' '5' '6') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '3') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '4') / (('a' / 'A') ('l' / 'L') ('l' / 'L'))) !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_'))> */ func() bool { - position747, tokenIndex747 := position, tokenIndex + position748, tokenIndex748 := position, tokenIndex { - position748 := position + position749 := position { - position749, tokenIndex749 := position, tokenIndex + position750, tokenIndex750 := position, tokenIndex { - position751, tokenIndex751 := position, tokenIndex + position752, tokenIndex752 := position, tokenIndex if buffer[position] != rune('p') { - goto l752 + goto l753 } position++ - goto l751 - l752: - position, tokenIndex = position751, tokenIndex751 + goto l752 + l753: + position, tokenIndex = position752, tokenIndex752 if buffer[position] != rune('P') { - goto l750 + goto l751 } position++ } - l751: + l752: { - position753, tokenIndex753 := position, tokenIndex + position754, tokenIndex754 := position, tokenIndex if buffer[position] != rune('o') { - goto l754 + goto l755 } position++ - goto l753 - l754: - position, tokenIndex = position753, tokenIndex753 + goto l754 + l755: + position, tokenIndex = position754, tokenIndex754 if buffer[position] != rune('O') { - goto l750 + goto l751 } position++ } - l753: + l754: { - position755, tokenIndex755 := position, tokenIndex + position756, tokenIndex756 := position, tokenIndex if buffer[position] != rune('w') { - goto l756 + goto l757 } position++ - goto l755 - l756: - position, tokenIndex = position755, tokenIndex755 + goto l756 + l757: + position, tokenIndex = position756, tokenIndex756 if buffer[position] != rune('W') { - goto l750 + goto l751 } position++ } - l755: + l756: if buffer[position] != rune('2') { - goto l750 + goto l751 } position++ - goto l749 - l750: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l751: + position, tokenIndex = position750, tokenIndex750 { - position758, tokenIndex758 := position, tokenIndex + position759, tokenIndex759 := position, tokenIndex if buffer[position] != rune('v') { - goto l759 + goto l760 } position++ - goto l758 - l759: - position, tokenIndex = position758, tokenIndex758 + goto l759 + l760: + position, tokenIndex = position759, tokenIndex759 if buffer[position] != rune('V') { - goto l757 + goto l758 } position++ } - l758: + l759: { - position760, tokenIndex760 := position, tokenIndex + position761, tokenIndex761 := position, tokenIndex if buffer[position] != rune('l') { - goto l761 + goto l762 } position++ - goto l760 - l761: - position, tokenIndex = position760, tokenIndex760 + goto l761 + l762: + position, tokenIndex = position761, tokenIndex761 if buffer[position] != rune('L') { - goto l757 + goto l758 } position++ } - l760: + l761: { - position762, tokenIndex762 := position, tokenIndex + position763, tokenIndex763 := position, tokenIndex if buffer[position] != rune('1') { - goto l763 - } - position++ - goto l762 - l763: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('2') { goto l764 } position++ - goto l762 + goto l763 l764: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('3') { + position, tokenIndex = position763, tokenIndex763 + if buffer[position] != rune('2') { goto l765 } position++ - goto l762 + goto l763 l765: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('4') { + position, tokenIndex = position763, tokenIndex763 + if buffer[position] != rune('3') { goto l766 } position++ - goto l762 + goto l763 l766: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('5') { + position, tokenIndex = position763, tokenIndex763 + if buffer[position] != rune('4') { goto l767 } position++ - goto l762 + goto l763 l767: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('6') { + position, tokenIndex = position763, tokenIndex763 + if buffer[position] != rune('5') { goto l768 } position++ - goto l762 + goto l763 l768: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('7') { + position, tokenIndex = position763, tokenIndex763 + if buffer[position] != rune('6') { goto l769 } position++ - goto l762 + goto l763 l769: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('8') { - goto l757 - } - position++ - } - l762: - { - position770, tokenIndex770 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + position, tokenIndex = position763, tokenIndex763 + if buffer[position] != rune('7') { goto l770 } position++ - goto l757 + goto l763 l770: - position, tokenIndex = position770, tokenIndex770 + position, tokenIndex = position763, tokenIndex763 + if buffer[position] != rune('8') { + goto l758 + } + position++ } - goto l749 - l757: - position, tokenIndex = position749, tokenIndex749 + l763: { - position772, tokenIndex772 := position, tokenIndex + position771, tokenIndex771 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l771 + } + position++ + goto l758 + l771: + position, tokenIndex = position771, tokenIndex771 + } + goto l750 + l758: + position, tokenIndex = position750, tokenIndex750 + { + position773, tokenIndex773 := position, tokenIndex if buffer[position] != rune('v') { - goto l773 + goto l774 } position++ - goto l772 - l773: - position, tokenIndex = position772, tokenIndex772 + goto l773 + l774: + position, tokenIndex = position773, tokenIndex773 if buffer[position] != rune('V') { - goto l771 + goto l772 } position++ } - l772: + l773: { - position774, tokenIndex774 := position, tokenIndex + position775, tokenIndex775 := position, tokenIndex if buffer[position] != rune('l') { - goto l775 + goto l776 } position++ - goto l774 - l775: - position, tokenIndex = position774, tokenIndex774 + goto l775 + l776: + position, tokenIndex = position775, tokenIndex775 if buffer[position] != rune('L') { - goto l771 + goto l772 } position++ } - l774: + l775: if buffer[position] != rune('1') { - goto l771 + goto l772 } position++ if buffer[position] != rune('6') { - goto l771 + goto l772 } position++ - goto l749 - l771: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l772: + position, tokenIndex = position750, tokenIndex750 { - position777, tokenIndex777 := position, tokenIndex + position778, tokenIndex778 := position, tokenIndex if buffer[position] != rune('v') { - goto l778 + goto l779 } position++ - goto l777 - l778: - position, tokenIndex = position777, tokenIndex777 + goto l778 + l779: + position, tokenIndex = position778, tokenIndex778 if buffer[position] != rune('V') { - goto l776 + goto l777 } position++ } - l777: + l778: { - position779, tokenIndex779 := position, tokenIndex + position780, tokenIndex780 := position, tokenIndex if buffer[position] != rune('l') { - goto l780 + goto l781 } position++ - goto l779 - l780: - position, tokenIndex = position779, tokenIndex779 + goto l780 + l781: + position, tokenIndex = position780, tokenIndex780 if buffer[position] != rune('L') { - goto l776 + goto l777 } position++ } - l779: + l780: if buffer[position] != rune('3') { - goto l776 + goto l777 } position++ if buffer[position] != rune('2') { - goto l776 + goto l777 } position++ - goto l749 - l776: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l777: + position, tokenIndex = position750, tokenIndex750 { - position782, tokenIndex782 := position, tokenIndex + position783, tokenIndex783 := position, tokenIndex if buffer[position] != rune('v') { - goto l783 + goto l784 } position++ - goto l782 - l783: - position, tokenIndex = position782, tokenIndex782 + goto l783 + l784: + position, tokenIndex = position783, tokenIndex783 if buffer[position] != rune('V') { - goto l781 + goto l782 } position++ } - l782: + l783: { - position784, tokenIndex784 := position, tokenIndex + position785, tokenIndex785 := position, tokenIndex if buffer[position] != rune('l') { - goto l785 + goto l786 } position++ - goto l784 - l785: - position, tokenIndex = position784, tokenIndex784 + goto l785 + l786: + position, tokenIndex = position785, tokenIndex785 if buffer[position] != rune('L') { - goto l781 + goto l782 } position++ } - l784: + l785: if buffer[position] != rune('6') { - goto l781 + goto l782 } position++ if buffer[position] != rune('4') { - goto l781 + goto l782 } position++ - goto l749 - l781: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l782: + position, tokenIndex = position750, tokenIndex750 { - position787, tokenIndex787 := position, tokenIndex + position788, tokenIndex788 := position, tokenIndex if buffer[position] != rune('v') { - goto l788 + goto l789 } position++ - goto l787 - l788: - position, tokenIndex = position787, tokenIndex787 + goto l788 + l789: + position, tokenIndex = position788, tokenIndex788 if buffer[position] != rune('V') { - goto l786 + goto l787 } position++ } - l787: + l788: { - position789, tokenIndex789 := position, tokenIndex + position790, tokenIndex790 := position, tokenIndex if buffer[position] != rune('l') { - goto l790 + goto l791 } position++ - goto l789 - l790: - position, tokenIndex = position789, tokenIndex789 + goto l790 + l791: + position, tokenIndex = position790, tokenIndex790 if buffer[position] != rune('L') { - goto l786 + goto l787 } position++ } - l789: + l790: if buffer[position] != rune('1') { - goto l786 + goto l787 } position++ if buffer[position] != rune('2') { - goto l786 + goto l787 } position++ if buffer[position] != rune('8') { - goto l786 + goto l787 } position++ - goto l749 - l786: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l787: + position, tokenIndex = position750, tokenIndex750 { - position792, tokenIndex792 := position, tokenIndex + position793, tokenIndex793 := position, tokenIndex if buffer[position] != rune('v') { - goto l793 + goto l794 } position++ - goto l792 - l793: - position, tokenIndex = position792, tokenIndex792 + goto l793 + l794: + position, tokenIndex = position793, tokenIndex793 if buffer[position] != rune('V') { - goto l791 + goto l792 } position++ } - l792: + l793: { - position794, tokenIndex794 := position, tokenIndex + position795, tokenIndex795 := position, tokenIndex if buffer[position] != rune('l') { - goto l795 + goto l796 } position++ - goto l794 - l795: - position, tokenIndex = position794, tokenIndex794 + goto l795 + l796: + position, tokenIndex = position795, tokenIndex795 if buffer[position] != rune('L') { - goto l791 + goto l792 } position++ } - l794: + l795: if buffer[position] != rune('2') { - goto l791 + goto l792 } position++ if buffer[position] != rune('5') { - goto l791 + goto l792 } position++ if buffer[position] != rune('6') { - goto l791 + goto l792 } position++ - goto l749 - l791: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l792: + position, tokenIndex = position750, tokenIndex750 { - position797, tokenIndex797 := position, tokenIndex + position798, tokenIndex798 := position, tokenIndex if buffer[position] != rune('m') { - goto l798 + goto l799 } position++ - goto l797 - l798: - position, tokenIndex = position797, tokenIndex797 + goto l798 + l799: + position, tokenIndex = position798, tokenIndex798 if buffer[position] != rune('M') { - goto l796 + goto l797 } position++ } - l797: + l798: { - position799, tokenIndex799 := position, tokenIndex + position800, tokenIndex800 := position, tokenIndex if buffer[position] != rune('u') { - goto l800 + goto l801 } position++ - goto l799 - l800: - position, tokenIndex = position799, tokenIndex799 + goto l800 + l801: + position, tokenIndex = position800, tokenIndex800 if buffer[position] != rune('U') { - goto l796 + goto l797 } position++ } - l799: + l800: { - position801, tokenIndex801 := position, tokenIndex + position802, tokenIndex802 := position, tokenIndex if buffer[position] != rune('l') { - goto l802 + goto l803 } position++ - goto l801 - l802: - position, tokenIndex = position801, tokenIndex801 + goto l802 + l803: + position, tokenIndex = position802, tokenIndex802 if buffer[position] != rune('L') { - goto l796 + goto l797 } position++ } - l801: + l802: if buffer[position] != rune('3') { - goto l796 + goto l797 } position++ - goto l749 - l796: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l797: + position, tokenIndex = position750, tokenIndex750 { - position804, tokenIndex804 := position, tokenIndex + position805, tokenIndex805 := position, tokenIndex if buffer[position] != rune('m') { - goto l805 + goto l806 } position++ - goto l804 - l805: - position, tokenIndex = position804, tokenIndex804 + goto l805 + l806: + position, tokenIndex = position805, tokenIndex805 if buffer[position] != rune('M') { - goto l803 + goto l804 } position++ } - l804: + l805: { - position806, tokenIndex806 := position, tokenIndex + position807, tokenIndex807 := position, tokenIndex if buffer[position] != rune('u') { - goto l807 + goto l808 } position++ - goto l806 - l807: - position, tokenIndex = position806, tokenIndex806 + goto l807 + l808: + position, tokenIndex = position807, tokenIndex807 if buffer[position] != rune('U') { - goto l803 + goto l804 } position++ } - l806: + l807: { - position808, tokenIndex808 := position, tokenIndex + position809, tokenIndex809 := position, tokenIndex if buffer[position] != rune('l') { - goto l809 + goto l810 } position++ - goto l808 - l809: - position, tokenIndex = position808, tokenIndex808 + goto l809 + l810: + position, tokenIndex = position809, tokenIndex809 if buffer[position] != rune('L') { - goto l803 + goto l804 } position++ } - l808: + l809: if buffer[position] != rune('4') { - goto l803 + goto l804 } position++ - goto l749 - l803: - position, tokenIndex = position749, tokenIndex749 + goto l750 + l804: + position, tokenIndex = position750, tokenIndex750 { - position810, tokenIndex810 := position, tokenIndex + position811, tokenIndex811 := position, tokenIndex if buffer[position] != rune('a') { - goto l811 + goto l812 } position++ - goto l810 - l811: - position, tokenIndex = position810, tokenIndex810 + goto l811 + l812: + position, tokenIndex = position811, tokenIndex811 if buffer[position] != rune('A') { - goto l747 + goto l748 } position++ } - l810: + l811: { - position812, tokenIndex812 := position, tokenIndex + position813, tokenIndex813 := position, tokenIndex if buffer[position] != rune('l') { - goto l813 + goto l814 } position++ - goto l812 - l813: - position, tokenIndex = position812, tokenIndex812 + goto l813 + l814: + position, tokenIndex = position813, tokenIndex813 if buffer[position] != rune('L') { - goto l747 + goto l748 } position++ } - l812: + l813: { - position814, tokenIndex814 := position, tokenIndex + position815, tokenIndex815 := position, tokenIndex if buffer[position] != rune('l') { - goto l815 + goto l816 } position++ - goto l814 - l815: - position, tokenIndex = position814, tokenIndex814 + goto l815 + l816: + position, tokenIndex = position815, tokenIndex815 if buffer[position] != rune('L') { - goto l747 + goto l748 } position++ } - l814: + l815: } - l749: + l750: { - position816, tokenIndex816 := position, tokenIndex + position817, tokenIndex817 := position, tokenIndex { - position817, tokenIndex817 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l818 - } - position++ - goto l817 - l818: - position, tokenIndex = position817, tokenIndex817 + position818, tokenIndex818 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { goto l819 } position++ - goto l817 + goto l818 l819: - position, tokenIndex = position817, tokenIndex817 + position, tokenIndex = position818, tokenIndex818 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l820 + } + position++ + goto l818 + l820: + position, tokenIndex = position818, tokenIndex818 { - position821, tokenIndex821 := position, tokenIndex + position822, tokenIndex822 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l822 + goto l823 } position++ - goto l821 - l822: - position, tokenIndex = position821, tokenIndex821 + goto l822 + l823: + position, tokenIndex = position822, tokenIndex822 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l820 + goto l821 } position++ } + l822: + goto l818 l821: - goto l817 - l820: - position, tokenIndex = position817, tokenIndex817 + position, tokenIndex = position818, tokenIndex818 if buffer[position] != rune('_') { - goto l816 + goto l817 } position++ } + l818: + goto l748 l817: - goto l747 - l816: - position, tokenIndex = position816, tokenIndex816 + position, tokenIndex = position817, tokenIndex817 } - add(ruleSVE2SpecialValue, position748) + add(ruleSVE2SpecialValue, position749) } return true - l747: - position, tokenIndex = position747, tokenIndex747 + l748: + position, tokenIndex = position748, tokenIndex748 return false }, /* 49 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - position823, tokenIndex823 := position, tokenIndex + position824, tokenIndex824 := position, tokenIndex { - position824 := position + position825 := position { - position825, tokenIndex825 := position, tokenIndex - if !_rules[ruleSymbolRef]() { - goto l826 - } - if !_rules[ruleBaseIndexScale]() { - goto l826 - } - goto l825 - l826: - position, tokenIndex = position825, tokenIndex825 + position826, tokenIndex826 := position, tokenIndex if !_rules[ruleSymbolRef]() { goto l827 } - goto l825 + if !_rules[ruleBaseIndexScale]() { + goto l827 + } + goto l826 l827: - position, tokenIndex = position825, tokenIndex825 - if !_rules[ruleLow12BitsSymbolRef]() { + position, tokenIndex = position826, tokenIndex826 + if !_rules[ruleSymbolRef]() { goto l828 } - goto l825 + goto l826 l828: - position, tokenIndex = position825, tokenIndex825 - l830: - { - position831, tokenIndex831 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l831 - } - goto l830 - l831: - position, tokenIndex = position831, tokenIndex831 - } - if !_rules[ruleBaseIndexScale]() { + position, tokenIndex = position826, tokenIndex826 + if !_rules[ruleLow12BitsSymbolRef]() { goto l829 } - goto l825 + goto l826 l829: - position, tokenIndex = position825, tokenIndex825 + position, tokenIndex = position826, tokenIndex826 + l831: + { + position832, tokenIndex832 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l832 + } + goto l831 + l832: + position, tokenIndex = position832, tokenIndex832 + } + if !_rules[ruleBaseIndexScale]() { + goto l830 + } + goto l826 + l830: + position, tokenIndex = position826, tokenIndex826 if !_rules[ruleSegmentRegister]() { - goto l832 + goto l833 } if !_rules[ruleOffset]() { - goto l832 - } - if !_rules[ruleBaseIndexScale]() { - goto l832 - } - goto l825 - l832: - position, tokenIndex = position825, tokenIndex825 - if !_rules[ruleSegmentRegister]() { goto l833 } if !_rules[ruleBaseIndexScale]() { goto l833 } - goto l825 + goto l826 l833: - position, tokenIndex = position825, tokenIndex825 + position, tokenIndex = position826, tokenIndex826 if !_rules[ruleSegmentRegister]() { goto l834 } - if !_rules[ruleOffset]() { + if !_rules[ruleBaseIndexScale]() { goto l834 } - goto l825 + goto l826 l834: - position, tokenIndex = position825, tokenIndex825 - if !_rules[ruleARMBaseIndexScale]() { + position, tokenIndex = position826, tokenIndex826 + if !_rules[ruleSegmentRegister]() { goto l835 } - goto l825 + if !_rules[ruleOffset]() { + goto l835 + } + goto l826 l835: - position, tokenIndex = position825, tokenIndex825 + position, tokenIndex = position826, tokenIndex826 + if !_rules[ruleARMBaseIndexScale]() { + goto l836 + } + goto l826 + l836: + position, tokenIndex = position826, tokenIndex826 if !_rules[ruleBaseIndexScale]() { - goto l823 + goto l824 } } - l825: - add(ruleMemoryRef, position824) + l826: + add(ruleMemoryRef, position825) } return true - l823: - position, tokenIndex = position823, tokenIndex823 + l824: + position, tokenIndex = position824, tokenIndex824 return false }, /* 50 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ func() bool { - position836, tokenIndex836 := position, tokenIndex + position837, tokenIndex837 := position, tokenIndex { - position837 := position + position838 := position { - position838, tokenIndex838 := position, tokenIndex - l840: + position839, tokenIndex839 := position, tokenIndex + l841: { - position841, tokenIndex841 := position, tokenIndex + position842, tokenIndex842 := position, tokenIndex if !_rules[ruleOffset]() { - goto l841 + goto l842 } - goto l840 - l841: - position, tokenIndex = position841, tokenIndex841 + goto l841 + l842: + position, tokenIndex = position842, tokenIndex842 } if buffer[position] != rune('+') { - goto l838 + goto l839 } position++ - goto l839 - l838: - position, tokenIndex = position838, tokenIndex838 + goto l840 + l839: + position, tokenIndex = position839, tokenIndex839 } - l839: + l840: { - position842, tokenIndex842 := position, tokenIndex + position843, tokenIndex843 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l843 + goto l844 } - goto l842 - l843: - position, tokenIndex = position842, tokenIndex842 + goto l843 + l844: + position, tokenIndex = position843, tokenIndex843 if !_rules[ruleSymbolName]() { - goto l836 + goto l837 } } - l842: - l844: - { - position845, tokenIndex845 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l845 - } - goto l844 - l845: - position, tokenIndex = position845, tokenIndex845 - } + l843: + l845: { position846, tokenIndex846 := position, tokenIndex - if buffer[position] != rune('@') { + if !_rules[ruleOffset]() { goto l846 } - position++ - if !_rules[ruleSection]() { - goto l846 - } - l848: - { - position849, tokenIndex849 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l849 - } - goto l848 - l849: - position, tokenIndex = position849, tokenIndex849 - } - goto l847 + goto l845 l846: position, tokenIndex = position846, tokenIndex846 } - l847: - add(ruleSymbolRef, position837) + { + position847, tokenIndex847 := position, tokenIndex + if buffer[position] != rune('@') { + goto l847 + } + position++ + if !_rules[ruleSection]() { + goto l847 + } + l849: + { + position850, tokenIndex850 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l850 + } + goto l849 + l850: + position, tokenIndex = position850, tokenIndex850 + } + goto l848 + l847: + position, tokenIndex = position847, tokenIndex847 + } + l848: + add(ruleSymbolRef, position838) } return true - l836: - position, tokenIndex = position836, tokenIndex836 + l837: + position, tokenIndex = position837, tokenIndex837 return false }, /* 51 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ func() bool { - position850, tokenIndex850 := position, tokenIndex + position851, tokenIndex851 := position, tokenIndex { - position851 := position + position852 := position if buffer[position] != rune(':') { - goto l850 + goto l851 } position++ { - position852, tokenIndex852 := position, tokenIndex + position853, tokenIndex853 := position, tokenIndex if buffer[position] != rune('l') { - goto l853 + goto l854 } position++ - goto l852 - l853: - position, tokenIndex = position852, tokenIndex852 + goto l853 + l854: + position, tokenIndex = position853, tokenIndex853 if buffer[position] != rune('L') { - goto l850 + goto l851 } position++ } - l852: + l853: { - position854, tokenIndex854 := position, tokenIndex + position855, tokenIndex855 := position, tokenIndex if buffer[position] != rune('o') { - goto l855 + goto l856 } position++ - goto l854 - l855: - position, tokenIndex = position854, tokenIndex854 + goto l855 + l856: + position, tokenIndex = position855, tokenIndex855 if buffer[position] != rune('O') { - goto l850 + goto l851 } position++ } - l854: + l855: if buffer[position] != rune('1') { - goto l850 + goto l851 } position++ if buffer[position] != rune('2') { - goto l850 + goto l851 } position++ if buffer[position] != rune(':') { - goto l850 + goto l851 } position++ { - position856, tokenIndex856 := position, tokenIndex + position857, tokenIndex857 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l857 - } - goto l856 - l857: - position, tokenIndex = position856, tokenIndex856 - if !_rules[ruleSymbolName]() { - goto l850 - } - } - l856: - { - position858, tokenIndex858 := position, tokenIndex - if !_rules[ruleOffset]() { goto l858 } - goto l859 + goto l857 l858: - position, tokenIndex = position858, tokenIndex858 + position, tokenIndex = position857, tokenIndex857 + if !_rules[ruleSymbolName]() { + goto l851 + } } - l859: - add(ruleLow12BitsSymbolRef, position851) + l857: + { + position859, tokenIndex859 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l859 + } + goto l860 + l859: + position, tokenIndex = position859, tokenIndex859 + } + l860: + add(ruleLow12BitsSymbolRef, position852) } return true - l850: - position, tokenIndex = position850, tokenIndex850 + l851: + position, tokenIndex = position851, tokenIndex851 return false }, /* 52 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - position860, tokenIndex860 := position, tokenIndex + position861, tokenIndex861 := position, tokenIndex { - position861 := position + position862 := position if buffer[position] != rune('[') { - goto l860 + goto l861 } position++ if !_rules[ruleARMRegister]() { - goto l860 + goto l861 } { - position862, tokenIndex862 := position, tokenIndex + position863, tokenIndex863 := position, tokenIndex if buffer[position] != rune(',') { - goto l862 + goto l863 } position++ { - position864, tokenIndex864 := position, tokenIndex + position865, tokenIndex865 := position, tokenIndex if !_rules[ruleWS]() { - goto l864 - } - goto l865 - l864: - position, tokenIndex = position864, tokenIndex864 - } - l865: - { - position866, tokenIndex866 := position, tokenIndex - if buffer[position] != rune('#') { - goto l867 - } - position++ - if !_rules[ruleOffset]() { - goto l867 - } - { - position868, tokenIndex868 := position, tokenIndex - { - position870, tokenIndex870 := position, tokenIndex - if buffer[position] != rune('*') { - goto l871 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l871 - } - position++ - l872: - { - position873, tokenIndex873 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l873 - } - position++ - goto l872 - l873: - position, tokenIndex = position873, tokenIndex873 - } - goto l870 - l871: - position, tokenIndex = position870, tokenIndex870 - if buffer[position] != rune('*') { - goto l874 - } - position++ - if buffer[position] != rune('(') { - goto l874 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l874 - } - position++ - l875: - { - position876, tokenIndex876 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l876 - } - position++ - goto l875 - l876: - position, tokenIndex = position876, tokenIndex876 - } - if !_rules[ruleOperator]() { - goto l874 - } - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l874 - } - position++ - l877: - { - position878, tokenIndex878 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l878 - } - position++ - goto l877 - l878: - position, tokenIndex = position878, tokenIndex878 - } - if buffer[position] != rune(')') { - goto l874 - } - position++ - goto l870 - l874: - position, tokenIndex = position870, tokenIndex870 - l879: - { - position880, tokenIndex880 := position, tokenIndex - if buffer[position] != rune('+') { - goto l880 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l880 - } - position++ - l881: - { - position882, tokenIndex882 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l882 - } - position++ - goto l881 - l882: - position, tokenIndex = position882, tokenIndex882 - } - goto l879 - l880: - position, tokenIndex = position880, tokenIndex880 - } - } - l870: - goto l869 - - position, tokenIndex = position868, tokenIndex868 - } - l869: - goto l866 - l867: - position, tokenIndex = position866, tokenIndex866 - if !_rules[ruleARMGOTLow12]() { - goto l883 + goto l865 } goto l866 - l883: - position, tokenIndex = position866, tokenIndex866 - if !_rules[ruleLow12BitsSymbolRef]() { - goto l884 - } - goto l866 - l884: - position, tokenIndex = position866, tokenIndex866 - if !_rules[ruleARMRegister]() { - goto l862 - } + l865: + position, tokenIndex = position865, tokenIndex865 } l866: { - position885, tokenIndex885 := position, tokenIndex - if buffer[position] != rune(',') { + position867, tokenIndex867 := position, tokenIndex + if buffer[position] != rune('#') { + goto l868 + } + position++ + if !_rules[ruleOffset]() { + goto l868 + } + { + position869, tokenIndex869 := position, tokenIndex + { + position871, tokenIndex871 := position, tokenIndex + if buffer[position] != rune('*') { + goto l872 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l872 + } + position++ + l873: + { + position874, tokenIndex874 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l874 + } + position++ + goto l873 + l874: + position, tokenIndex = position874, tokenIndex874 + } + goto l871 + l872: + position, tokenIndex = position871, tokenIndex871 + if buffer[position] != rune('*') { + goto l875 + } + position++ + if buffer[position] != rune('(') { + goto l875 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l875 + } + position++ + l876: + { + position877, tokenIndex877 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l877 + } + position++ + goto l876 + l877: + position, tokenIndex = position877, tokenIndex877 + } + if !_rules[ruleOperator]() { + goto l875 + } + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l875 + } + position++ + l878: + { + position879, tokenIndex879 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l879 + } + position++ + goto l878 + l879: + position, tokenIndex = position879, tokenIndex879 + } + if buffer[position] != rune(')') { + goto l875 + } + position++ + goto l871 + l875: + position, tokenIndex = position871, tokenIndex871 + l880: + { + position881, tokenIndex881 := position, tokenIndex + if buffer[position] != rune('+') { + goto l881 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l881 + } + position++ + l882: + { + position883, tokenIndex883 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l883 + } + position++ + goto l882 + l883: + position, tokenIndex = position883, tokenIndex883 + } + goto l880 + l881: + position, tokenIndex = position881, tokenIndex881 + } + } + l871: + goto l870 + + position, tokenIndex = position869, tokenIndex869 + } + l870: + goto l867 + l868: + position, tokenIndex = position867, tokenIndex867 + if !_rules[ruleARMGOTLow12]() { + goto l884 + } + goto l867 + l884: + position, tokenIndex = position867, tokenIndex867 + if !_rules[ruleLow12BitsSymbolRef]() { goto l885 } + goto l867 + l885: + position, tokenIndex = position867, tokenIndex867 + if !_rules[ruleARMRegister]() { + goto l863 + } + } + l867: + { + position886, tokenIndex886 := position, tokenIndex + if buffer[position] != rune(',') { + goto l886 + } position++ { - position887, tokenIndex887 := position, tokenIndex + position888, tokenIndex888 := position, tokenIndex if !_rules[ruleWS]() { - goto l887 + goto l888 } - goto l888 - l887: - position, tokenIndex = position887, tokenIndex887 + goto l889 + l888: + position, tokenIndex = position888, tokenIndex888 } - l888: + l889: if !_rules[ruleARMConstantTweak]() { - goto l885 + goto l886 } - goto l886 - l885: - position, tokenIndex = position885, tokenIndex885 + goto l887 + l886: + position, tokenIndex = position886, tokenIndex886 } - l886: - goto l863 - l862: - position, tokenIndex = position862, tokenIndex862 + l887: + goto l864 + l863: + position, tokenIndex = position863, tokenIndex863 } - l863: + l864: if buffer[position] != rune(']') { - goto l860 + goto l861 } position++ { - position889, tokenIndex889 := position, tokenIndex + position890, tokenIndex890 := position, tokenIndex if !_rules[ruleARMPostincrement]() { - goto l889 + goto l890 } - goto l890 - l889: - position, tokenIndex = position889, tokenIndex889 + goto l891 + l890: + position, tokenIndex = position890, tokenIndex890 } - l890: - add(ruleARMBaseIndexScale, position861) + l891: + add(ruleARMBaseIndexScale, position862) } return true - l860: - position, tokenIndex = position860, tokenIndex860 + l861: + position, tokenIndex = position861, tokenIndex861 return false }, /* 53 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - position891, tokenIndex891 := position, tokenIndex + position892, tokenIndex892 := position, tokenIndex { - position892 := position + position893 := position if buffer[position] != rune(':') { - goto l891 + goto l892 } position++ { - position893, tokenIndex893 := position, tokenIndex + position894, tokenIndex894 := position, tokenIndex if buffer[position] != rune('g') { - goto l894 + goto l895 } position++ - goto l893 - l894: - position, tokenIndex = position893, tokenIndex893 + goto l894 + l895: + position, tokenIndex = position894, tokenIndex894 if buffer[position] != rune('G') { - goto l891 + goto l892 } position++ } - l893: + l894: { - position895, tokenIndex895 := position, tokenIndex + position896, tokenIndex896 := position, tokenIndex if buffer[position] != rune('o') { - goto l896 + goto l897 } position++ - goto l895 - l896: - position, tokenIndex = position895, tokenIndex895 + goto l896 + l897: + position, tokenIndex = position896, tokenIndex896 if buffer[position] != rune('O') { - goto l891 + goto l892 } position++ } - l895: + l896: { - position897, tokenIndex897 := position, tokenIndex + position898, tokenIndex898 := position, tokenIndex if buffer[position] != rune('t') { - goto l898 + goto l899 } position++ - goto l897 - l898: - position, tokenIndex = position897, tokenIndex897 + goto l898 + l899: + position, tokenIndex = position898, tokenIndex898 if buffer[position] != rune('T') { - goto l891 + goto l892 } position++ } - l897: + l898: if buffer[position] != rune('_') { - goto l891 + goto l892 } position++ { - position899, tokenIndex899 := position, tokenIndex + position900, tokenIndex900 := position, tokenIndex if buffer[position] != rune('l') { - goto l900 + goto l901 } position++ - goto l899 - l900: - position, tokenIndex = position899, tokenIndex899 + goto l900 + l901: + position, tokenIndex = position900, tokenIndex900 if buffer[position] != rune('L') { - goto l891 + goto l892 } position++ } - l899: + l900: { - position901, tokenIndex901 := position, tokenIndex + position902, tokenIndex902 := position, tokenIndex if buffer[position] != rune('o') { - goto l902 + goto l903 } position++ - goto l901 - l902: - position, tokenIndex = position901, tokenIndex901 + goto l902 + l903: + position, tokenIndex = position902, tokenIndex902 if buffer[position] != rune('O') { - goto l891 + goto l892 } position++ } - l901: + l902: if buffer[position] != rune('1') { - goto l891 + goto l892 } position++ if buffer[position] != rune('2') { - goto l891 + goto l892 } position++ if buffer[position] != rune(':') { - goto l891 + goto l892 } position++ if !_rules[ruleSymbolName]() { - goto l891 + goto l892 } - add(ruleARMGOTLow12, position892) + add(ruleARMGOTLow12, position893) } return true - l891: - position, tokenIndex = position891, tokenIndex891 + l892: + position, tokenIndex = position892, tokenIndex892 return false }, /* 54 ARMPostincrement <- <'!'> */ func() bool { - position903, tokenIndex903 := position, tokenIndex + position904, tokenIndex904 := position, tokenIndex { - position904 := position + position905 := position if buffer[position] != rune('!') { - goto l903 + goto l904 } position++ - add(ruleARMPostincrement, position904) + add(ruleARMPostincrement, position905) } return true - l903: - position, tokenIndex = position903, tokenIndex903 + l904: + position, tokenIndex = position904, tokenIndex904 return false }, /* 55 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ func() bool { - position905, tokenIndex905 := position, tokenIndex + position906, tokenIndex906 := position, tokenIndex { - position906 := position + position907 := position if buffer[position] != rune('(') { - goto l905 + goto l906 } position++ { - position907, tokenIndex907 := position, tokenIndex + position908, tokenIndex908 := position, tokenIndex if !_rules[ruleRegisterOrConstant]() { - goto l907 + goto l908 } - goto l908 - l907: - position, tokenIndex = position907, tokenIndex907 + goto l909 + l908: + position, tokenIndex = position908, tokenIndex908 } - l908: + l909: { - position909, tokenIndex909 := position, tokenIndex + position910, tokenIndex910 := position, tokenIndex if !_rules[ruleWS]() { - goto l909 + goto l910 } - goto l910 - l909: - position, tokenIndex = position909, tokenIndex909 + goto l911 + l910: + position, tokenIndex = position910, tokenIndex910 } - l910: + l911: { - position911, tokenIndex911 := position, tokenIndex + position912, tokenIndex912 := position, tokenIndex if buffer[position] != rune(',') { - goto l911 + goto l912 } position++ { - position913, tokenIndex913 := position, tokenIndex + position914, tokenIndex914 := position, tokenIndex if !_rules[ruleWS]() { - goto l913 + goto l914 } - goto l914 - l913: - position, tokenIndex = position913, tokenIndex913 + goto l915 + l914: + position, tokenIndex = position914, tokenIndex914 } - l914: + l915: if !_rules[ruleRegisterOrConstant]() { - goto l911 + goto l912 } { - position915, tokenIndex915 := position, tokenIndex + position916, tokenIndex916 := position, tokenIndex if !_rules[ruleWS]() { - goto l915 + goto l916 } - goto l916 - l915: - position, tokenIndex = position915, tokenIndex915 + goto l917 + l916: + position, tokenIndex = position916, tokenIndex916 } - l916: + l917: { - position917, tokenIndex917 := position, tokenIndex + position918, tokenIndex918 := position, tokenIndex if buffer[position] != rune(',') { - goto l917 + goto l918 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l917 + goto l918 } position++ - l919: + l920: { - position920, tokenIndex920 := position, tokenIndex + position921, tokenIndex921 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l920 + goto l921 } position++ - goto l919 - l920: - position, tokenIndex = position920, tokenIndex920 + goto l920 + l921: + position, tokenIndex = position921, tokenIndex921 } - goto l918 - l917: - position, tokenIndex = position917, tokenIndex917 + goto l919 + l918: + position, tokenIndex = position918, tokenIndex918 } - l918: - goto l912 - l911: - position, tokenIndex = position911, tokenIndex911 + l919: + goto l913 + l912: + position, tokenIndex = position912, tokenIndex912 } - l912: + l913: if buffer[position] != rune(')') { - goto l905 + goto l906 } position++ - add(ruleBaseIndexScale, position906) + add(ruleBaseIndexScale, position907) } return true - l905: - position, tokenIndex = position905, tokenIndex905 + l906: + position, tokenIndex = position906, tokenIndex906 return false }, /* 56 Operator <- <('+' / '-')> */ func() bool { - position921, tokenIndex921 := position, tokenIndex + position922, tokenIndex922 := position, tokenIndex { - position922 := position + position923 := position { - position923, tokenIndex923 := position, tokenIndex + position924, tokenIndex924 := position, tokenIndex if buffer[position] != rune('+') { - goto l924 + goto l925 } position++ - goto l923 - l924: - position, tokenIndex = position923, tokenIndex923 + goto l924 + l925: + position, tokenIndex = position924, tokenIndex924 if buffer[position] != rune('-') { - goto l921 + goto l922 } position++ } - l923: - add(ruleOperator, position922) + l924: + add(ruleOperator, position923) } return true - l921: - position, tokenIndex = position921, tokenIndex921 + l922: + position, tokenIndex = position922, tokenIndex922 return false }, /* 57 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */ func() bool { - position925, tokenIndex925 := position, tokenIndex + position926, tokenIndex926 := position, tokenIndex { - position926 := position + position927 := position { - position927, tokenIndex927 := position, tokenIndex + position928, tokenIndex928 := position, tokenIndex if buffer[position] != rune('+') { - goto l927 + goto l928 } position++ - goto l928 - l927: - position, tokenIndex = position927, tokenIndex927 + goto l929 + l928: + position, tokenIndex = position928, tokenIndex928 } - l928: + l929: { - position929, tokenIndex929 := position, tokenIndex + position930, tokenIndex930 := position, tokenIndex if buffer[position] != rune('-') { - goto l929 + goto l930 } position++ - goto l930 - l929: - position, tokenIndex = position929, tokenIndex929 + goto l931 + l930: + position, tokenIndex = position930, tokenIndex930 } - l930: + l931: { - position931, tokenIndex931 := position, tokenIndex + position932, tokenIndex932 := position, tokenIndex if buffer[position] != rune('0') { - goto l932 + goto l933 } position++ { - position933, tokenIndex933 := position, tokenIndex + position934, tokenIndex934 := position, tokenIndex if buffer[position] != rune('b') { - goto l934 + goto l935 } position++ - goto l933 - l934: - position, tokenIndex = position933, tokenIndex933 + goto l934 + l935: + position, tokenIndex = position934, tokenIndex934 if buffer[position] != rune('B') { - goto l932 + goto l933 } position++ } - l933: + l934: + { + position938, tokenIndex938 := position, tokenIndex + if buffer[position] != rune('0') { + goto l939 + } + position++ + goto l938 + l939: + position, tokenIndex = position938, tokenIndex938 + if buffer[position] != rune('1') { + goto l933 + } + position++ + } + l938: + l936: { position937, tokenIndex937 := position, tokenIndex - if buffer[position] != rune('0') { - goto l938 - } - position++ - goto l937 - l938: - position, tokenIndex = position937, tokenIndex937 - if buffer[position] != rune('1') { - goto l932 - } - position++ - } - l937: - l935: - { - position936, tokenIndex936 := position, tokenIndex { - position939, tokenIndex939 := position, tokenIndex + position940, tokenIndex940 := position, tokenIndex if buffer[position] != rune('0') { - goto l940 + goto l941 } position++ - goto l939 - l940: - position, tokenIndex = position939, tokenIndex939 + goto l940 + l941: + position, tokenIndex = position940, tokenIndex940 if buffer[position] != rune('1') { - goto l936 + goto l937 } position++ } - l939: - goto l935 - l936: - position, tokenIndex = position936, tokenIndex936 + l940: + goto l936 + l937: + position, tokenIndex = position937, tokenIndex937 } - goto l931 - l932: - position, tokenIndex = position931, tokenIndex931 + goto l932 + l933: + position, tokenIndex = position932, tokenIndex932 if buffer[position] != rune('0') { - goto l941 + goto l942 } position++ { - position942, tokenIndex942 := position, tokenIndex + position943, tokenIndex943 := position, tokenIndex if buffer[position] != rune('x') { - goto l943 + goto l944 } position++ - goto l942 - l943: - position, tokenIndex = position942, tokenIndex942 + goto l943 + l944: + position, tokenIndex = position943, tokenIndex943 if buffer[position] != rune('X') { - goto l941 + goto l942 } position++ } - l942: + l943: { - position946, tokenIndex946 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l947 - } - position++ - goto l946 - l947: - position, tokenIndex = position946, tokenIndex946 + position947, tokenIndex947 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { goto l948 } position++ - goto l946 + goto l947 l948: - position, tokenIndex = position946, tokenIndex946 + position, tokenIndex = position947, tokenIndex947 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l949 + } + position++ + goto l947 + l949: + position, tokenIndex = position947, tokenIndex947 { - position949, tokenIndex949 := position, tokenIndex + position950, tokenIndex950 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l950 + goto l951 } position++ - goto l949 - l950: - position, tokenIndex = position949, tokenIndex949 + goto l950 + l951: + position, tokenIndex = position950, tokenIndex950 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l941 + goto l942 } position++ } - l949: + l950: } - l946: - l944: + l947: + l945: { - position945, tokenIndex945 := position, tokenIndex + position946, tokenIndex946 := position, tokenIndex { - position951, tokenIndex951 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l952 - } - position++ - goto l951 - l952: - position, tokenIndex = position951, tokenIndex951 + position952, tokenIndex952 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { goto l953 } position++ - goto l951 + goto l952 l953: - position, tokenIndex = position951, tokenIndex951 + position, tokenIndex = position952, tokenIndex952 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l954 + } + position++ + goto l952 + l954: + position, tokenIndex = position952, tokenIndex952 { - position954, tokenIndex954 := position, tokenIndex + position955, tokenIndex955 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l955 + goto l956 } position++ - goto l954 - l955: - position, tokenIndex = position954, tokenIndex954 + goto l955 + l956: + position, tokenIndex = position955, tokenIndex955 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l945 + goto l946 } position++ } - l954: + l955: } - l951: - goto l944 - l945: - position, tokenIndex = position945, tokenIndex945 + l952: + goto l945 + l946: + position, tokenIndex = position946, tokenIndex946 } - goto l931 - l941: - position, tokenIndex = position931, tokenIndex931 + goto l932 + l942: + position, tokenIndex = position932, tokenIndex932 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l925 + goto l926 } position++ - l956: + l957: { - position957, tokenIndex957 := position, tokenIndex + position958, tokenIndex958 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l957 + goto l958 } position++ - goto l956 - l957: - position, tokenIndex = position957, tokenIndex957 + goto l957 + l958: + position, tokenIndex = position958, tokenIndex958 } } - l931: - add(ruleOffset, position926) + l932: + add(ruleOffset, position927) } return true - l925: - position, tokenIndex = position925, tokenIndex925 + l926: + position, tokenIndex = position926, tokenIndex926 return false }, /* 58 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - position958, tokenIndex958 := position, tokenIndex + position959, tokenIndex959 := position, tokenIndex { - position959 := position + position960 := position { - position962, tokenIndex962 := position, tokenIndex + position963, tokenIndex963 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l963 - } - position++ - goto l962 - l963: - position, tokenIndex = position962, tokenIndex962 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l964 } position++ - goto l962 + goto l963 l964: - position, tokenIndex = position962, tokenIndex962 + position, tokenIndex = position963, tokenIndex963 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l965 + } + position++ + goto l963 + l965: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('@') { - goto l958 + goto l959 } position++ } - l962: - l960: + l963: + l961: { - position961, tokenIndex961 := position, tokenIndex + position962, tokenIndex962 := position, tokenIndex { - position965, tokenIndex965 := position, tokenIndex + position966, tokenIndex966 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l966 - } - position++ - goto l965 - l966: - position, tokenIndex = position965, tokenIndex965 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l967 } position++ - goto l965 + goto l966 l967: - position, tokenIndex = position965, tokenIndex965 + position, tokenIndex = position966, tokenIndex966 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l968 + } + position++ + goto l966 + l968: + position, tokenIndex = position966, tokenIndex966 if buffer[position] != rune('@') { - goto l961 + goto l962 } position++ } - l965: - goto l960 - l961: - position, tokenIndex = position961, tokenIndex961 + l966: + goto l961 + l962: + position, tokenIndex = position962, tokenIndex962 } - add(ruleSection, position959) + add(ruleSection, position960) } return true - l958: - position, tokenIndex = position958, tokenIndex958 + l959: + position, tokenIndex = position959, tokenIndex959 return false }, /* 59 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ func() bool { - position968, tokenIndex968 := position, tokenIndex + position969, tokenIndex969 := position, tokenIndex { - position969 := position + position970 := position if buffer[position] != rune('%') { - goto l968 + goto l969 } position++ { - position970, tokenIndex970 := position, tokenIndex + position971, tokenIndex971 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l971 + goto l972 } position++ - goto l970 - l971: - position, tokenIndex = position970, tokenIndex970 + goto l971 + l972: + position, tokenIndex = position971, tokenIndex971 if buffer[position] != rune('s') { - goto l968 + goto l969 } position++ } - l970: + l971: if buffer[position] != rune('s') { - goto l968 + goto l969 } position++ if buffer[position] != rune(':') { - goto l968 + goto l969 } position++ - add(ruleSegmentRegister, position969) + add(ruleSegmentRegister, position970) } return true - l968: - position, tokenIndex = position968, tokenIndex968 + l969: + position, tokenIndex = position969, tokenIndex969 return false }, }
diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s index 54f3526..92a3a7b 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s
@@ -46,3 +46,7 @@ jmp 1f 1: jmp 1b +2: + + .quad 2b - 1b + .quad 2b - .L2
diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s index 70d0338..f786f13 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s
@@ -71,6 +71,11 @@ 1: jmp 1b +2: + + + .quad 2b - 1b + .quad 2b - .L2 # References to local labels are rewrittenn in subsequent files. .Llocal_label_BCM_1: