delocate: handle a new output form in Clang 13.
Clang 13 will put a “-1” inside a DWARF expression that's the difference
between two labels. We just need to pass it onto the output.
Change-Id: Ib58d245157a44ae9f1839c2af123bfe01791abf1
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/51445
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: Adam Langley <agl@google.com>
diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg
index f79ed76..c253a48 100644
--- a/util/fipstools/delocate/delocate.peg
+++ b/util/fipstools/delocate/delocate.peg
@@ -44,7 +44,7 @@
SymbolArg <- (OpenParen WS?)? (
Offset /
SymbolType /
- (Offset / LocalSymbol / SymbolName / Dot) WS? Operator WS? (Offset / LocalSymbol / SymbolName) /
+ (Offset / LocalSymbol / SymbolName / Dot) (WS? Operator WS? (Offset / LocalSymbol / SymbolName))* /
LocalSymbol TCMarker? /
SymbolName Offset /
SymbolName TCMarker?)
diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go
index 56c4a20..ea7c195 100644
--- a/util/fipstools/delocate/delocate.peg.go
+++ b/util/fipstools/delocate/delocate.peg.go
@@ -2540,7 +2540,7 @@
position, tokenIndex = position291, tokenIndex291
return false
},
- /* 16 SymbolArg <- <((OpenParen WS?)? (Offset / SymbolType / ((Offset / LocalSymbol / SymbolName / Dot) WS? Operator WS? (Offset / LocalSymbol / SymbolName)) / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?)) (WS? CloseParen)? (WS? SymbolShift)?)> */
+ /* 16 SymbolArg <- <((OpenParen WS?)? (Offset / SymbolType / ((Offset / LocalSymbol / SymbolName / Dot) (WS? Operator WS? (Offset / LocalSymbol / SymbolName))*) / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?)) (WS? CloseParen)? (WS? SymbolShift)?)> */
func() bool {
position299, tokenIndex299 := position, tokenIndex
{
@@ -2604,131 +2604,138 @@
}
}
l309:
+ l313:
{
- position313, tokenIndex313 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l313
+ position314, tokenIndex314 := position, tokenIndex
+ {
+ position315, tokenIndex315 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l315
+ }
+ goto l316
+ l315:
+ position, tokenIndex = position315, tokenIndex315
}
- goto l314
- l313:
- position, tokenIndex = position313, tokenIndex313
- }
- l314:
- if !_rules[ruleOperator]() {
- goto l308
- }
- {
- position315, tokenIndex315 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l315
+ l316:
+ if !_rules[ruleOperator]() {
+ goto l314
}
- goto l316
- l315:
- position, tokenIndex = position315, tokenIndex315
- }
- l316:
- {
- position317, tokenIndex317 := position, tokenIndex
- if !_rules[ruleOffset]() {
+ {
+ position317, tokenIndex317 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l317
+ }
goto l318
+ l317:
+ position, tokenIndex = position317, tokenIndex317
}
- goto l317
l318:
- position, tokenIndex = position317, tokenIndex317
- if !_rules[ruleLocalSymbol]() {
+ {
+ position319, tokenIndex319 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l320
+ }
goto l319
+ l320:
+ position, tokenIndex = position319, tokenIndex319
+ if !_rules[ruleLocalSymbol]() {
+ goto l321
+ }
+ goto l319
+ l321:
+ position, tokenIndex = position319, tokenIndex319
+ if !_rules[ruleSymbolName]() {
+ goto l314
+ }
}
- goto l317
l319:
- position, tokenIndex = position317, tokenIndex317
- if !_rules[ruleSymbolName]() {
- goto l308
- }
+ goto l313
+ l314:
+ position, tokenIndex = position314, tokenIndex314
}
- l317:
goto l305
l308:
position, tokenIndex = position305, tokenIndex305
if !_rules[ruleLocalSymbol]() {
- goto l320
+ goto l322
}
{
- position321, tokenIndex321 := position, tokenIndex
+ position323, tokenIndex323 := position, tokenIndex
if !_rules[ruleTCMarker]() {
- goto l321
+ goto l323
}
- goto l322
- l321:
- position, tokenIndex = position321, tokenIndex321
+ goto l324
+ l323:
+ position, tokenIndex = position323, tokenIndex323
}
- l322:
+ l324:
goto l305
- l320:
+ l322:
position, tokenIndex = position305, tokenIndex305
if !_rules[ruleSymbolName]() {
- goto l323
+ goto l325
}
if !_rules[ruleOffset]() {
- goto l323
+ goto l325
}
goto l305
- l323:
+ l325:
position, tokenIndex = position305, tokenIndex305
if !_rules[ruleSymbolName]() {
goto l299
}
{
- position324, tokenIndex324 := position, tokenIndex
+ position326, tokenIndex326 := position, tokenIndex
if !_rules[ruleTCMarker]() {
- goto l324
+ goto l326
}
- goto l325
- l324:
- position, tokenIndex = position324, tokenIndex324
+ goto l327
+ l326:
+ position, tokenIndex = position326, tokenIndex326
}
- l325:
+ l327:
}
l305:
{
- position326, tokenIndex326 := position, tokenIndex
+ position328, tokenIndex328 := position, tokenIndex
{
- position328, tokenIndex328 := position, tokenIndex
+ position330, tokenIndex330 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l328
+ goto l330
}
- goto l329
- l328:
- position, tokenIndex = position328, tokenIndex328
+ goto l331
+ l330:
+ position, tokenIndex = position330, tokenIndex330
}
- l329:
+ l331:
if !_rules[ruleCloseParen]() {
- goto l326
+ goto l328
}
- goto l327
- l326:
- position, tokenIndex = position326, tokenIndex326
+ goto l329
+ l328:
+ position, tokenIndex = position328, tokenIndex328
}
- l327:
+ l329:
{
- position330, tokenIndex330 := position, tokenIndex
+ position332, tokenIndex332 := position, tokenIndex
{
- position332, tokenIndex332 := position, tokenIndex
+ position334, tokenIndex334 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l332
+ goto l334
}
- goto l333
- l332:
- position, tokenIndex = position332, tokenIndex332
+ goto l335
+ l334:
+ position, tokenIndex = position334, tokenIndex334
}
- l333:
+ l335:
if !_rules[ruleSymbolShift]() {
- goto l330
+ goto l332
}
- goto l331
- l330:
- position, tokenIndex = position330, tokenIndex330
+ goto l333
+ l332:
+ position, tokenIndex = position332, tokenIndex332
}
- l331:
+ l333:
add(ruleSymbolArg, position300)
}
return true
@@ -2738,721 +2745,707 @@
},
/* 17 OpenParen <- <'('> */
func() bool {
- position334, tokenIndex334 := position, tokenIndex
- {
- position335 := position
- if buffer[position] != rune('(') {
- goto l334
- }
- position++
- add(ruleOpenParen, position335)
- }
- return true
- l334:
- position, tokenIndex = position334, tokenIndex334
- return false
- },
- /* 18 CloseParen <- <')'> */
- func() bool {
position336, tokenIndex336 := position, tokenIndex
{
position337 := position
- if buffer[position] != rune(')') {
+ if buffer[position] != rune('(') {
goto l336
}
position++
- add(ruleCloseParen, position337)
+ add(ruleOpenParen, position337)
}
return true
l336:
position, tokenIndex = position336, tokenIndex336
return false
},
- /* 19 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */
+ /* 18 CloseParen <- <')'> */
func() bool {
position338, tokenIndex338 := position, tokenIndex
{
position339 := position
- {
- position340, tokenIndex340 := position, tokenIndex
- if buffer[position] != rune('@') {
- goto l341
- }
- position++
- goto l340
- l341:
- position, tokenIndex = position340, tokenIndex340
- if buffer[position] != rune('%') {
- goto l338
- }
- position++
+ if buffer[position] != rune(')') {
+ goto l338
}
- l340:
- {
- position342, tokenIndex342 := position, tokenIndex
- if buffer[position] != rune('f') {
- goto l343
- }
- position++
- if buffer[position] != rune('u') {
- goto l343
- }
- position++
- if buffer[position] != rune('n') {
- goto l343
- }
- position++
- if buffer[position] != rune('c') {
- goto l343
- }
- position++
- if buffer[position] != rune('t') {
- goto l343
- }
- position++
- if buffer[position] != rune('i') {
- goto l343
- }
- position++
- if buffer[position] != rune('o') {
- goto l343
- }
- position++
- if buffer[position] != rune('n') {
- goto l343
- }
- position++
- goto l342
- l343:
- position, tokenIndex = position342, tokenIndex342
- if buffer[position] != rune('o') {
- goto l338
- }
- position++
- if buffer[position] != rune('b') {
- goto l338
- }
- position++
- if buffer[position] != rune('j') {
- goto l338
- }
- position++
- if buffer[position] != rune('e') {
- goto l338
- }
- position++
- if buffer[position] != rune('c') {
- goto l338
- }
- position++
- if buffer[position] != rune('t') {
- goto l338
- }
- position++
- }
- l342:
- add(ruleSymbolType, position339)
+ position++
+ add(ruleCloseParen, position339)
}
return true
l338:
position, tokenIndex = position338, tokenIndex338
return false
},
- /* 20 Dot <- <'.'> */
+ /* 19 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */
func() bool {
- position344, tokenIndex344 := position, tokenIndex
+ position340, tokenIndex340 := position, tokenIndex
{
- position345 := position
- if buffer[position] != rune('.') {
- goto l344
+ position341 := position
+ {
+ position342, tokenIndex342 := position, tokenIndex
+ if buffer[position] != rune('@') {
+ goto l343
+ }
+ position++
+ goto l342
+ l343:
+ position, tokenIndex = position342, tokenIndex342
+ if buffer[position] != rune('%') {
+ goto l340
+ }
+ position++
}
- position++
- add(ruleDot, position345)
+ l342:
+ {
+ position344, tokenIndex344 := position, tokenIndex
+ if buffer[position] != rune('f') {
+ goto l345
+ }
+ position++
+ if buffer[position] != rune('u') {
+ goto l345
+ }
+ position++
+ if buffer[position] != rune('n') {
+ goto l345
+ }
+ position++
+ if buffer[position] != rune('c') {
+ goto l345
+ }
+ position++
+ if buffer[position] != rune('t') {
+ goto l345
+ }
+ position++
+ if buffer[position] != rune('i') {
+ goto l345
+ }
+ position++
+ if buffer[position] != rune('o') {
+ goto l345
+ }
+ position++
+ if buffer[position] != rune('n') {
+ goto l345
+ }
+ position++
+ goto l344
+ l345:
+ position, tokenIndex = position344, tokenIndex344
+ if buffer[position] != rune('o') {
+ goto l340
+ }
+ position++
+ if buffer[position] != rune('b') {
+ goto l340
+ }
+ position++
+ if buffer[position] != rune('j') {
+ goto l340
+ }
+ position++
+ if buffer[position] != rune('e') {
+ goto l340
+ }
+ position++
+ if buffer[position] != rune('c') {
+ goto l340
+ }
+ position++
+ if buffer[position] != rune('t') {
+ goto l340
+ }
+ position++
+ }
+ l344:
+ add(ruleSymbolType, position341)
}
return true
- l344:
- position, tokenIndex = position344, tokenIndex344
+ l340:
+ position, tokenIndex = position340, tokenIndex340
return false
},
- /* 21 TCMarker <- <('[' 'T' 'C' ']')> */
+ /* 20 Dot <- <'.'> */
func() bool {
position346, tokenIndex346 := position, tokenIndex
{
position347 := position
- if buffer[position] != rune('[') {
+ if buffer[position] != rune('.') {
goto l346
}
position++
- if buffer[position] != rune('T') {
- goto l346
- }
- position++
- if buffer[position] != rune('C') {
- goto l346
- }
- position++
- if buffer[position] != rune(']') {
- goto l346
- }
- position++
- add(ruleTCMarker, position347)
+ add(ruleDot, position347)
}
return true
l346:
position, tokenIndex = position346, tokenIndex346
return false
},
- /* 22 EscapedChar <- <('\\' .)> */
+ /* 21 TCMarker <- <('[' 'T' 'C' ']')> */
func() bool {
position348, tokenIndex348 := position, tokenIndex
{
position349 := position
- if buffer[position] != rune('\\') {
+ if buffer[position] != rune('[') {
goto l348
}
position++
- if !matchDot() {
+ if buffer[position] != rune('T') {
goto l348
}
- add(ruleEscapedChar, position349)
+ position++
+ if buffer[position] != rune('C') {
+ goto l348
+ }
+ position++
+ if buffer[position] != rune(']') {
+ goto l348
+ }
+ position++
+ add(ruleTCMarker, position349)
}
return true
l348:
position, tokenIndex = position348, tokenIndex348
return false
},
- /* 23 WS <- <(' ' / '\t')+> */
+ /* 22 EscapedChar <- <('\\' .)> */
func() bool {
position350, tokenIndex350 := position, tokenIndex
{
position351 := position
- {
- position354, tokenIndex354 := position, tokenIndex
- if buffer[position] != rune(' ') {
- goto l355
- }
- position++
- goto l354
- l355:
- position, tokenIndex = position354, tokenIndex354
- if buffer[position] != rune('\t') {
- goto l350
- }
- position++
+ if buffer[position] != rune('\\') {
+ goto l350
}
- l354:
- l352:
- {
- position353, tokenIndex353 := position, tokenIndex
- {
- position356, tokenIndex356 := position, tokenIndex
- if buffer[position] != rune(' ') {
- goto l357
- }
- position++
- goto l356
- l357:
- position, tokenIndex = position356, tokenIndex356
- if buffer[position] != rune('\t') {
- goto l353
- }
- position++
- }
- l356:
- goto l352
- l353:
- position, tokenIndex = position353, tokenIndex353
+ position++
+ if !matchDot() {
+ goto l350
}
- add(ruleWS, position351)
+ add(ruleEscapedChar, position351)
}
return true
l350:
position, tokenIndex = position350, tokenIndex350
return false
},
- /* 24 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */
+ /* 23 WS <- <(' ' / '\t')+> */
func() bool {
- position358, tokenIndex358 := position, tokenIndex
+ position352, tokenIndex352 := position, tokenIndex
{
- position359 := position
+ position353 := position
{
- position360, tokenIndex360 := position, tokenIndex
- if buffer[position] != rune('/') {
- goto l361
+ position356, tokenIndex356 := position, tokenIndex
+ if buffer[position] != rune(' ') {
+ goto l357
}
position++
- if buffer[position] != rune('/') {
- goto l361
- }
- position++
- goto l360
- l361:
- position, tokenIndex = position360, tokenIndex360
- if buffer[position] != rune('#') {
- goto l358
+ goto l356
+ l357:
+ position, tokenIndex = position356, tokenIndex356
+ if buffer[position] != rune('\t') {
+ goto l352
}
position++
}
- l360:
- l362:
+ l356:
+ l354:
{
- position363, tokenIndex363 := position, tokenIndex
+ position355, tokenIndex355 := position, tokenIndex
{
- position364, tokenIndex364 := position, tokenIndex
- if buffer[position] != rune('\n') {
- goto l364
+ position358, tokenIndex358 := position, tokenIndex
+ if buffer[position] != rune(' ') {
+ goto l359
}
position++
- goto l363
- l364:
- position, tokenIndex = position364, tokenIndex364
+ goto l358
+ l359:
+ position, tokenIndex = position358, tokenIndex358
+ if buffer[position] != rune('\t') {
+ goto l355
+ }
+ position++
}
- if !matchDot() {
- goto l363
- }
- goto l362
- l363:
- position, tokenIndex = position363, tokenIndex363
+ l358:
+ goto l354
+ l355:
+ position, tokenIndex = position355, tokenIndex355
}
- add(ruleComment, position359)
+ add(ruleWS, position353)
}
return true
- l358:
- position, tokenIndex = position358, tokenIndex358
+ l352:
+ position, tokenIndex = position352, tokenIndex352
+ return false
+ },
+ /* 24 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */
+ func() bool {
+ position360, tokenIndex360 := position, tokenIndex
+ {
+ position361 := position
+ {
+ position362, tokenIndex362 := position, tokenIndex
+ if buffer[position] != rune('/') {
+ goto l363
+ }
+ position++
+ if buffer[position] != rune('/') {
+ goto l363
+ }
+ position++
+ goto l362
+ l363:
+ position, tokenIndex = position362, tokenIndex362
+ if buffer[position] != rune('#') {
+ goto l360
+ }
+ position++
+ }
+ l362:
+ l364:
+ {
+ position365, tokenIndex365 := position, tokenIndex
+ {
+ position366, tokenIndex366 := position, tokenIndex
+ if buffer[position] != rune('\n') {
+ goto l366
+ }
+ position++
+ goto l365
+ l366:
+ position, tokenIndex = position366, tokenIndex366
+ }
+ if !matchDot() {
+ goto l365
+ }
+ goto l364
+ l365:
+ position, tokenIndex = position365, tokenIndex365
+ }
+ add(ruleComment, position361)
+ }
+ return true
+ l360:
+ position, tokenIndex = position360, tokenIndex360
return false
},
/* 25 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */
func() bool {
- position365, tokenIndex365 := position, tokenIndex
+ position367, tokenIndex367 := position, tokenIndex
{
- position366 := position
+ position368 := position
{
- position367, tokenIndex367 := position, tokenIndex
+ position369, tokenIndex369 := position, tokenIndex
if !_rules[ruleLocalSymbol]() {
- goto l368
+ goto l370
}
- goto l367
- l368:
- position, tokenIndex = position367, tokenIndex367
+ goto l369
+ l370:
+ position, tokenIndex = position369, tokenIndex369
if !_rules[ruleLocalLabel]() {
- goto l369
+ goto l371
}
- goto l367
- l369:
- position, tokenIndex = position367, tokenIndex367
+ goto l369
+ l371:
+ position, tokenIndex = position369, tokenIndex369
if !_rules[ruleSymbolName]() {
- goto l365
+ goto l367
}
}
- l367:
+ l369:
if buffer[position] != rune(':') {
- goto l365
+ goto l367
}
position++
- add(ruleLabel, position366)
+ add(ruleLabel, position368)
}
return true
- l365:
- position, tokenIndex = position365, tokenIndex365
+ l367:
+ position, tokenIndex = position367, tokenIndex367
return false
},
/* 26 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */
func() bool {
- position370, tokenIndex370 := position, tokenIndex
+ position372, tokenIndex372 := position, tokenIndex
{
- position371 := position
+ position373 := position
{
- position372, tokenIndex372 := position, tokenIndex
+ position374, tokenIndex374 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l373
- }
- position++
- goto l372
- l373:
- position, tokenIndex = position372, tokenIndex372
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l374
- }
- position++
- goto l372
- l374:
- position, tokenIndex = position372, tokenIndex372
- if buffer[position] != rune('.') {
goto l375
}
position++
- goto l372
+ goto l374
l375:
- position, tokenIndex = position372, tokenIndex372
+ position, tokenIndex = position374, tokenIndex374
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l376
+ }
+ position++
+ goto l374
+ l376:
+ position, tokenIndex = position374, tokenIndex374
+ if buffer[position] != rune('.') {
+ goto l377
+ }
+ position++
+ goto l374
+ l377:
+ position, tokenIndex = position374, tokenIndex374
if buffer[position] != rune('_') {
- goto l370
+ goto l372
}
position++
}
- l372:
- l376:
+ l374:
+ l378:
{
- position377, tokenIndex377 := position, tokenIndex
+ position379, tokenIndex379 := position, tokenIndex
{
- position378, tokenIndex378 := position, tokenIndex
+ position380, tokenIndex380 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l379
- }
- position++
- goto l378
- l379:
- position, tokenIndex = position378, tokenIndex378
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l380
- }
- position++
- goto l378
- l380:
- position, tokenIndex = position378, tokenIndex378
- if buffer[position] != rune('.') {
goto l381
}
position++
- goto l378
+ goto l380
l381:
- position, tokenIndex = position378, tokenIndex378
+ position, tokenIndex = position380, tokenIndex380
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l382
+ }
+ position++
+ goto l380
+ l382:
+ position, tokenIndex = position380, tokenIndex380
+ if buffer[position] != rune('.') {
+ goto l383
+ }
+ position++
+ goto l380
+ l383:
+ position, tokenIndex = position380, tokenIndex380
{
- position383, tokenIndex383 := position, tokenIndex
+ 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++
- goto l383
- l384:
- position, tokenIndex = position383, tokenIndex383
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l382
- }
- position++
}
- l383:
- goto l378
- l382:
- position, tokenIndex = position378, tokenIndex378
+ l385:
+ goto l380
+ l384:
+ position, tokenIndex = position380, tokenIndex380
if buffer[position] != rune('$') {
- goto l385
+ goto l387
}
position++
- goto l378
- l385:
- position, tokenIndex = position378, tokenIndex378
+ goto l380
+ l387:
+ position, tokenIndex = position380, tokenIndex380
if buffer[position] != rune('_') {
- goto l377
+ goto l379
}
position++
}
- l378:
- goto l376
- l377:
- position, tokenIndex = position377, tokenIndex377
+ l380:
+ goto l378
+ l379:
+ position, tokenIndex = position379, tokenIndex379
}
- add(ruleSymbolName, position371)
+ add(ruleSymbolName, position373)
}
return true
- l370:
- position, tokenIndex = position370, tokenIndex370
+ l372:
+ position, tokenIndex = position372, tokenIndex372
return false
},
/* 27 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */
func() bool {
- position386, tokenIndex386 := position, tokenIndex
+ position388, tokenIndex388 := position, tokenIndex
{
- position387 := position
+ position389 := position
if buffer[position] != rune('.') {
- goto l386
+ goto l388
}
position++
if buffer[position] != rune('L') {
- goto l386
+ goto l388
}
position++
{
- position390, tokenIndex390 := position, tokenIndex
+ position392, tokenIndex392 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l391
+ goto l393
}
position++
- goto l390
- l391:
- position, tokenIndex = position390, tokenIndex390
+ goto l392
+ l393:
+ position, tokenIndex = position392, tokenIndex392
if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l392
+ goto l394
}
position++
- goto l390
- l392:
- position, tokenIndex = position390, tokenIndex390
+ goto l392
+ l394:
+ position, tokenIndex = position392, tokenIndex392
{
- position394, tokenIndex394 := position, tokenIndex
+ 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++
- goto l394
- l395:
- position, tokenIndex = position394, tokenIndex394
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l393
- }
- position++
}
- l394:
- goto l390
- l393:
- position, tokenIndex = position390, tokenIndex390
+ l396:
+ goto l392
+ l395:
+ position, tokenIndex = position392, tokenIndex392
if buffer[position] != rune('.') {
- goto l396
+ goto l398
}
position++
- goto l390
- l396:
- position, tokenIndex = position390, tokenIndex390
+ goto l392
+ l398:
+ position, tokenIndex = position392, tokenIndex392
{
- position398, tokenIndex398 := position, tokenIndex
+ position400, tokenIndex400 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l401
+ }
+ position++
+ goto l400
+ l401:
+ position, tokenIndex = position400, tokenIndex400
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l399
}
position++
- goto l398
- l399:
- position, tokenIndex = position398, tokenIndex398
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l397
- }
- position++
}
- l398:
- goto l390
- l397:
- position, tokenIndex = position390, tokenIndex390
+ l400:
+ goto l392
+ l399:
+ position, tokenIndex = position392, tokenIndex392
if buffer[position] != rune('$') {
- goto l400
+ goto l402
}
position++
- goto l390
- l400:
- position, tokenIndex = position390, tokenIndex390
+ goto l392
+ l402:
+ position, tokenIndex = position392, tokenIndex392
if buffer[position] != rune('_') {
- goto l386
+ goto l388
}
position++
}
+ l392:
l390:
- l388:
{
- position389, tokenIndex389 := position, tokenIndex
+ position391, tokenIndex391 := position, tokenIndex
{
- position401, tokenIndex401 := position, tokenIndex
+ position403, tokenIndex403 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l402
+ goto l404
}
position++
- goto l401
- l402:
- position, tokenIndex = position401, tokenIndex401
+ goto l403
+ l404:
+ position, tokenIndex = position403, tokenIndex403
if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l403
+ goto l405
}
position++
- goto l401
- l403:
- position, tokenIndex = position401, tokenIndex401
+ goto l403
+ l405:
+ position, tokenIndex = position403, tokenIndex403
{
- position405, tokenIndex405 := position, tokenIndex
+ 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++
- goto l405
- l406:
- position, tokenIndex = position405, tokenIndex405
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l404
- }
- position++
}
- l405:
- goto l401
- l404:
- position, tokenIndex = position401, tokenIndex401
+ l407:
+ goto l403
+ l406:
+ position, tokenIndex = position403, tokenIndex403
if buffer[position] != rune('.') {
- goto l407
+ goto l409
}
position++
- goto l401
- l407:
- position, tokenIndex = position401, tokenIndex401
+ goto l403
+ l409:
+ position, tokenIndex = position403, tokenIndex403
{
- position409, tokenIndex409 := position, tokenIndex
+ position411, tokenIndex411 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l412
+ }
+ position++
+ goto l411
+ l412:
+ position, tokenIndex = position411, tokenIndex411
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l410
}
position++
- goto l409
- l410:
- position, tokenIndex = position409, tokenIndex409
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l408
- }
- position++
}
- l409:
- goto l401
- l408:
- position, tokenIndex = position401, tokenIndex401
+ l411:
+ goto l403
+ l410:
+ position, tokenIndex = position403, tokenIndex403
if buffer[position] != rune('$') {
- goto l411
+ goto l413
}
position++
- goto l401
- l411:
- position, tokenIndex = position401, tokenIndex401
+ goto l403
+ l413:
+ position, tokenIndex = position403, tokenIndex403
if buffer[position] != rune('_') {
- goto l389
+ goto l391
}
position++
}
- l401:
- goto l388
- l389:
- position, tokenIndex = position389, tokenIndex389
+ l403:
+ goto l390
+ l391:
+ position, tokenIndex = position391, tokenIndex391
}
- add(ruleLocalSymbol, position387)
+ add(ruleLocalSymbol, position389)
}
return true
- l386:
- position, tokenIndex = position386, tokenIndex386
+ l388:
+ position, tokenIndex = position388, tokenIndex388
return false
},
/* 28 LocalLabel <- <([0-9] ([0-9] / '$')*)> */
func() bool {
- position412, tokenIndex412 := position, tokenIndex
+ position414, tokenIndex414 := position, tokenIndex
{
- position413 := position
+ position415 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l412
+ goto l414
}
position++
- l414:
+ l416:
{
- position415, tokenIndex415 := position, tokenIndex
+ position417, tokenIndex417 := position, tokenIndex
{
- position416, tokenIndex416 := position, tokenIndex
+ position418, tokenIndex418 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l419
+ }
+ position++
+ goto l418
+ l419:
+ position, tokenIndex = position418, tokenIndex418
+ if buffer[position] != rune('$') {
goto l417
}
position++
- goto l416
- l417:
- position, tokenIndex = position416, tokenIndex416
- if buffer[position] != rune('$') {
- goto l415
- }
- position++
}
- l416:
- goto l414
- l415:
- position, tokenIndex = position415, tokenIndex415
+ l418:
+ goto l416
+ l417:
+ position, tokenIndex = position417, tokenIndex417
}
- add(ruleLocalLabel, position413)
+ add(ruleLocalLabel, position415)
}
return true
- l412:
- position, tokenIndex = position412, tokenIndex412
+ l414:
+ position, tokenIndex = position414, tokenIndex414
return false
},
/* 29 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */
func() bool {
- position418, tokenIndex418 := position, tokenIndex
+ position420, tokenIndex420 := position, tokenIndex
{
- position419 := position
+ position421 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l418
+ goto l420
}
position++
- l420:
+ l422:
{
- position421, tokenIndex421 := position, tokenIndex
+ position423, tokenIndex423 := position, tokenIndex
{
- position422, tokenIndex422 := position, tokenIndex
+ position424, tokenIndex424 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l425
+ }
+ position++
+ goto l424
+ l425:
+ position, tokenIndex = position424, tokenIndex424
+ if buffer[position] != rune('$') {
goto l423
}
position++
- goto l422
- l423:
- position, tokenIndex = position422, tokenIndex422
- if buffer[position] != rune('$') {
- goto l421
- }
- position++
}
- l422:
- goto l420
- l421:
- position, tokenIndex = position421, tokenIndex421
+ l424:
+ goto l422
+ l423:
+ position, tokenIndex = position423, tokenIndex423
}
{
- position424, tokenIndex424 := position, tokenIndex
+ position426, tokenIndex426 := position, tokenIndex
if buffer[position] != rune('b') {
- goto l425
+ goto l427
}
position++
- goto l424
- l425:
- position, tokenIndex = position424, tokenIndex424
+ goto l426
+ l427:
+ position, tokenIndex = position426, tokenIndex426
if buffer[position] != rune('f') {
- goto l418
+ goto l420
}
position++
}
- l424:
- add(ruleLocalLabelRef, position419)
+ l426:
+ add(ruleLocalLabelRef, position421)
}
return true
- l418:
- position, tokenIndex = position418, tokenIndex418
+ l420:
+ position, tokenIndex = position420, tokenIndex420
return false
},
/* 30 Instruction <- <(InstructionName (WS InstructionArg (WS? ',' WS? InstructionArg)*)?)> */
func() bool {
- position426, tokenIndex426 := position, tokenIndex
+ position428, tokenIndex428 := position, tokenIndex
{
- position427 := position
+ position429 := position
if !_rules[ruleInstructionName]() {
- goto l426
+ goto l428
}
{
- position428, tokenIndex428 := position, tokenIndex
+ position430, tokenIndex430 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l428
+ goto l430
}
if !_rules[ruleInstructionArg]() {
- goto l428
+ goto l430
}
- l430:
+ l432:
{
- position431, tokenIndex431 := position, tokenIndex
- {
- position432, tokenIndex432 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l432
- }
- goto l433
- l432:
- position, tokenIndex = position432, tokenIndex432
- }
- l433:
- if buffer[position] != rune(',') {
- goto l431
- }
- position++
+ position433, tokenIndex433 := position, tokenIndex
{
position434, tokenIndex434 := position, tokenIndex
if !_rules[ruleWS]() {
@@ -3463,1013 +3456,1009 @@
position, tokenIndex = position434, tokenIndex434
}
l435:
- if !_rules[ruleInstructionArg]() {
- goto l431
+ if buffer[position] != rune(',') {
+ goto l433
}
- goto l430
- l431:
- position, tokenIndex = position431, tokenIndex431
+ position++
+ {
+ position436, tokenIndex436 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l436
+ }
+ goto l437
+ l436:
+ position, tokenIndex = position436, tokenIndex436
+ }
+ l437:
+ if !_rules[ruleInstructionArg]() {
+ goto l433
+ }
+ goto l432
+ l433:
+ position, tokenIndex = position433, tokenIndex433
}
- goto l429
- l428:
- position, tokenIndex = position428, tokenIndex428
+ goto l431
+ l430:
+ position, tokenIndex = position430, tokenIndex430
}
- l429:
- add(ruleInstruction, position427)
+ l431:
+ add(ruleInstruction, position429)
}
return true
- l426:
- position, tokenIndex = position426, tokenIndex426
+ l428:
+ position, tokenIndex = position428, tokenIndex428
return false
},
/* 31 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */
func() bool {
- position436, tokenIndex436 := position, tokenIndex
+ position438, tokenIndex438 := position, tokenIndex
{
- position437 := position
+ position439 := position
{
- position438, tokenIndex438 := position, tokenIndex
+ position440, tokenIndex440 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l439
+ goto l441
}
position++
- goto l438
- l439:
- position, tokenIndex = position438, tokenIndex438
+ goto l440
+ l441:
+ position, tokenIndex = position440, tokenIndex440
if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l436
+ goto l438
}
position++
}
- l438:
l440:
+ l442:
{
- position441, tokenIndex441 := position, tokenIndex
+ position443, tokenIndex443 := position, tokenIndex
{
- position442, tokenIndex442 := position, tokenIndex
+ position444, tokenIndex444 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l443
- }
- position++
- goto l442
- l443:
- position, tokenIndex = position442, tokenIndex442
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l444
- }
- position++
- goto l442
- l444:
- position, tokenIndex = position442, tokenIndex442
- if buffer[position] != rune('.') {
goto l445
}
position++
- goto l442
+ goto l444
l445:
- position, tokenIndex = position442, tokenIndex442
+ position, tokenIndex = position444, tokenIndex444
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l446
+ }
+ position++
+ goto l444
+ l446:
+ position, tokenIndex = position444, tokenIndex444
+ if buffer[position] != rune('.') {
+ goto l447
+ }
+ position++
+ goto l444
+ l447:
+ position, tokenIndex = position444, tokenIndex444
{
- position446, tokenIndex446 := position, tokenIndex
+ position448, tokenIndex448 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l447
+ goto l449
}
position++
- goto l446
- l447:
- position, tokenIndex = position446, tokenIndex446
+ goto l448
+ l449:
+ position, tokenIndex = position448, tokenIndex448
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l441
+ goto l443
}
position++
}
- l446:
+ l448:
}
- l442:
- goto l440
- l441:
- position, tokenIndex = position441, tokenIndex441
+ l444:
+ goto l442
+ l443:
+ position, tokenIndex = position443, tokenIndex443
}
{
- position448, tokenIndex448 := position, tokenIndex
+ position450, tokenIndex450 := position, tokenIndex
{
- position450, tokenIndex450 := position, tokenIndex
+ position452, tokenIndex452 := position, tokenIndex
if buffer[position] != rune('.') {
- goto l451
+ goto l453
}
position++
- goto l450
- l451:
- position, tokenIndex = position450, tokenIndex450
+ goto l452
+ l453:
+ position, tokenIndex = position452, tokenIndex452
if buffer[position] != rune('+') {
- goto l452
+ goto l454
}
position++
- goto l450
- l452:
- position, tokenIndex = position450, tokenIndex450
+ goto l452
+ l454:
+ position, tokenIndex = position452, tokenIndex452
if buffer[position] != rune('-') {
- goto l448
+ goto l450
}
position++
}
+ l452:
+ goto l451
l450:
- goto l449
- l448:
- position, tokenIndex = position448, tokenIndex448
+ position, tokenIndex = position450, tokenIndex450
}
- l449:
- add(ruleInstructionName, position437)
+ l451:
+ add(ruleInstructionName, position439)
}
return true
- l436:
- position, tokenIndex = position436, tokenIndex436
+ l438:
+ position, tokenIndex = position438, tokenIndex438
return false
},
/* 32 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTSymbolOffset / MemoryRef) AVX512Token*)> */
func() bool {
- position453, tokenIndex453 := position, tokenIndex
+ position455, tokenIndex455 := position, tokenIndex
{
- position454 := position
- {
- position455, tokenIndex455 := position, tokenIndex
- if !_rules[ruleIndirectionIndicator]() {
- goto l455
- }
- goto l456
- l455:
- position, tokenIndex = position455, tokenIndex455
- }
- l456:
+ position456 := position
{
position457, tokenIndex457 := position, tokenIndex
+ if !_rules[ruleIndirectionIndicator]() {
+ goto l457
+ }
+ goto l458
+ l457:
+ position, tokenIndex = position457, tokenIndex457
+ }
+ l458:
+ {
+ position459, tokenIndex459 := position, tokenIndex
if !_rules[ruleARMConstantTweak]() {
- goto l458
- }
- goto l457
- l458:
- position, tokenIndex = position457, tokenIndex457
- if !_rules[ruleRegisterOrConstant]() {
- goto l459
- }
- goto l457
- l459:
- position, tokenIndex = position457, tokenIndex457
- if !_rules[ruleLocalLabelRef]() {
goto l460
}
- goto l457
+ goto l459
l460:
- position, tokenIndex = position457, tokenIndex457
- if !_rules[ruleTOCRefHigh]() {
+ position, tokenIndex = position459, tokenIndex459
+ if !_rules[ruleRegisterOrConstant]() {
goto l461
}
- goto l457
+ goto l459
l461:
- position, tokenIndex = position457, tokenIndex457
- if !_rules[ruleTOCRefLow]() {
+ position, tokenIndex = position459, tokenIndex459
+ if !_rules[ruleLocalLabelRef]() {
goto l462
}
- goto l457
+ goto l459
l462:
- position, tokenIndex = position457, tokenIndex457
- if !_rules[ruleGOTLocation]() {
+ position, tokenIndex = position459, tokenIndex459
+ if !_rules[ruleTOCRefHigh]() {
goto l463
}
- goto l457
+ goto l459
l463:
- position, tokenIndex = position457, tokenIndex457
- if !_rules[ruleGOTSymbolOffset]() {
+ position, tokenIndex = position459, tokenIndex459
+ if !_rules[ruleTOCRefLow]() {
goto l464
}
- goto l457
+ goto l459
l464:
- position, tokenIndex = position457, tokenIndex457
- if !_rules[ruleMemoryRef]() {
- goto l453
+ position, tokenIndex = position459, tokenIndex459
+ if !_rules[ruleGOTLocation]() {
+ goto l465
}
- }
- l457:
- l465:
- {
- position466, tokenIndex466 := position, tokenIndex
- if !_rules[ruleAVX512Token]() {
+ goto l459
+ l465:
+ position, tokenIndex = position459, tokenIndex459
+ if !_rules[ruleGOTSymbolOffset]() {
goto l466
}
- goto l465
+ goto l459
l466:
- position, tokenIndex = position466, tokenIndex466
+ position, tokenIndex = position459, tokenIndex459
+ if !_rules[ruleMemoryRef]() {
+ goto l455
+ }
}
- add(ruleInstructionArg, position454)
+ l459:
+ l467:
+ {
+ position468, tokenIndex468 := position, tokenIndex
+ if !_rules[ruleAVX512Token]() {
+ goto l468
+ }
+ goto l467
+ l468:
+ position, tokenIndex = position468, tokenIndex468
+ }
+ add(ruleInstructionArg, position456)
}
return true
- l453:
- position, tokenIndex = position453, tokenIndex453
+ l455:
+ position, tokenIndex = position455, tokenIndex455
return false
},
/* 33 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */
func() bool {
- position467, tokenIndex467 := position, tokenIndex
- {
- position468 := position
- if buffer[position] != rune('$') {
- goto l467
- }
- position++
- if buffer[position] != rune('_') {
- goto l467
- }
- position++
- if buffer[position] != rune('G') {
- goto l467
- }
- position++
- if buffer[position] != rune('L') {
- goto l467
- }
- position++
- if buffer[position] != rune('O') {
- goto l467
- }
- position++
- if buffer[position] != rune('B') {
- goto l467
- }
- position++
- if buffer[position] != rune('A') {
- goto l467
- }
- position++
- if buffer[position] != rune('L') {
- goto l467
- }
- position++
- if buffer[position] != rune('_') {
- goto l467
- }
- position++
- if buffer[position] != rune('O') {
- goto l467
- }
- position++
- if buffer[position] != rune('F') {
- goto l467
- }
- position++
- if buffer[position] != rune('F') {
- goto l467
- }
- position++
- if buffer[position] != rune('S') {
- goto l467
- }
- position++
- if buffer[position] != rune('E') {
- goto l467
- }
- position++
- if buffer[position] != rune('T') {
- goto l467
- }
- position++
- if buffer[position] != rune('_') {
- goto l467
- }
- position++
- if buffer[position] != rune('T') {
- goto l467
- }
- position++
- if buffer[position] != rune('A') {
- goto l467
- }
- position++
- if buffer[position] != rune('B') {
- goto l467
- }
- position++
- if buffer[position] != rune('L') {
- goto l467
- }
- position++
- if buffer[position] != rune('E') {
- goto l467
- }
- position++
- if buffer[position] != rune('_') {
- goto l467
- }
- position++
- if buffer[position] != rune('-') {
- goto l467
- }
- position++
- if !_rules[ruleLocalSymbol]() {
- goto l467
- }
- add(ruleGOTLocation, position468)
- }
- return true
- l467:
- position, tokenIndex = position467, tokenIndex467
- return false
- },
- /* 34 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */
- func() bool {
position469, tokenIndex469 := position, tokenIndex
{
position470 := position
- {
- position471, tokenIndex471 := position, tokenIndex
- if buffer[position] != rune('$') {
- goto l472
- }
- position++
- if !_rules[ruleSymbolName]() {
- goto l472
- }
- if buffer[position] != rune('@') {
- goto l472
- }
- position++
- if buffer[position] != rune('G') {
- goto l472
- }
- position++
- if buffer[position] != rune('O') {
- goto l472
- }
- position++
- if buffer[position] != rune('T') {
- goto l472
- }
- position++
- {
- position473, tokenIndex473 := position, tokenIndex
- if buffer[position] != rune('O') {
- goto l473
- }
- position++
- if buffer[position] != rune('F') {
- goto l473
- }
- position++
- if buffer[position] != rune('F') {
- goto l473
- }
- position++
- goto l474
- l473:
- position, tokenIndex = position473, tokenIndex473
- }
- l474:
- goto l471
- l472:
- position, tokenIndex = position471, tokenIndex471
- if buffer[position] != rune(':') {
- goto l469
- }
- position++
- {
- position475, tokenIndex475 := position, tokenIndex
- if buffer[position] != rune('g') {
- goto l476
- }
- position++
- goto l475
- l476:
- position, tokenIndex = position475, tokenIndex475
- if buffer[position] != rune('G') {
- goto l469
- }
- position++
- }
- l475:
- {
- position477, tokenIndex477 := position, tokenIndex
- if buffer[position] != rune('o') {
- goto l478
- }
- position++
- goto l477
- l478:
- position, tokenIndex = position477, tokenIndex477
- if buffer[position] != rune('O') {
- goto l469
- }
- position++
- }
- l477:
- {
- position479, tokenIndex479 := position, tokenIndex
- if buffer[position] != rune('t') {
- goto l480
- }
- position++
- goto l479
- l480:
- position, tokenIndex = position479, tokenIndex479
- if buffer[position] != rune('T') {
- goto l469
- }
- position++
- }
- l479:
- if buffer[position] != rune(':') {
- goto l469
- }
- position++
- if !_rules[ruleSymbolName]() {
- goto l469
- }
+ if buffer[position] != rune('$') {
+ goto l469
}
- l471:
- add(ruleGOTSymbolOffset, position470)
+ position++
+ if buffer[position] != rune('_') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('G') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('L') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('O') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('B') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('A') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('L') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('_') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('O') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('F') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('F') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('S') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('E') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('T') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('_') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('T') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('A') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('B') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('L') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('E') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('_') {
+ goto l469
+ }
+ position++
+ if buffer[position] != rune('-') {
+ goto l469
+ }
+ position++
+ if !_rules[ruleLocalSymbol]() {
+ goto l469
+ }
+ add(ruleGOTLocation, position470)
}
return true
l469:
position, tokenIndex = position469, tokenIndex469
return false
},
- /* 35 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */
+ /* 34 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */
func() bool {
- position481, tokenIndex481 := position, tokenIndex
+ position471, tokenIndex471 := position, tokenIndex
{
- position482 := position
+ position472 := position
{
- position483, tokenIndex483 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l483
- }
- goto l484
- l483:
- position, tokenIndex = position483, tokenIndex483
- }
- l484:
- if buffer[position] != rune('{') {
- goto l481
- }
- position++
- {
- position485, tokenIndex485 := position, tokenIndex
- if buffer[position] != rune('%') {
- goto l485
+ position473, tokenIndex473 := position, tokenIndex
+ if buffer[position] != rune('$') {
+ goto l474
}
position++
+ if !_rules[ruleSymbolName]() {
+ goto l474
+ }
+ if buffer[position] != rune('@') {
+ goto l474
+ }
+ position++
+ if buffer[position] != rune('G') {
+ goto l474
+ }
+ position++
+ if buffer[position] != rune('O') {
+ goto l474
+ }
+ position++
+ if buffer[position] != rune('T') {
+ goto l474
+ }
+ position++
+ {
+ position475, tokenIndex475 := position, tokenIndex
+ if buffer[position] != rune('O') {
+ goto l475
+ }
+ position++
+ if buffer[position] != rune('F') {
+ goto l475
+ }
+ position++
+ if buffer[position] != rune('F') {
+ goto l475
+ }
+ position++
+ goto l476
+ l475:
+ position, tokenIndex = position475, tokenIndex475
+ }
+ l476:
+ goto l473
+ l474:
+ position, tokenIndex = position473, tokenIndex473
+ if buffer[position] != rune(':') {
+ goto l471
+ }
+ position++
+ {
+ position477, tokenIndex477 := position, tokenIndex
+ if buffer[position] != rune('g') {
+ goto l478
+ }
+ position++
+ goto l477
+ l478:
+ position, tokenIndex = position477, tokenIndex477
+ if buffer[position] != rune('G') {
+ goto l471
+ }
+ position++
+ }
+ l477:
+ {
+ position479, tokenIndex479 := position, tokenIndex
+ if buffer[position] != rune('o') {
+ goto l480
+ }
+ position++
+ goto l479
+ l480:
+ position, tokenIndex = position479, tokenIndex479
+ if buffer[position] != rune('O') {
+ goto l471
+ }
+ position++
+ }
+ l479:
+ {
+ position481, tokenIndex481 := position, tokenIndex
+ if buffer[position] != rune('t') {
+ goto l482
+ }
+ position++
+ goto l481
+ l482:
+ position, tokenIndex = position481, tokenIndex481
+ if buffer[position] != rune('T') {
+ goto l471
+ }
+ position++
+ }
+ l481:
+ if buffer[position] != rune(':') {
+ goto l471
+ }
+ position++
+ if !_rules[ruleSymbolName]() {
+ goto l471
+ }
+ }
+ l473:
+ add(ruleGOTSymbolOffset, position472)
+ }
+ return true
+ l471:
+ position, tokenIndex = position471, tokenIndex471
+ return false
+ },
+ /* 35 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */
+ func() bool {
+ position483, tokenIndex483 := position, tokenIndex
+ {
+ position484 := position
+ {
+ position485, tokenIndex485 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l485
+ }
goto l486
l485:
position, tokenIndex = position485, tokenIndex485
}
l486:
- l487:
+ if buffer[position] != rune('{') {
+ goto l483
+ }
+ position++
{
- position488, tokenIndex488 := position, tokenIndex
+ position487, tokenIndex487 := position, tokenIndex
+ if buffer[position] != rune('%') {
+ goto l487
+ }
+ position++
+ goto l488
+ l487:
+ position, tokenIndex = position487, tokenIndex487
+ }
+ l488:
+ l489:
+ {
+ position490, tokenIndex490 := position, tokenIndex
{
- position489, tokenIndex489 := position, tokenIndex
+ position491, tokenIndex491 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l492
+ }
+ position++
+ goto l491
+ l492:
+ position, tokenIndex = position491, tokenIndex491
+ if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l490
}
position++
- goto l489
- l490:
- position, tokenIndex = position489, tokenIndex489
- if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l488
- }
- position++
}
- l489:
- goto l487
- l488:
- position, tokenIndex = position488, tokenIndex488
+ l491:
+ goto l489
+ l490:
+ position, tokenIndex = position490, tokenIndex490
}
if buffer[position] != rune('}') {
- goto l481
+ goto l483
}
position++
- add(ruleAVX512Token, position482)
+ add(ruleAVX512Token, position484)
}
return true
- l481:
- position, tokenIndex = position481, tokenIndex481
+ l483:
+ position, tokenIndex = position483, tokenIndex483
return false
},
/* 36 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */
func() bool {
- position491, tokenIndex491 := position, tokenIndex
+ position493, tokenIndex493 := position, tokenIndex
{
- position492 := position
+ position494 := position
if buffer[position] != rune('.') {
- goto l491
+ goto l493
}
position++
if buffer[position] != rune('T') {
- goto l491
+ goto l493
}
position++
if buffer[position] != rune('O') {
- goto l491
+ goto l493
}
position++
if buffer[position] != rune('C') {
- goto l491
+ goto l493
}
position++
if buffer[position] != rune('.') {
- goto l491
+ goto l493
}
position++
if buffer[position] != rune('-') {
- goto l491
+ goto l493
}
position++
{
- position493, tokenIndex493 := position, tokenIndex
+ position495, tokenIndex495 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l494
+ goto l496
}
position++
if buffer[position] != rune('b') {
- goto l494
+ goto l496
}
position++
- goto l493
- l494:
- position, tokenIndex = position493, tokenIndex493
+ goto l495
+ l496:
+ position, tokenIndex = position495, tokenIndex495
if buffer[position] != rune('.') {
- goto l491
+ goto l493
}
position++
if buffer[position] != rune('L') {
- goto l491
+ goto l493
}
position++
{
- position497, tokenIndex497 := position, tokenIndex
+ position499, tokenIndex499 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l498
- }
- position++
- goto l497
- l498:
- position, tokenIndex = position497, tokenIndex497
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l499
- }
- position++
- goto l497
- l499:
- position, tokenIndex = position497, tokenIndex497
- if buffer[position] != rune('_') {
goto l500
}
position++
- goto l497
+ goto l499
l500:
- position, tokenIndex = position497, tokenIndex497
+ position, tokenIndex = position499, tokenIndex499
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l501
+ }
+ position++
+ goto l499
+ l501:
+ position, tokenIndex = position499, tokenIndex499
+ if buffer[position] != rune('_') {
+ goto l502
+ }
+ position++
+ goto l499
+ l502:
+ position, tokenIndex = position499, tokenIndex499
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l491
+ goto l493
}
position++
}
+ l499:
l497:
- l495:
{
- position496, tokenIndex496 := position, tokenIndex
+ position498, tokenIndex498 := position, tokenIndex
{
- position501, tokenIndex501 := position, tokenIndex
+ position503, tokenIndex503 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l502
- }
- position++
- goto l501
- l502:
- position, tokenIndex = position501, tokenIndex501
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l503
- }
- position++
- goto l501
- l503:
- position, tokenIndex = position501, tokenIndex501
- if buffer[position] != rune('_') {
goto l504
}
position++
- goto l501
+ goto l503
l504:
- position, tokenIndex = position501, tokenIndex501
+ position, tokenIndex = position503, tokenIndex503
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l505
+ }
+ position++
+ goto l503
+ l505:
+ position, tokenIndex = position503, tokenIndex503
+ if buffer[position] != rune('_') {
+ goto l506
+ }
+ position++
+ goto l503
+ l506:
+ position, tokenIndex = position503, tokenIndex503
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l496
+ goto l498
}
position++
}
- l501:
- goto l495
- l496:
- position, tokenIndex = position496, tokenIndex496
+ l503:
+ goto l497
+ l498:
+ position, tokenIndex = position498, tokenIndex498
}
}
- l493:
+ l495:
if buffer[position] != rune('@') {
- goto l491
+ goto l493
}
position++
{
- position505, tokenIndex505 := position, tokenIndex
- if buffer[position] != rune('h') {
- goto l506
- }
- position++
- goto l505
- l506:
- position, tokenIndex = position505, tokenIndex505
- if buffer[position] != rune('H') {
- goto l491
- }
- position++
- }
- l505:
- {
position507, tokenIndex507 := position, tokenIndex
- if buffer[position] != rune('a') {
+ if buffer[position] != rune('h') {
goto l508
}
position++
goto l507
l508:
position, tokenIndex = position507, tokenIndex507
- if buffer[position] != rune('A') {
- goto l491
+ if buffer[position] != rune('H') {
+ goto l493
}
position++
}
l507:
- add(ruleTOCRefHigh, position492)
+ {
+ position509, tokenIndex509 := position, tokenIndex
+ if buffer[position] != rune('a') {
+ goto l510
+ }
+ position++
+ goto l509
+ l510:
+ position, tokenIndex = position509, tokenIndex509
+ if buffer[position] != rune('A') {
+ goto l493
+ }
+ position++
+ }
+ l509:
+ add(ruleTOCRefHigh, position494)
}
return true
- l491:
- position, tokenIndex = position491, tokenIndex491
+ l493:
+ position, tokenIndex = position493, tokenIndex493
return false
},
/* 37 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */
func() bool {
- position509, tokenIndex509 := position, tokenIndex
+ position511, tokenIndex511 := position, tokenIndex
{
- position510 := position
+ position512 := position
if buffer[position] != rune('.') {
- goto l509
+ goto l511
}
position++
if buffer[position] != rune('T') {
- goto l509
+ goto l511
}
position++
if buffer[position] != rune('O') {
- goto l509
+ goto l511
}
position++
if buffer[position] != rune('C') {
- goto l509
+ goto l511
}
position++
if buffer[position] != rune('.') {
- goto l509
+ goto l511
}
position++
if buffer[position] != rune('-') {
- goto l509
+ goto l511
}
position++
{
- position511, tokenIndex511 := position, tokenIndex
+ position513, tokenIndex513 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l512
+ goto l514
}
position++
if buffer[position] != rune('b') {
- goto l512
+ goto l514
}
position++
- goto l511
- l512:
- position, tokenIndex = position511, tokenIndex511
+ goto l513
+ l514:
+ position, tokenIndex = position513, tokenIndex513
if buffer[position] != rune('.') {
- goto l509
+ goto l511
}
position++
if buffer[position] != rune('L') {
- goto l509
+ goto l511
}
position++
{
- position515, tokenIndex515 := position, tokenIndex
+ position517, tokenIndex517 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l516
- }
- position++
- goto l515
- l516:
- position, tokenIndex = position515, tokenIndex515
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l517
- }
- position++
- goto l515
- l517:
- position, tokenIndex = position515, tokenIndex515
- if buffer[position] != rune('_') {
goto l518
}
position++
- goto l515
+ goto l517
l518:
- position, tokenIndex = position515, tokenIndex515
+ position, tokenIndex = position517, tokenIndex517
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l519
+ }
+ position++
+ goto l517
+ l519:
+ position, tokenIndex = position517, tokenIndex517
+ if buffer[position] != rune('_') {
+ goto l520
+ }
+ position++
+ goto l517
+ l520:
+ position, tokenIndex = position517, tokenIndex517
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l509
+ goto l511
}
position++
}
+ l517:
l515:
- l513:
{
- position514, tokenIndex514 := position, tokenIndex
+ position516, tokenIndex516 := position, tokenIndex
{
- position519, tokenIndex519 := position, tokenIndex
+ position521, tokenIndex521 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l520
- }
- position++
- goto l519
- l520:
- position, tokenIndex = position519, tokenIndex519
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l521
- }
- position++
- goto l519
- l521:
- position, tokenIndex = position519, tokenIndex519
- if buffer[position] != rune('_') {
goto l522
}
position++
- goto l519
+ goto l521
l522:
- position, tokenIndex = position519, tokenIndex519
+ 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 l514
+ goto l516
}
position++
}
- l519:
- goto l513
- l514:
- position, tokenIndex = position514, tokenIndex514
+ l521:
+ goto l515
+ l516:
+ position, tokenIndex = position516, tokenIndex516
}
}
- l511:
+ l513:
if buffer[position] != rune('@') {
- goto l509
+ goto l511
}
position++
{
- position523, tokenIndex523 := position, tokenIndex
+ position525, tokenIndex525 := position, tokenIndex
if buffer[position] != rune('l') {
- goto l524
+ goto l526
}
position++
- goto l523
- l524:
- position, tokenIndex = position523, tokenIndex523
+ goto l525
+ l526:
+ position, tokenIndex = position525, tokenIndex525
if buffer[position] != rune('L') {
- goto l509
+ goto l511
}
position++
}
- l523:
- add(ruleTOCRefLow, position510)
+ l525:
+ add(ruleTOCRefLow, position512)
}
return true
- l509:
- position, tokenIndex = position509, tokenIndex509
+ l511:
+ position, tokenIndex = position511, tokenIndex511
return false
},
/* 38 IndirectionIndicator <- <'*'> */
func() bool {
- position525, tokenIndex525 := position, tokenIndex
+ position527, tokenIndex527 := position, tokenIndex
{
- position526 := position
+ position528 := position
if buffer[position] != rune('*') {
- goto l525
+ goto l527
}
position++
- add(ruleIndirectionIndicator, position526)
+ add(ruleIndirectionIndicator, position528)
}
return true
- l525:
- position, tokenIndex = position525, tokenIndex525
+ l527:
+ position, tokenIndex = position527, tokenIndex527
return false
},
/* 39 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 {
- position527, tokenIndex527 := position, tokenIndex
+ position529, tokenIndex529 := position, tokenIndex
{
- position528 := position
+ position530 := position
{
- position529, tokenIndex529 := position, tokenIndex
+ position531, tokenIndex531 := position, tokenIndex
if buffer[position] != rune('%') {
- goto l530
+ goto l532
}
position++
{
- position531, tokenIndex531 := position, tokenIndex
+ position533, tokenIndex533 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
+ goto l534
+ }
+ position++
+ goto l533
+ l534:
+ position, tokenIndex = position533, tokenIndex533
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l532
}
position++
- goto l531
- l532:
- position, tokenIndex = position531, tokenIndex531
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l530
- }
- position++
}
- l531:
l533:
+ l535:
{
- position534, tokenIndex534 := position, tokenIndex
+ position536, tokenIndex536 := position, tokenIndex
{
- position535, tokenIndex535 := position, tokenIndex
+ position537, tokenIndex537 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l536
- }
- position++
- goto l535
- l536:
- position, tokenIndex = position535, tokenIndex535
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l537
- }
- position++
- goto l535
- l537:
- position, tokenIndex = position535, tokenIndex535
- {
- position538, tokenIndex538 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l539
- }
- position++
goto l538
- l539:
- position, tokenIndex = position538, tokenIndex538
+ }
+ position++
+ goto l537
+ l538:
+ position, tokenIndex = position537, tokenIndex537
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l539
+ }
+ position++
+ goto l537
+ l539:
+ position, tokenIndex = position537, tokenIndex537
+ {
+ position540, tokenIndex540 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l534
+ goto l541
+ }
+ position++
+ goto l540
+ l541:
+ position, tokenIndex = position540, tokenIndex540
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l536
}
position++
}
- l538:
+ l540:
}
- l535:
- goto l533
- l534:
- position, tokenIndex = position534, tokenIndex534
+ l537:
+ goto l535
+ l536:
+ position, tokenIndex = position536, tokenIndex536
}
- goto l529
- l530:
- position, tokenIndex = position529, tokenIndex529
- {
- position541, tokenIndex541 := position, tokenIndex
- if buffer[position] != rune('$') {
- goto l541
- }
- position++
- goto l542
- l541:
- position, tokenIndex = position541, tokenIndex541
- }
- l542:
+ goto l531
+ l532:
+ position, tokenIndex = position531, tokenIndex531
{
position543, tokenIndex543 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l544
+ if buffer[position] != rune('$') {
+ goto l543
}
- if !_rules[ruleOffset]() {
- goto l544
- }
- goto l543
- l544:
+ position++
+ goto l544
+ l543:
position, tokenIndex = position543, tokenIndex543
+ }
+ l544:
+ {
+ position545, tokenIndex545 := position, tokenIndex
if !_rules[ruleOffset]() {
- goto l540
+ goto l546
+ }
+ if !_rules[ruleOffset]() {
+ goto l546
+ }
+ goto l545
+ l546:
+ position, tokenIndex = position545, tokenIndex545
+ if !_rules[ruleOffset]() {
+ goto l542
}
}
- l543:
- goto l529
- l540:
- position, tokenIndex = position529, tokenIndex529
+ l545:
+ goto l531
+ l542:
+ position, tokenIndex = position531, tokenIndex531
if buffer[position] != rune('#') {
- goto l545
+ goto l547
}
position++
if !_rules[ruleOffset]() {
- goto l545
+ goto l547
}
{
- position546, tokenIndex546 := position, tokenIndex
+ position548, tokenIndex548 := position, tokenIndex
if buffer[position] != rune('*') {
- goto l546
+ goto l548
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l546
+ goto l548
}
position++
- l548:
+ l550:
{
- position549, tokenIndex549 := position, tokenIndex
+ position551, tokenIndex551 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l549
+ goto l551
}
position++
- goto l548
- l549:
- position, tokenIndex = position549, tokenIndex549
+ goto l550
+ l551:
+ position, tokenIndex = position551, tokenIndex551
}
{
- position550, tokenIndex550 := position, tokenIndex
+ position552, tokenIndex552 := position, tokenIndex
if buffer[position] != rune('-') {
- goto l550
+ goto l552
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l550
+ goto l552
}
position++
- l552:
+ l554:
{
- position553, tokenIndex553 := position, tokenIndex
+ position555, tokenIndex555 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l553
+ goto l555
}
position++
- goto l552
- l553:
- position, tokenIndex = position553, tokenIndex553
+ goto l554
+ l555:
+ position, tokenIndex = position555, tokenIndex555
}
- goto l551
- l550:
- position, tokenIndex = position550, tokenIndex550
+ goto l553
+ l552:
+ position, tokenIndex = position552, tokenIndex552
}
- l551:
- goto l547
- l546:
- position, tokenIndex = position546, tokenIndex546
+ l553:
+ goto l549
+ l548:
+ position, tokenIndex = position548, tokenIndex548
}
+ l549:
+ goto l531
l547:
- goto l529
- l545:
- position, tokenIndex = position529, tokenIndex529
+ position, tokenIndex = position531, tokenIndex531
if buffer[position] != rune('#') {
- goto l554
- }
- position++
- {
- position555, tokenIndex555 := position, tokenIndex
- if buffer[position] != rune('~') {
- goto l555
- }
- position++
goto l556
- l555:
- position, tokenIndex = position555, tokenIndex555
- }
- l556:
- if buffer[position] != rune('(') {
- goto l554
- }
- position++
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l554
}
position++
{
position557, tokenIndex557 := position, tokenIndex
- if !_rules[ruleWS]() {
+ if buffer[position] != rune('~') {
goto l557
}
+ position++
goto l558
l557:
position, tokenIndex = position557, tokenIndex557
}
l558:
- if buffer[position] != rune('<') {
- goto l554
+ if buffer[position] != rune('(') {
+ goto l556
}
position++
- if buffer[position] != rune('<') {
- goto l554
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l556
}
position++
{
@@ -4482,1506 +4471,1514 @@
position, tokenIndex = position559, tokenIndex559
}
l560:
+ if buffer[position] != rune('<') {
+ goto l556
+ }
+ position++
+ if buffer[position] != rune('<') {
+ goto l556
+ }
+ position++
+ {
+ position561, tokenIndex561 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l561
+ }
+ goto l562
+ l561:
+ position, tokenIndex = position561, tokenIndex561
+ }
+ l562:
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l554
+ goto l556
}
position++
if buffer[position] != rune(')') {
- goto l554
+ goto l556
}
position++
- goto l529
- l554:
- position, tokenIndex = position529, tokenIndex529
+ goto l531
+ l556:
+ position, tokenIndex = position531, tokenIndex531
if !_rules[ruleARMRegister]() {
- goto l527
+ goto l529
}
}
- l529:
+ l531:
{
- position561, tokenIndex561 := position, tokenIndex
+ position563, tokenIndex563 := position, tokenIndex
{
- position562, tokenIndex562 := position, tokenIndex
+ position564, tokenIndex564 := position, tokenIndex
if buffer[position] != rune('f') {
- goto l563
- }
- position++
- goto l562
- l563:
- position, tokenIndex = position562, tokenIndex562
- if buffer[position] != rune('b') {
- goto l564
- }
- position++
- goto l562
- l564:
- position, tokenIndex = position562, tokenIndex562
- if buffer[position] != rune(':') {
goto l565
}
position++
- goto l562
+ goto l564
l565:
- position, tokenIndex = position562, tokenIndex562
- if buffer[position] != rune('(') {
+ position, tokenIndex = position564, tokenIndex564
+ if buffer[position] != rune('b') {
goto l566
}
position++
- goto l562
+ goto l564
l566:
- position, tokenIndex = position562, tokenIndex562
- if buffer[position] != rune('+') {
+ position, tokenIndex = position564, tokenIndex564
+ if buffer[position] != rune(':') {
goto l567
}
position++
- goto l562
+ goto l564
l567:
- position, tokenIndex = position562, tokenIndex562
+ position, tokenIndex = position564, tokenIndex564
+ if buffer[position] != rune('(') {
+ goto l568
+ }
+ position++
+ goto l564
+ l568:
+ position, tokenIndex = position564, tokenIndex564
+ if buffer[position] != rune('+') {
+ goto l569
+ }
+ position++
+ goto l564
+ l569:
+ position, tokenIndex = position564, tokenIndex564
if buffer[position] != rune('-') {
- goto l561
+ goto l563
}
position++
}
- l562:
- goto l527
- l561:
- position, tokenIndex = position561, tokenIndex561
+ l564:
+ goto l529
+ l563:
+ position, tokenIndex = position563, tokenIndex563
}
- add(ruleRegisterOrConstant, position528)
+ add(ruleRegisterOrConstant, position530)
}
return true
- l527:
- position, tokenIndex = position527, tokenIndex527
+ l529:
+ position, tokenIndex = position529, tokenIndex529
return false
},
/* 40 ARMConstantTweak <- <(((('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('s' / 'S') ('x' / 'X') ('t' / 'T') ('w' / 'W')) / (('s' / 'S') ('x' / 'X') ('t' / 'T') ('b' / 'B')) / (('u' / 'U') ('x' / 'X') ('t' / 'T') ('w' / 'W')) / (('u' / 'U') ('x' / 'X') ('t' / 'T') ('b' / 'B')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R'))) (WS '#' Offset)?)> */
func() bool {
- position568, tokenIndex568 := position, tokenIndex
+ position570, tokenIndex570 := position, tokenIndex
{
- position569 := position
+ position571 := position
{
- position570, tokenIndex570 := position, tokenIndex
- {
- position572, tokenIndex572 := position, tokenIndex
- if buffer[position] != rune('l') {
- goto l573
- }
- position++
- goto l572
- l573:
- position, tokenIndex = position572, tokenIndex572
- if buffer[position] != rune('L') {
- goto l571
- }
- position++
- }
- l572:
+ position572, tokenIndex572 := position, tokenIndex
{
position574, tokenIndex574 := position, tokenIndex
- if buffer[position] != rune('s') {
+ if buffer[position] != rune('l') {
goto l575
}
position++
goto l574
l575:
position, tokenIndex = position574, tokenIndex574
- if buffer[position] != rune('S') {
- goto l571
+ if buffer[position] != rune('L') {
+ goto l573
}
position++
}
l574:
{
position576, tokenIndex576 := position, tokenIndex
- if buffer[position] != rune('l') {
+ if buffer[position] != rune('s') {
goto l577
}
position++
goto l576
l577:
position, tokenIndex = position576, tokenIndex576
- if buffer[position] != rune('L') {
- goto l571
+ if buffer[position] != rune('S') {
+ goto l573
}
position++
}
l576:
- goto l570
- l571:
- position, tokenIndex = position570, tokenIndex570
{
- position579, tokenIndex579 := position, tokenIndex
- if buffer[position] != rune('s') {
- goto l580
+ position578, tokenIndex578 := position, tokenIndex
+ if buffer[position] != rune('l') {
+ goto l579
}
position++
- goto l579
- l580:
- position, tokenIndex = position579, tokenIndex579
- if buffer[position] != rune('S') {
- goto l578
+ goto l578
+ l579:
+ position, tokenIndex = position578, tokenIndex578
+ if buffer[position] != rune('L') {
+ goto l573
}
position++
}
- l579:
+ l578:
+ goto l572
+ l573:
+ position, tokenIndex = position572, tokenIndex572
{
position581, tokenIndex581 := position, tokenIndex
- if buffer[position] != rune('x') {
+ if buffer[position] != rune('s') {
goto l582
}
position++
goto l581
l582:
position, tokenIndex = position581, tokenIndex581
- if buffer[position] != rune('X') {
- goto l578
+ if buffer[position] != rune('S') {
+ goto l580
}
position++
}
l581:
{
position583, tokenIndex583 := position, tokenIndex
- if buffer[position] != rune('t') {
+ if buffer[position] != rune('x') {
goto l584
}
position++
goto l583
l584:
position, tokenIndex = position583, tokenIndex583
- if buffer[position] != rune('T') {
- goto l578
+ if buffer[position] != rune('X') {
+ goto l580
}
position++
}
l583:
{
position585, tokenIndex585 := position, tokenIndex
- if buffer[position] != rune('w') {
+ if buffer[position] != rune('t') {
goto l586
}
position++
goto l585
l586:
position, tokenIndex = position585, tokenIndex585
- if buffer[position] != rune('W') {
- goto l578
+ if buffer[position] != rune('T') {
+ goto l580
}
position++
}
l585:
- goto l570
- l578:
- position, tokenIndex = position570, tokenIndex570
{
- position588, tokenIndex588 := position, tokenIndex
- if buffer[position] != rune('s') {
- goto l589
+ position587, tokenIndex587 := position, tokenIndex
+ if buffer[position] != rune('w') {
+ goto l588
}
position++
- goto l588
- l589:
- position, tokenIndex = position588, tokenIndex588
- if buffer[position] != rune('S') {
- goto l587
+ goto l587
+ l588:
+ position, tokenIndex = position587, tokenIndex587
+ if buffer[position] != rune('W') {
+ goto l580
}
position++
}
- l588:
+ l587:
+ goto l572
+ l580:
+ position, tokenIndex = position572, tokenIndex572
{
position590, tokenIndex590 := position, tokenIndex
- if buffer[position] != rune('x') {
+ if buffer[position] != rune('s') {
goto l591
}
position++
goto l590
l591:
position, tokenIndex = position590, tokenIndex590
- if buffer[position] != rune('X') {
- goto l587
+ if buffer[position] != rune('S') {
+ goto l589
}
position++
}
l590:
{
position592, tokenIndex592 := position, tokenIndex
- if buffer[position] != rune('t') {
+ if buffer[position] != rune('x') {
goto l593
}
position++
goto l592
l593:
position, tokenIndex = position592, tokenIndex592
- if buffer[position] != rune('T') {
- goto l587
+ if buffer[position] != rune('X') {
+ goto l589
}
position++
}
l592:
{
position594, tokenIndex594 := position, tokenIndex
- if buffer[position] != rune('b') {
+ if buffer[position] != rune('t') {
goto l595
}
position++
goto l594
l595:
position, tokenIndex = position594, tokenIndex594
- if buffer[position] != rune('B') {
- goto l587
+ if buffer[position] != rune('T') {
+ goto l589
}
position++
}
l594:
- goto l570
- l587:
- position, tokenIndex = position570, tokenIndex570
{
- position597, tokenIndex597 := position, tokenIndex
- if buffer[position] != rune('u') {
- goto l598
+ position596, tokenIndex596 := position, tokenIndex
+ if buffer[position] != rune('b') {
+ goto l597
}
position++
- goto l597
- l598:
- position, tokenIndex = position597, tokenIndex597
- if buffer[position] != rune('U') {
- goto l596
+ goto l596
+ l597:
+ position, tokenIndex = position596, tokenIndex596
+ if buffer[position] != rune('B') {
+ goto l589
}
position++
}
- l597:
+ l596:
+ goto l572
+ l589:
+ position, tokenIndex = position572, tokenIndex572
{
position599, tokenIndex599 := position, tokenIndex
- if buffer[position] != rune('x') {
+ if buffer[position] != rune('u') {
goto l600
}
position++
goto l599
l600:
position, tokenIndex = position599, tokenIndex599
- if buffer[position] != rune('X') {
- goto l596
+ if buffer[position] != rune('U') {
+ goto l598
}
position++
}
l599:
{
position601, tokenIndex601 := position, tokenIndex
- if buffer[position] != rune('t') {
+ if buffer[position] != rune('x') {
goto l602
}
position++
goto l601
l602:
position, tokenIndex = position601, tokenIndex601
- if buffer[position] != rune('T') {
- goto l596
+ if buffer[position] != rune('X') {
+ goto l598
}
position++
}
l601:
{
position603, tokenIndex603 := position, tokenIndex
- if buffer[position] != rune('w') {
+ if buffer[position] != rune('t') {
goto l604
}
position++
goto l603
l604:
position, tokenIndex = position603, tokenIndex603
- if buffer[position] != rune('W') {
- goto l596
+ if buffer[position] != rune('T') {
+ goto l598
}
position++
}
l603:
- goto l570
- l596:
- position, tokenIndex = position570, tokenIndex570
{
- position606, tokenIndex606 := position, tokenIndex
- if buffer[position] != rune('u') {
- goto l607
+ position605, tokenIndex605 := position, tokenIndex
+ if buffer[position] != rune('w') {
+ goto l606
}
position++
- goto l606
- l607:
- position, tokenIndex = position606, tokenIndex606
- if buffer[position] != rune('U') {
- goto l605
+ goto l605
+ l606:
+ position, tokenIndex = position605, tokenIndex605
+ if buffer[position] != rune('W') {
+ goto l598
}
position++
}
- l606:
+ l605:
+ goto l572
+ l598:
+ position, tokenIndex = position572, tokenIndex572
{
position608, tokenIndex608 := position, tokenIndex
- if buffer[position] != rune('x') {
+ if buffer[position] != rune('u') {
goto l609
}
position++
goto l608
l609:
position, tokenIndex = position608, tokenIndex608
- if buffer[position] != rune('X') {
- goto l605
+ if buffer[position] != rune('U') {
+ goto l607
}
position++
}
l608:
{
position610, tokenIndex610 := position, tokenIndex
- if buffer[position] != rune('t') {
+ if buffer[position] != rune('x') {
goto l611
}
position++
goto l610
l611:
position, tokenIndex = position610, tokenIndex610
- if buffer[position] != rune('T') {
- goto l605
+ if buffer[position] != rune('X') {
+ goto l607
}
position++
}
l610:
{
position612, tokenIndex612 := position, tokenIndex
- if buffer[position] != rune('b') {
+ if buffer[position] != rune('t') {
goto l613
}
position++
goto l612
l613:
position, tokenIndex = position612, tokenIndex612
- if buffer[position] != rune('B') {
- goto l605
+ if buffer[position] != rune('T') {
+ goto l607
}
position++
}
l612:
- goto l570
- l605:
- position, tokenIndex = position570, tokenIndex570
{
- position615, tokenIndex615 := position, tokenIndex
- if buffer[position] != rune('l') {
- goto l616
+ position614, tokenIndex614 := position, tokenIndex
+ if buffer[position] != rune('b') {
+ goto l615
}
position++
- goto l615
- l616:
- position, tokenIndex = position615, tokenIndex615
- if buffer[position] != rune('L') {
- goto l614
+ goto l614
+ l615:
+ position, tokenIndex = position614, tokenIndex614
+ if buffer[position] != rune('B') {
+ goto l607
}
position++
}
- l615:
+ l614:
+ goto l572
+ l607:
+ position, tokenIndex = position572, tokenIndex572
{
position617, tokenIndex617 := position, tokenIndex
- if buffer[position] != rune('s') {
+ if buffer[position] != rune('l') {
goto l618
}
position++
goto l617
l618:
position, tokenIndex = position617, tokenIndex617
- if buffer[position] != rune('S') {
- goto l614
+ if buffer[position] != rune('L') {
+ goto l616
}
position++
}
l617:
{
position619, tokenIndex619 := position, tokenIndex
- if buffer[position] != rune('r') {
+ if buffer[position] != rune('s') {
goto l620
}
position++
goto l619
l620:
position, tokenIndex = position619, tokenIndex619
- if buffer[position] != rune('R') {
- goto l614
+ if buffer[position] != rune('S') {
+ goto l616
}
position++
}
l619:
- goto l570
- l614:
- position, tokenIndex = position570, tokenIndex570
{
- position622, tokenIndex622 := position, tokenIndex
+ position621, tokenIndex621 := position, tokenIndex
if buffer[position] != rune('r') {
- goto l623
+ goto l622
}
position++
- goto l622
- l623:
- position, tokenIndex = position622, tokenIndex622
+ goto l621
+ l622:
+ position, tokenIndex = position621, tokenIndex621
if buffer[position] != rune('R') {
- goto l621
+ goto l616
}
position++
}
- l622:
+ l621:
+ goto l572
+ l616:
+ position, tokenIndex = position572, tokenIndex572
{
position624, tokenIndex624 := position, tokenIndex
- if buffer[position] != rune('o') {
+ if buffer[position] != rune('r') {
goto l625
}
position++
goto l624
l625:
position, tokenIndex = position624, tokenIndex624
- if buffer[position] != rune('O') {
- goto l621
+ if buffer[position] != rune('R') {
+ goto l623
}
position++
}
l624:
{
position626, tokenIndex626 := position, tokenIndex
- if buffer[position] != rune('r') {
+ if buffer[position] != rune('o') {
goto l627
}
position++
goto l626
l627:
position, tokenIndex = position626, tokenIndex626
- if buffer[position] != rune('R') {
- goto l621
+ if buffer[position] != rune('O') {
+ goto l623
}
position++
}
l626:
- goto l570
- l621:
- position, tokenIndex = position570, tokenIndex570
{
position628, tokenIndex628 := position, tokenIndex
- if buffer[position] != rune('a') {
+ if buffer[position] != rune('r') {
goto l629
}
position++
goto l628
l629:
position, tokenIndex = position628, tokenIndex628
- if buffer[position] != rune('A') {
- goto l568
+ if buffer[position] != rune('R') {
+ goto l623
}
position++
}
l628:
+ goto l572
+ l623:
+ position, tokenIndex = position572, tokenIndex572
{
position630, tokenIndex630 := position, tokenIndex
- if buffer[position] != rune('s') {
+ if buffer[position] != rune('a') {
goto l631
}
position++
goto l630
l631:
position, tokenIndex = position630, tokenIndex630
- if buffer[position] != rune('S') {
- goto l568
+ if buffer[position] != rune('A') {
+ goto l570
}
position++
}
l630:
{
position632, tokenIndex632 := position, tokenIndex
- if buffer[position] != rune('r') {
+ if buffer[position] != rune('s') {
goto l633
}
position++
goto l632
l633:
position, tokenIndex = position632, tokenIndex632
- if buffer[position] != rune('R') {
- goto l568
+ if buffer[position] != rune('S') {
+ goto l570
}
position++
}
l632:
- }
- l570:
- {
- position634, tokenIndex634 := position, tokenIndex
- if !_rules[ruleWS]() {
+ {
+ position634, tokenIndex634 := position, tokenIndex
+ if buffer[position] != rune('r') {
+ goto l635
+ }
+ position++
goto l634
+ l635:
+ position, tokenIndex = position634, tokenIndex634
+ if buffer[position] != rune('R') {
+ goto l570
+ }
+ position++
+ }
+ l634:
+ }
+ l572:
+ {
+ position636, tokenIndex636 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l636
}
if buffer[position] != rune('#') {
- goto l634
+ goto l636
}
position++
if !_rules[ruleOffset]() {
- goto l634
+ goto l636
}
- goto l635
- l634:
- position, tokenIndex = position634, tokenIndex634
+ goto l637
+ l636:
+ position, tokenIndex = position636, tokenIndex636
}
- l635:
- add(ruleARMConstantTweak, position569)
+ l637:
+ add(ruleARMConstantTweak, position571)
}
return true
- l568:
- position, tokenIndex = position568, tokenIndex568
+ l570:
+ position, tokenIndex = position570, tokenIndex570
return false
},
/* 41 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / ARMVectorRegister / ('{' WS? ARMVectorRegister (',' WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */
func() bool {
- position636, tokenIndex636 := position, tokenIndex
+ position638, tokenIndex638 := position, tokenIndex
{
- position637 := position
+ position639 := position
{
- position638, tokenIndex638 := position, tokenIndex
- {
- position640, tokenIndex640 := position, tokenIndex
- if buffer[position] != rune('s') {
- goto l641
- }
- position++
- goto l640
- l641:
- position, tokenIndex = position640, tokenIndex640
- if buffer[position] != rune('S') {
- goto l639
- }
- position++
- }
- l640:
+ position640, tokenIndex640 := position, tokenIndex
{
position642, tokenIndex642 := position, tokenIndex
- if buffer[position] != rune('p') {
+ if buffer[position] != rune('s') {
goto l643
}
position++
goto l642
l643:
position, tokenIndex = position642, tokenIndex642
- if buffer[position] != rune('P') {
- goto l639
+ if buffer[position] != rune('S') {
+ goto l641
}
position++
}
l642:
- goto l638
- l639:
- position, tokenIndex = position638, tokenIndex638
{
- position645, tokenIndex645 := position, tokenIndex
+ position644, tokenIndex644 := position, tokenIndex
+ if buffer[position] != rune('p') {
+ goto l645
+ }
+ position++
+ goto l644
+ l645:
+ position, tokenIndex = position644, tokenIndex644
+ if buffer[position] != rune('P') {
+ goto l641
+ }
+ position++
+ }
+ l644:
+ goto l640
+ l641:
+ position, tokenIndex = position640, tokenIndex640
+ {
+ position647, tokenIndex647 := position, tokenIndex
if buffer[position] != rune('x') {
- goto l646
- }
- position++
- goto l645
- l646:
- position, tokenIndex = position645, tokenIndex645
- if buffer[position] != rune('w') {
- goto l647
- }
- position++
- goto l645
- l647:
- position, tokenIndex = position645, tokenIndex645
- if buffer[position] != rune('d') {
goto l648
}
position++
- goto l645
+ goto l647
l648:
- position, tokenIndex = position645, tokenIndex645
- if buffer[position] != rune('q') {
+ position, tokenIndex = position647, tokenIndex647
+ if buffer[position] != rune('w') {
goto l649
}
position++
- goto l645
+ goto l647
l649:
- position, tokenIndex = position645, tokenIndex645
- if buffer[position] != rune('s') {
- goto l644
- }
- position++
- }
- l645:
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l644
- }
- position++
- {
- position650, tokenIndex650 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
+ position, tokenIndex = position647, tokenIndex647
+ if buffer[position] != rune('d') {
goto l650
}
position++
- goto l651
+ goto l647
l650:
- position, tokenIndex = position650, tokenIndex650
- }
- l651:
- goto l638
- l644:
- position, tokenIndex = position638, tokenIndex638
- {
- position653, tokenIndex653 := position, tokenIndex
- if buffer[position] != rune('x') {
- goto l654
+ position, tokenIndex = position647, tokenIndex647
+ if buffer[position] != rune('q') {
+ goto l651
}
position++
- goto l653
- l654:
- position, tokenIndex = position653, tokenIndex653
- if buffer[position] != rune('X') {
+ goto l647
+ l651:
+ position, tokenIndex = position647, tokenIndex647
+ if buffer[position] != rune('s') {
+ goto l646
+ }
+ position++
+ }
+ l647:
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l646
+ }
+ position++
+ {
+ position652, tokenIndex652 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l652
}
position++
+ goto l653
+ l652:
+ position, tokenIndex = position652, tokenIndex652
}
l653:
+ goto l640
+ l646:
+ position, tokenIndex = position640, tokenIndex640
{
position655, tokenIndex655 := position, tokenIndex
- if buffer[position] != rune('z') {
+ if buffer[position] != rune('x') {
goto l656
}
position++
goto l655
l656:
position, tokenIndex = position655, tokenIndex655
- if buffer[position] != rune('Z') {
- goto l652
+ if buffer[position] != rune('X') {
+ goto l654
}
position++
}
l655:
{
position657, tokenIndex657 := position, tokenIndex
- if buffer[position] != rune('r') {
+ if buffer[position] != rune('z') {
goto l658
}
position++
goto l657
l658:
position, tokenIndex = position657, tokenIndex657
- if buffer[position] != rune('R') {
- goto l652
+ if buffer[position] != rune('Z') {
+ goto l654
}
position++
}
l657:
- goto l638
- l652:
- position, tokenIndex = position638, tokenIndex638
{
- position660, tokenIndex660 := position, tokenIndex
- if buffer[position] != rune('w') {
- goto l661
+ position659, tokenIndex659 := position, tokenIndex
+ if buffer[position] != rune('r') {
+ goto l660
}
position++
- goto l660
- l661:
- position, tokenIndex = position660, tokenIndex660
- if buffer[position] != rune('W') {
- goto l659
+ goto l659
+ l660:
+ position, tokenIndex = position659, tokenIndex659
+ if buffer[position] != rune('R') {
+ goto l654
}
position++
}
- l660:
+ l659:
+ goto l640
+ l654:
+ position, tokenIndex = position640, tokenIndex640
{
position662, tokenIndex662 := position, tokenIndex
- if buffer[position] != rune('z') {
+ if buffer[position] != rune('w') {
goto l663
}
position++
goto l662
l663:
position, tokenIndex = position662, tokenIndex662
- if buffer[position] != rune('Z') {
- goto l659
+ if buffer[position] != rune('W') {
+ goto l661
}
position++
}
l662:
{
position664, tokenIndex664 := position, tokenIndex
- if buffer[position] != rune('r') {
+ if buffer[position] != rune('z') {
goto l665
}
position++
goto l664
l665:
position, tokenIndex = position664, tokenIndex664
- if buffer[position] != rune('R') {
- goto l659
+ if buffer[position] != rune('Z') {
+ goto l661
}
position++
}
l664:
- goto l638
- l659:
- position, tokenIndex = position638, tokenIndex638
- if !_rules[ruleARMVectorRegister]() {
- goto l666
- }
- goto l638
- l666:
- position, tokenIndex = position638, tokenIndex638
- if buffer[position] != rune('{') {
- goto l636
- }
- position++
{
- position667, tokenIndex667 := position, tokenIndex
- if !_rules[ruleWS]() {
+ position666, tokenIndex666 := position, tokenIndex
+ if buffer[position] != rune('r') {
goto l667
}
- goto l668
+ position++
+ goto l666
l667:
- position, tokenIndex = position667, tokenIndex667
- }
- l668:
- if !_rules[ruleARMVectorRegister]() {
- goto l636
- }
- l669:
- {
- position670, tokenIndex670 := position, tokenIndex
- if buffer[position] != rune(',') {
- goto l670
+ position, tokenIndex = position666, tokenIndex666
+ if buffer[position] != rune('R') {
+ goto l661
}
position++
- {
- position671, tokenIndex671 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l671
- }
- goto l672
- l671:
- position, tokenIndex = position671, tokenIndex671
- }
- l672:
- if !_rules[ruleARMVectorRegister]() {
- goto l670
- }
- goto l669
- l670:
- position, tokenIndex = position670, tokenIndex670
}
- {
- position673, tokenIndex673 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l673
- }
- goto l674
- l673:
- position, tokenIndex = position673, tokenIndex673
+ l666:
+ goto l640
+ l661:
+ position, tokenIndex = position640, tokenIndex640
+ if !_rules[ruleARMVectorRegister]() {
+ goto l668
}
- l674:
- if buffer[position] != rune('}') {
- goto l636
+ goto l640
+ l668:
+ position, tokenIndex = position640, tokenIndex640
+ if buffer[position] != rune('{') {
+ goto l638
}
position++
{
- position675, tokenIndex675 := position, tokenIndex
- if buffer[position] != rune('[') {
- goto l675
+ position669, tokenIndex669 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l669
}
- position++
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l675
+ goto l670
+ l669:
+ position, tokenIndex = position669, tokenIndex669
+ }
+ l670:
+ if !_rules[ruleARMVectorRegister]() {
+ goto l638
+ }
+ l671:
+ {
+ position672, tokenIndex672 := position, tokenIndex
+ if buffer[position] != rune(',') {
+ goto l672
}
position++
{
- position677, tokenIndex677 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l677
+ position673, tokenIndex673 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l673
}
- position++
- goto l678
- l677:
- position, tokenIndex = position677, tokenIndex677
+ goto l674
+ l673:
+ position, tokenIndex = position673, tokenIndex673
}
- l678:
- if buffer[position] != rune(']') {
+ l674:
+ if !_rules[ruleARMVectorRegister]() {
+ goto l672
+ }
+ goto l671
+ l672:
+ position, tokenIndex = position672, tokenIndex672
+ }
+ {
+ position675, tokenIndex675 := position, tokenIndex
+ if !_rules[ruleWS]() {
goto l675
}
- position++
goto l676
l675:
position, tokenIndex = position675, tokenIndex675
}
l676:
+ if buffer[position] != rune('}') {
+ goto l638
+ }
+ position++
+ {
+ position677, tokenIndex677 := position, tokenIndex
+ if buffer[position] != rune('[') {
+ goto l677
+ }
+ position++
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l677
+ }
+ position++
+ {
+ position679, tokenIndex679 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l679
+ }
+ position++
+ goto l680
+ l679:
+ position, tokenIndex = position679, tokenIndex679
+ }
+ l680:
+ if buffer[position] != rune(']') {
+ goto l677
+ }
+ position++
+ goto l678
+ l677:
+ position, tokenIndex = position677, tokenIndex677
+ }
+ l678:
}
- l638:
- add(ruleARMRegister, position637)
+ l640:
+ add(ruleARMRegister, position639)
}
return true
- l636:
- position, tokenIndex = position636, tokenIndex636
+ l638:
+ position, tokenIndex = position638, tokenIndex638
return false
},
/* 42 ARMVectorRegister <- <(('v' / 'V') [0-9] [0-9]? ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */
func() bool {
- position679, tokenIndex679 := position, tokenIndex
+ position681, tokenIndex681 := position, tokenIndex
{
- position680 := position
+ position682 := position
{
- position681, tokenIndex681 := position, tokenIndex
+ position683, tokenIndex683 := position, tokenIndex
if buffer[position] != rune('v') {
- goto l682
+ goto l684
}
position++
- goto l681
- l682:
- position, tokenIndex = position681, tokenIndex681
+ goto l683
+ l684:
+ position, tokenIndex = position683, tokenIndex683
if buffer[position] != rune('V') {
- goto l679
+ goto l681
}
position++
}
- l681:
+ l683:
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l679
+ goto l681
}
position++
{
- position683, tokenIndex683 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l683
- }
- position++
- goto l684
- l683:
- position, tokenIndex = position683, tokenIndex683
- }
- l684:
- {
position685, tokenIndex685 := position, tokenIndex
- if buffer[position] != rune('.') {
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l685
}
position++
- l687:
- {
- position688, tokenIndex688 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l688
- }
- position++
- goto l687
- l688:
- position, tokenIndex = position688, tokenIndex688
- }
- {
- position689, tokenIndex689 := position, tokenIndex
- if buffer[position] != rune('b') {
- goto l690
- }
- position++
- goto l689
- l690:
- position, tokenIndex = position689, tokenIndex689
- if buffer[position] != rune('s') {
- goto l691
- }
- position++
- goto l689
- l691:
- position, tokenIndex = position689, tokenIndex689
- if buffer[position] != rune('d') {
- goto l692
- }
- position++
- goto l689
- l692:
- position, tokenIndex = position689, tokenIndex689
- if buffer[position] != rune('h') {
- goto l693
- }
- position++
- goto l689
- l693:
- position, tokenIndex = position689, tokenIndex689
- if buffer[position] != rune('q') {
- goto l685
- }
- position++
- }
- l689:
- {
- position694, tokenIndex694 := position, tokenIndex
- if buffer[position] != rune('[') {
- goto l694
- }
- position++
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l694
- }
- position++
- {
- position696, tokenIndex696 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l696
- }
- position++
- goto l697
- l696:
- position, tokenIndex = position696, tokenIndex696
- }
- l697:
- if buffer[position] != rune(']') {
- goto l694
- }
- position++
- goto l695
- l694:
- position, tokenIndex = position694, tokenIndex694
- }
- l695:
goto l686
l685:
position, tokenIndex = position685, tokenIndex685
}
l686:
- add(ruleARMVectorRegister, position680)
+ {
+ position687, tokenIndex687 := position, tokenIndex
+ if buffer[position] != rune('.') {
+ goto l687
+ }
+ position++
+ l689:
+ {
+ position690, tokenIndex690 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l690
+ }
+ position++
+ goto l689
+ l690:
+ position, tokenIndex = position690, tokenIndex690
+ }
+ {
+ position691, tokenIndex691 := position, tokenIndex
+ if buffer[position] != rune('b') {
+ goto l692
+ }
+ position++
+ goto l691
+ l692:
+ position, tokenIndex = position691, tokenIndex691
+ if buffer[position] != rune('s') {
+ goto l693
+ }
+ position++
+ goto l691
+ l693:
+ position, tokenIndex = position691, tokenIndex691
+ if buffer[position] != rune('d') {
+ goto l694
+ }
+ position++
+ goto l691
+ l694:
+ position, tokenIndex = position691, tokenIndex691
+ if buffer[position] != rune('h') {
+ goto l695
+ }
+ position++
+ goto l691
+ l695:
+ position, tokenIndex = position691, tokenIndex691
+ if buffer[position] != rune('q') {
+ goto l687
+ }
+ position++
+ }
+ l691:
+ {
+ position696, tokenIndex696 := position, tokenIndex
+ if buffer[position] != rune('[') {
+ goto l696
+ }
+ position++
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l696
+ }
+ position++
+ {
+ position698, tokenIndex698 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l698
+ }
+ position++
+ goto l699
+ l698:
+ position, tokenIndex = position698, tokenIndex698
+ }
+ l699:
+ if buffer[position] != rune(']') {
+ goto l696
+ }
+ position++
+ goto l697
+ l696:
+ position, tokenIndex = position696, tokenIndex696
+ }
+ l697:
+ goto l688
+ l687:
+ position, tokenIndex = position687, tokenIndex687
+ }
+ l688:
+ add(ruleARMVectorRegister, position682)
}
return true
- l679:
- position, tokenIndex = position679, tokenIndex679
+ l681:
+ position, tokenIndex = position681, tokenIndex681
return false
},
/* 43 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */
func() bool {
- position698, tokenIndex698 := position, tokenIndex
+ position700, tokenIndex700 := position, tokenIndex
{
- position699 := position
+ position701 := position
{
- position700, tokenIndex700 := position, tokenIndex
+ position702, tokenIndex702 := position, tokenIndex
if !_rules[ruleSymbolRef]() {
- goto l701
- }
- if !_rules[ruleBaseIndexScale]() {
- goto l701
- }
- goto l700
- l701:
- position, tokenIndex = position700, tokenIndex700
- if !_rules[ruleSymbolRef]() {
- goto l702
- }
- goto l700
- l702:
- position, tokenIndex = position700, tokenIndex700
- if !_rules[ruleLow12BitsSymbolRef]() {
goto l703
}
- goto l700
- l703:
- position, tokenIndex = position700, tokenIndex700
- l705:
- {
- position706, tokenIndex706 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l706
- }
- goto l705
- l706:
- position, tokenIndex = position706, tokenIndex706
- }
if !_rules[ruleBaseIndexScale]() {
+ goto l703
+ }
+ goto l702
+ l703:
+ position, tokenIndex = position702, tokenIndex702
+ if !_rules[ruleSymbolRef]() {
goto l704
}
- goto l700
+ goto l702
l704:
- position, tokenIndex = position700, tokenIndex700
- if !_rules[ruleSegmentRegister]() {
- goto l707
+ position, tokenIndex = position702, tokenIndex702
+ if !_rules[ruleLow12BitsSymbolRef]() {
+ goto l705
}
- if !_rules[ruleOffset]() {
- goto l707
- }
- if !_rules[ruleBaseIndexScale]() {
- goto l707
- }
- goto l700
+ goto l702
+ l705:
+ position, tokenIndex = position702, tokenIndex702
l707:
- position, tokenIndex = position700, tokenIndex700
- if !_rules[ruleSegmentRegister]() {
- goto l708
+ {
+ position708, tokenIndex708 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l708
+ }
+ goto l707
+ l708:
+ position, tokenIndex = position708, tokenIndex708
}
if !_rules[ruleBaseIndexScale]() {
- goto l708
+ goto l706
}
- goto l700
- l708:
- position, tokenIndex = position700, tokenIndex700
+ goto l702
+ l706:
+ position, tokenIndex = position702, tokenIndex702
if !_rules[ruleSegmentRegister]() {
goto l709
}
if !_rules[ruleOffset]() {
goto l709
}
- goto l700
+ if !_rules[ruleBaseIndexScale]() {
+ goto l709
+ }
+ goto l702
l709:
- position, tokenIndex = position700, tokenIndex700
- if !_rules[ruleARMBaseIndexScale]() {
+ position, tokenIndex = position702, tokenIndex702
+ if !_rules[ruleSegmentRegister]() {
goto l710
}
- goto l700
- l710:
- position, tokenIndex = position700, tokenIndex700
if !_rules[ruleBaseIndexScale]() {
- goto l698
+ goto l710
+ }
+ goto l702
+ l710:
+ position, tokenIndex = position702, tokenIndex702
+ if !_rules[ruleSegmentRegister]() {
+ goto l711
+ }
+ if !_rules[ruleOffset]() {
+ goto l711
+ }
+ goto l702
+ l711:
+ position, tokenIndex = position702, tokenIndex702
+ if !_rules[ruleARMBaseIndexScale]() {
+ goto l712
+ }
+ goto l702
+ l712:
+ position, tokenIndex = position702, tokenIndex702
+ if !_rules[ruleBaseIndexScale]() {
+ goto l700
}
}
- l700:
- add(ruleMemoryRef, position699)
+ l702:
+ add(ruleMemoryRef, position701)
}
return true
- l698:
- position, tokenIndex = position698, tokenIndex698
+ l700:
+ position, tokenIndex = position700, tokenIndex700
return false
},
/* 44 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */
func() bool {
- position711, tokenIndex711 := position, tokenIndex
+ position713, tokenIndex713 := position, tokenIndex
{
- position712 := position
+ position714 := position
{
- position713, tokenIndex713 := position, tokenIndex
- l715:
+ position715, tokenIndex715 := position, tokenIndex
+ l717:
{
- position716, tokenIndex716 := position, tokenIndex
+ position718, tokenIndex718 := position, tokenIndex
if !_rules[ruleOffset]() {
- goto l716
+ goto l718
}
- goto l715
- l716:
- position, tokenIndex = position716, tokenIndex716
+ goto l717
+ l718:
+ position, tokenIndex = position718, tokenIndex718
}
if buffer[position] != rune('+') {
- goto l713
+ goto l715
}
position++
- goto l714
- l713:
- position, tokenIndex = position713, tokenIndex713
+ goto l716
+ l715:
+ position, tokenIndex = position715, tokenIndex715
}
- l714:
+ l716:
{
- position717, tokenIndex717 := position, tokenIndex
+ position719, tokenIndex719 := position, tokenIndex
if !_rules[ruleLocalSymbol]() {
- goto l718
- }
- goto l717
- l718:
- position, tokenIndex = position717, tokenIndex717
- if !_rules[ruleSymbolName]() {
- goto l711
- }
- }
- l717:
- l719:
- {
- position720, tokenIndex720 := position, tokenIndex
- if !_rules[ruleOffset]() {
goto l720
}
goto l719
l720:
- position, tokenIndex = position720, tokenIndex720
+ position, tokenIndex = position719, tokenIndex719
+ if !_rules[ruleSymbolName]() {
+ goto l713
+ }
+ }
+ l719:
+ l721:
+ {
+ position722, tokenIndex722 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l722
+ }
+ goto l721
+ l722:
+ position, tokenIndex = position722, tokenIndex722
}
{
- position721, tokenIndex721 := position, tokenIndex
+ position723, tokenIndex723 := position, tokenIndex
if buffer[position] != rune('@') {
- goto l721
+ goto l723
}
position++
if !_rules[ruleSection]() {
- goto l721
- }
- l723:
- {
- position724, tokenIndex724 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l724
- }
goto l723
- l724:
- position, tokenIndex = position724, tokenIndex724
}
- goto l722
- l721:
- position, tokenIndex = position721, tokenIndex721
+ l725:
+ {
+ position726, tokenIndex726 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l726
+ }
+ goto l725
+ l726:
+ position, tokenIndex = position726, tokenIndex726
+ }
+ goto l724
+ l723:
+ position, tokenIndex = position723, tokenIndex723
}
- l722:
- add(ruleSymbolRef, position712)
+ l724:
+ add(ruleSymbolRef, position714)
}
return true
- l711:
- position, tokenIndex = position711, tokenIndex711
+ l713:
+ position, tokenIndex = position713, tokenIndex713
return false
},
/* 45 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */
func() bool {
- position725, tokenIndex725 := position, tokenIndex
+ position727, tokenIndex727 := position, tokenIndex
{
- position726 := position
+ position728 := position
if buffer[position] != rune(':') {
- goto l725
+ goto l727
}
position++
{
- position727, tokenIndex727 := position, tokenIndex
- if buffer[position] != rune('l') {
- goto l728
- }
- position++
- goto l727
- l728:
- position, tokenIndex = position727, tokenIndex727
- if buffer[position] != rune('L') {
- goto l725
- }
- position++
- }
- l727:
- {
position729, tokenIndex729 := position, tokenIndex
- if buffer[position] != rune('o') {
+ if buffer[position] != rune('l') {
goto l730
}
position++
goto l729
l730:
position, tokenIndex = position729, tokenIndex729
- if buffer[position] != rune('O') {
- goto l725
+ if buffer[position] != rune('L') {
+ goto l727
}
position++
}
l729:
- if buffer[position] != rune('1') {
- goto l725
- }
- position++
- if buffer[position] != rune('2') {
- goto l725
- }
- position++
- if buffer[position] != rune(':') {
- goto l725
- }
- position++
{
position731, tokenIndex731 := position, tokenIndex
- if !_rules[ruleLocalSymbol]() {
+ if buffer[position] != rune('o') {
goto l732
}
+ position++
goto l731
l732:
position, tokenIndex = position731, tokenIndex731
- if !_rules[ruleSymbolName]() {
- goto l725
+ if buffer[position] != rune('O') {
+ goto l727
}
+ position++
}
l731:
+ if buffer[position] != rune('1') {
+ goto l727
+ }
+ position++
+ if buffer[position] != rune('2') {
+ goto l727
+ }
+ position++
+ if buffer[position] != rune(':') {
+ goto l727
+ }
+ position++
{
position733, tokenIndex733 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l733
+ if !_rules[ruleLocalSymbol]() {
+ goto l734
}
- goto l734
- l733:
+ goto l733
+ l734:
position, tokenIndex = position733, tokenIndex733
+ if !_rules[ruleSymbolName]() {
+ goto l727
+ }
}
- l734:
- add(ruleLow12BitsSymbolRef, position726)
+ l733:
+ {
+ position735, tokenIndex735 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l735
+ }
+ goto l736
+ l735:
+ position, tokenIndex = position735, tokenIndex735
+ }
+ l736:
+ add(ruleLow12BitsSymbolRef, position728)
}
return true
- l725:
- position, tokenIndex = position725, tokenIndex725
+ l727:
+ position, tokenIndex = position727, tokenIndex727
return false
},
/* 46 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset ('*' [0-9]+)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */
func() bool {
- position735, tokenIndex735 := position, tokenIndex
+ position737, tokenIndex737 := position, tokenIndex
{
- position736 := position
+ position738 := position
if buffer[position] != rune('[') {
- goto l735
+ goto l737
}
position++
if !_rules[ruleARMRegister]() {
- goto l735
+ goto l737
}
{
- position737, tokenIndex737 := position, tokenIndex
+ position739, tokenIndex739 := position, tokenIndex
if buffer[position] != rune(',') {
- goto l737
+ goto l739
}
position++
{
- position739, tokenIndex739 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l739
- }
- goto l740
- l739:
- position, tokenIndex = position739, tokenIndex739
- }
- l740:
- {
position741, tokenIndex741 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l741
+ }
+ goto l742
+ l741:
+ position, tokenIndex = position741, tokenIndex741
+ }
+ l742:
+ {
+ position743, tokenIndex743 := position, tokenIndex
if buffer[position] != rune('#') {
- goto l742
+ goto l744
}
position++
if !_rules[ruleOffset]() {
- goto l742
+ goto l744
}
{
- position743, tokenIndex743 := position, tokenIndex
+ position745, tokenIndex745 := position, tokenIndex
if buffer[position] != rune('*') {
- goto l743
+ goto l745
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l743
+ goto l745
}
position++
- l745:
+ l747:
{
- position746, tokenIndex746 := position, tokenIndex
+ position748, tokenIndex748 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l746
+ goto l748
}
position++
- goto l745
- l746:
- position, tokenIndex = position746, tokenIndex746
+ goto l747
+ l748:
+ position, tokenIndex = position748, tokenIndex748
}
- goto l744
- l743:
- position, tokenIndex = position743, tokenIndex743
+ goto l746
+ l745:
+ position, tokenIndex = position745, tokenIndex745
}
+ l746:
+ goto l743
l744:
- goto l741
- l742:
- position, tokenIndex = position741, tokenIndex741
+ position, tokenIndex = position743, tokenIndex743
if !_rules[ruleARMGOTLow12]() {
- goto l747
+ goto l749
}
- goto l741
- l747:
- position, tokenIndex = position741, tokenIndex741
+ goto l743
+ l749:
+ position, tokenIndex = position743, tokenIndex743
if !_rules[ruleLow12BitsSymbolRef]() {
- goto l748
+ goto l750
}
- goto l741
- l748:
- position, tokenIndex = position741, tokenIndex741
+ goto l743
+ l750:
+ position, tokenIndex = position743, tokenIndex743
if !_rules[ruleARMRegister]() {
- goto l737
+ goto l739
}
}
- l741:
+ l743:
{
- position749, tokenIndex749 := position, tokenIndex
+ position751, tokenIndex751 := position, tokenIndex
if buffer[position] != rune(',') {
- goto l749
+ goto l751
}
position++
{
- position751, tokenIndex751 := position, tokenIndex
+ position753, tokenIndex753 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l751
+ goto l753
}
- goto l752
- l751:
- position, tokenIndex = position751, tokenIndex751
+ goto l754
+ l753:
+ position, tokenIndex = position753, tokenIndex753
}
- l752:
+ l754:
if !_rules[ruleARMConstantTweak]() {
- goto l749
+ goto l751
}
- goto l750
- l749:
- position, tokenIndex = position749, tokenIndex749
+ goto l752
+ l751:
+ position, tokenIndex = position751, tokenIndex751
}
- l750:
- goto l738
- l737:
- position, tokenIndex = position737, tokenIndex737
+ l752:
+ goto l740
+ l739:
+ position, tokenIndex = position739, tokenIndex739
}
- l738:
+ l740:
if buffer[position] != rune(']') {
- goto l735
+ goto l737
}
position++
{
- position753, tokenIndex753 := position, tokenIndex
+ position755, tokenIndex755 := position, tokenIndex
if !_rules[ruleARMPostincrement]() {
- goto l753
+ goto l755
}
- goto l754
- l753:
- position, tokenIndex = position753, tokenIndex753
+ goto l756
+ l755:
+ position, tokenIndex = position755, tokenIndex755
}
- l754:
- add(ruleARMBaseIndexScale, position736)
+ l756:
+ add(ruleARMBaseIndexScale, position738)
}
return true
- l735:
- position, tokenIndex = position735, tokenIndex735
+ l737:
+ position, tokenIndex = position737, tokenIndex737
return false
},
/* 47 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */
func() bool {
- position755, tokenIndex755 := position, tokenIndex
+ position757, tokenIndex757 := position, tokenIndex
{
- position756 := position
+ position758 := position
if buffer[position] != rune(':') {
- goto l755
+ goto l757
}
position++
{
- position757, tokenIndex757 := position, tokenIndex
- if buffer[position] != rune('g') {
- goto l758
- }
- position++
- goto l757
- l758:
- position, tokenIndex = position757, tokenIndex757
- if buffer[position] != rune('G') {
- goto l755
- }
- position++
- }
- l757:
- {
position759, tokenIndex759 := position, tokenIndex
- if buffer[position] != rune('o') {
+ if buffer[position] != rune('g') {
goto l760
}
position++
goto l759
l760:
position, tokenIndex = position759, tokenIndex759
- if buffer[position] != rune('O') {
- goto l755
+ if buffer[position] != rune('G') {
+ goto l757
}
position++
}
l759:
{
position761, tokenIndex761 := position, tokenIndex
- if buffer[position] != rune('t') {
+ if buffer[position] != rune('o') {
goto l762
}
position++
goto l761
l762:
position, tokenIndex = position761, tokenIndex761
- if buffer[position] != rune('T') {
- goto l755
+ if buffer[position] != rune('O') {
+ goto l757
}
position++
}
l761:
- if buffer[position] != rune('_') {
- goto l755
- }
- position++
{
position763, tokenIndex763 := position, tokenIndex
- if buffer[position] != rune('l') {
+ if buffer[position] != rune('t') {
goto l764
}
position++
goto l763
l764:
position, tokenIndex = position763, tokenIndex763
- if buffer[position] != rune('L') {
- goto l755
+ if buffer[position] != rune('T') {
+ goto l757
}
position++
}
l763:
+ if buffer[position] != rune('_') {
+ goto l757
+ }
+ position++
{
position765, tokenIndex765 := position, tokenIndex
- if buffer[position] != rune('o') {
+ if buffer[position] != rune('l') {
goto l766
}
position++
goto l765
l766:
position, tokenIndex = position765, tokenIndex765
- if buffer[position] != rune('O') {
- goto l755
+ if buffer[position] != rune('L') {
+ goto l757
}
position++
}
l765:
+ {
+ position767, tokenIndex767 := position, tokenIndex
+ if buffer[position] != rune('o') {
+ goto l768
+ }
+ position++
+ goto l767
+ l768:
+ position, tokenIndex = position767, tokenIndex767
+ if buffer[position] != rune('O') {
+ goto l757
+ }
+ position++
+ }
+ l767:
if buffer[position] != rune('1') {
- goto l755
+ goto l757
}
position++
if buffer[position] != rune('2') {
- goto l755
+ goto l757
}
position++
if buffer[position] != rune(':') {
- goto l755
+ goto l757
}
position++
if !_rules[ruleSymbolName]() {
- goto l755
+ goto l757
}
- add(ruleARMGOTLow12, position756)
+ add(ruleARMGOTLow12, position758)
}
return true
- l755:
- position, tokenIndex = position755, tokenIndex755
+ l757:
+ position, tokenIndex = position757, tokenIndex757
return false
},
/* 48 ARMPostincrement <- <'!'> */
func() bool {
- position767, tokenIndex767 := position, tokenIndex
+ position769, tokenIndex769 := position, tokenIndex
{
- position768 := position
+ position770 := position
if buffer[position] != rune('!') {
- goto l767
+ goto l769
}
position++
- add(ruleARMPostincrement, position768)
+ add(ruleARMPostincrement, position770)
}
return true
- l767:
- position, tokenIndex = position767, tokenIndex767
+ l769:
+ position, tokenIndex = position769, tokenIndex769
return false
},
/* 49 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */
func() bool {
- position769, tokenIndex769 := position, tokenIndex
+ position771, tokenIndex771 := position, tokenIndex
{
- position770 := position
+ position772 := position
if buffer[position] != rune('(') {
- goto l769
+ goto l771
}
position++
{
- position771, tokenIndex771 := position, tokenIndex
- if !_rules[ruleRegisterOrConstant]() {
- goto l771
- }
- goto l772
- l771:
- position, tokenIndex = position771, tokenIndex771
- }
- l772:
- {
position773, tokenIndex773 := position, tokenIndex
- if !_rules[ruleWS]() {
+ if !_rules[ruleRegisterOrConstant]() {
goto l773
}
goto l774
@@ -5991,24 +5988,21 @@
l774:
{
position775, tokenIndex775 := position, tokenIndex
- if buffer[position] != rune(',') {
+ if !_rules[ruleWS]() {
goto l775
}
+ goto l776
+ l775:
+ position, tokenIndex = position775, tokenIndex775
+ }
+ l776:
+ {
+ position777, tokenIndex777 := position, tokenIndex
+ if buffer[position] != rune(',') {
+ goto l777
+ }
position++
{
- position777, tokenIndex777 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l777
- }
- goto l778
- l777:
- position, tokenIndex = position777, tokenIndex777
- }
- l778:
- if !_rules[ruleRegisterOrConstant]() {
- goto l775
- }
- {
position779, tokenIndex779 := position, tokenIndex
if !_rules[ruleWS]() {
goto l779
@@ -6018,94 +6012,96 @@
position, tokenIndex = position779, tokenIndex779
}
l780:
+ if !_rules[ruleRegisterOrConstant]() {
+ goto l777
+ }
{
position781, tokenIndex781 := position, tokenIndex
- if buffer[position] != rune(',') {
+ if !_rules[ruleWS]() {
goto l781
}
- position++
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l781
- }
- position++
- l783:
- {
- position784, tokenIndex784 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l784
- }
- position++
- goto l783
- l784:
- position, tokenIndex = position784, tokenIndex784
- }
goto l782
l781:
position, tokenIndex = position781, tokenIndex781
}
l782:
- goto l776
- l775:
- position, tokenIndex = position775, tokenIndex775
+ {
+ position783, tokenIndex783 := position, tokenIndex
+ if buffer[position] != rune(',') {
+ goto l783
+ }
+ position++
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l783
+ }
+ position++
+ l785:
+ {
+ position786, tokenIndex786 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l786
+ }
+ position++
+ goto l785
+ l786:
+ position, tokenIndex = position786, tokenIndex786
+ }
+ goto l784
+ l783:
+ position, tokenIndex = position783, tokenIndex783
+ }
+ l784:
+ goto l778
+ l777:
+ position, tokenIndex = position777, tokenIndex777
}
- l776:
+ l778:
if buffer[position] != rune(')') {
- goto l769
+ goto l771
}
position++
- add(ruleBaseIndexScale, position770)
+ add(ruleBaseIndexScale, position772)
}
return true
- l769:
- position, tokenIndex = position769, tokenIndex769
+ l771:
+ position, tokenIndex = position771, tokenIndex771
return false
},
/* 50 Operator <- <('+' / '-')> */
func() bool {
- position785, tokenIndex785 := position, tokenIndex
+ position787, tokenIndex787 := position, tokenIndex
{
- position786 := position
+ position788 := position
{
- position787, tokenIndex787 := position, tokenIndex
+ position789, tokenIndex789 := position, tokenIndex
if buffer[position] != rune('+') {
- goto l788
+ goto l790
}
position++
- goto l787
- l788:
- position, tokenIndex = position787, tokenIndex787
+ goto l789
+ l790:
+ position, tokenIndex = position789, tokenIndex789
if buffer[position] != rune('-') {
- goto l785
+ goto l787
}
position++
}
- l787:
- add(ruleOperator, position786)
+ l789:
+ add(ruleOperator, position788)
}
return true
- l785:
- position, tokenIndex = position785, tokenIndex785
+ l787:
+ position, tokenIndex = position787, tokenIndex787
return false
},
/* 51 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */
func() bool {
- position789, tokenIndex789 := position, tokenIndex
+ position791, tokenIndex791 := position, tokenIndex
{
- position790 := position
- {
- position791, tokenIndex791 := position, tokenIndex
- if buffer[position] != rune('+') {
- goto l791
- }
- position++
- goto l792
- l791:
- position, tokenIndex = position791, tokenIndex791
- }
- l792:
+ position792 := position
{
position793, tokenIndex793 := position, tokenIndex
- if buffer[position] != rune('-') {
+ if buffer[position] != rune('+') {
goto l793
}
position++
@@ -6116,284 +6112,295 @@
l794:
{
position795, tokenIndex795 := position, tokenIndex
+ if buffer[position] != rune('-') {
+ goto l795
+ }
+ position++
+ goto l796
+ l795:
+ position, tokenIndex = position795, tokenIndex795
+ }
+ l796:
+ {
+ position797, tokenIndex797 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l796
+ goto l798
}
position++
{
- position797, tokenIndex797 := position, tokenIndex
+ position799, tokenIndex799 := position, tokenIndex
if buffer[position] != rune('b') {
+ goto l800
+ }
+ position++
+ goto l799
+ l800:
+ position, tokenIndex = position799, tokenIndex799
+ if buffer[position] != rune('B') {
goto l798
}
position++
- goto l797
- l798:
- position, tokenIndex = position797, tokenIndex797
- if buffer[position] != rune('B') {
- goto l796
- }
- position++
}
- l797:
- {
- position801, tokenIndex801 := position, tokenIndex
- if buffer[position] != rune('0') {
- goto l802
- }
- position++
- goto l801
- l802:
- position, tokenIndex = position801, tokenIndex801
- if buffer[position] != rune('1') {
- goto l796
- }
- position++
- }
- l801:
l799:
{
- position800, tokenIndex800 := position, tokenIndex
+ position803, tokenIndex803 := position, tokenIndex
+ if buffer[position] != rune('0') {
+ goto l804
+ }
+ position++
+ goto l803
+ l804:
+ position, tokenIndex = position803, tokenIndex803
+ if buffer[position] != rune('1') {
+ goto l798
+ }
+ position++
+ }
+ l803:
+ l801:
+ {
+ position802, tokenIndex802 := position, tokenIndex
{
- position803, tokenIndex803 := position, tokenIndex
+ position805, tokenIndex805 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l804
+ goto l806
}
position++
- goto l803
- l804:
- position, tokenIndex = position803, tokenIndex803
+ goto l805
+ l806:
+ position, tokenIndex = position805, tokenIndex805
if buffer[position] != rune('1') {
- goto l800
+ goto l802
}
position++
}
- l803:
- goto l799
- l800:
- position, tokenIndex = position800, tokenIndex800
+ l805:
+ goto l801
+ l802:
+ position, tokenIndex = position802, tokenIndex802
}
- goto l795
- l796:
- position, tokenIndex = position795, tokenIndex795
+ goto l797
+ l798:
+ position, tokenIndex = position797, tokenIndex797
if buffer[position] != rune('0') {
- goto l805
+ goto l807
}
position++
{
- position806, tokenIndex806 := position, tokenIndex
+ position808, tokenIndex808 := position, tokenIndex
if buffer[position] != rune('x') {
+ goto l809
+ }
+ position++
+ goto l808
+ l809:
+ position, tokenIndex = position808, tokenIndex808
+ if buffer[position] != rune('X') {
goto l807
}
position++
- goto l806
- l807:
- position, tokenIndex = position806, tokenIndex806
- if buffer[position] != rune('X') {
- goto l805
- }
- position++
}
- l806:
- {
- position810, tokenIndex810 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l811
- }
- position++
- goto l810
- l811:
- position, tokenIndex = position810, tokenIndex810
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l812
- }
- position++
- goto l810
- l812:
- position, tokenIndex = position810, tokenIndex810
- {
- position813, tokenIndex813 := position, tokenIndex
- if c := buffer[position]; c < rune('a') || c > rune('f') {
- goto l814
- }
- position++
- goto l813
- l814:
- position, tokenIndex = position813, tokenIndex813
- if c := buffer[position]; c < rune('A') || c > rune('F') {
- goto l805
- }
- position++
- }
- l813:
- }
- l810:
l808:
{
- position809, tokenIndex809 := position, tokenIndex
+ position812, tokenIndex812 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l813
+ }
+ position++
+ goto l812
+ l813:
+ position, tokenIndex = position812, tokenIndex812
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l814
+ }
+ position++
+ goto l812
+ l814:
+ position, tokenIndex = position812, tokenIndex812
{
position815, tokenIndex815 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
+ if c := buffer[position]; c < rune('a') || c > rune('f') {
goto l816
}
position++
goto l815
l816:
position, tokenIndex = position815, tokenIndex815
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l817
+ if c := buffer[position]; c < rune('A') || c > rune('F') {
+ goto l807
}
position++
- goto l815
- l817:
- position, tokenIndex = position815, tokenIndex815
+ }
+ l815:
+ }
+ l812:
+ l810:
+ {
+ position811, tokenIndex811 := 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
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l819
+ }
+ position++
+ goto l817
+ l819:
+ position, tokenIndex = position817, tokenIndex817
{
- position818, tokenIndex818 := position, tokenIndex
+ position820, tokenIndex820 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('f') {
- goto l819
+ goto l821
}
position++
- goto l818
- l819:
- position, tokenIndex = position818, tokenIndex818
+ goto l820
+ l821:
+ position, tokenIndex = position820, tokenIndex820
if c := buffer[position]; c < rune('A') || c > rune('F') {
- goto l809
+ goto l811
}
position++
}
- l818:
+ l820:
}
- l815:
- goto l808
- l809:
- position, tokenIndex = position809, tokenIndex809
+ l817:
+ goto l810
+ l811:
+ position, tokenIndex = position811, tokenIndex811
}
- goto l795
- l805:
- position, tokenIndex = position795, tokenIndex795
+ goto l797
+ l807:
+ position, tokenIndex = position797, tokenIndex797
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l789
+ goto l791
}
position++
- l820:
+ l822:
{
- position821, tokenIndex821 := position, tokenIndex
+ position823, tokenIndex823 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l821
+ goto l823
}
position++
- goto l820
- l821:
- position, tokenIndex = position821, tokenIndex821
+ goto l822
+ l823:
+ position, tokenIndex = position823, tokenIndex823
}
}
- l795:
- add(ruleOffset, position790)
+ l797:
+ add(ruleOffset, position792)
}
return true
- l789:
- position, tokenIndex = position789, tokenIndex789
+ l791:
+ position, tokenIndex = position791, tokenIndex791
return false
},
/* 52 Section <- <([a-z] / [A-Z] / '@')+> */
func() bool {
- position822, tokenIndex822 := position, tokenIndex
+ position824, tokenIndex824 := position, tokenIndex
{
- position823 := position
+ position825 := position
{
- position826, tokenIndex826 := position, tokenIndex
+ position828, tokenIndex828 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l827
+ goto l829
}
position++
+ goto l828
+ l829:
+ position, tokenIndex = position828, tokenIndex828
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l830
+ }
+ position++
+ goto l828
+ l830:
+ position, tokenIndex = position828, tokenIndex828
+ if buffer[position] != rune('@') {
+ goto l824
+ }
+ position++
+ }
+ l828:
+ l826:
+ {
+ position827, tokenIndex827 := position, tokenIndex
+ {
+ position831, tokenIndex831 := position, tokenIndex
+ if c := buffer[position]; c < rune('a') || c > rune('z') {
+ goto l832
+ }
+ position++
+ goto l831
+ l832:
+ position, tokenIndex = position831, tokenIndex831
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l833
+ }
+ position++
+ goto l831
+ l833:
+ position, tokenIndex = position831, tokenIndex831
+ if buffer[position] != rune('@') {
+ goto l827
+ }
+ position++
+ }
+ l831:
goto l826
l827:
- position, tokenIndex = position826, tokenIndex826
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l828
- }
- position++
- goto l826
- l828:
- position, tokenIndex = position826, tokenIndex826
- if buffer[position] != rune('@') {
- goto l822
- }
- position++
+ position, tokenIndex = position827, tokenIndex827
}
- l826:
- l824:
- {
- position825, tokenIndex825 := position, tokenIndex
- {
- position829, tokenIndex829 := position, tokenIndex
- if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l830
- }
- position++
- goto l829
- l830:
- position, tokenIndex = position829, tokenIndex829
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l831
- }
- position++
- goto l829
- l831:
- position, tokenIndex = position829, tokenIndex829
- if buffer[position] != rune('@') {
- goto l825
- }
- position++
- }
- l829:
- goto l824
- l825:
- position, tokenIndex = position825, tokenIndex825
- }
- add(ruleSection, position823)
+ add(ruleSection, position825)
}
return true
- l822:
- position, tokenIndex = position822, tokenIndex822
+ l824:
+ position, tokenIndex = position824, tokenIndex824
return false
},
/* 53 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */
func() bool {
- position832, tokenIndex832 := position, tokenIndex
+ position834, tokenIndex834 := position, tokenIndex
{
- position833 := position
+ position835 := position
if buffer[position] != rune('%') {
- goto l832
+ goto l834
}
position++
{
- position834, tokenIndex834 := position, tokenIndex
+ position836, tokenIndex836 := position, tokenIndex
if c := buffer[position]; c < rune('c') || c > rune('g') {
- goto l835
+ goto l837
}
position++
- goto l834
- l835:
- position, tokenIndex = position834, tokenIndex834
+ goto l836
+ l837:
+ position, tokenIndex = position836, tokenIndex836
if buffer[position] != rune('s') {
- goto l832
+ goto l834
}
position++
}
- l834:
+ l836:
if buffer[position] != rune('s') {
- goto l832
+ goto l834
}
position++
if buffer[position] != rune(':') {
- goto l832
+ goto l834
}
position++
- add(ruleSegmentRegister, position833)
+ add(ruleSegmentRegister, position835)
}
return true
- l832:
- position, tokenIndex = position832, tokenIndex832
+ l834:
+ position, tokenIndex = position834, tokenIndex834
return false
},
}
diff --git a/util/fipstools/delocate/testdata/x86_64-Basic/in.s b/util/fipstools/delocate/testdata/x86_64-Basic/in.s
index c54756b..7e48e27 100644
--- a/util/fipstools/delocate/testdata/x86_64-Basic/in.s
+++ b/util/fipstools/delocate/testdata/x86_64-Basic/in.s
@@ -47,3 +47,4 @@
.L4: .L5: movq %rbx, %rax # This is also legal.
.size foo, .-foo
.type foo, @function
+.uleb128 .foo-1-.bar
diff --git a/util/fipstools/delocate/testdata/x86_64-Basic/out.s b/util/fipstools/delocate/testdata/x86_64-Basic/out.s
index 23e97c8..a55e852 100644
--- a/util/fipstools/delocate/testdata/x86_64-Basic/out.s
+++ b/util/fipstools/delocate/testdata/x86_64-Basic/out.s
@@ -55,6 +55,7 @@
movq %rbx, %rax # This is also legal.
.size foo, .-foo
.type foo, @function
+.uleb128 .foo-1-.bar
.text
.loc 2 2 0
BORINGSSL_bcm_text_end: