390def x86NativeEncodeAssemblyFrom :
391 (pi unrestricted assembly : (family X86NativeAssembly) .
392 (pi unrestricted labels : (family X86NativeLabelTable) .
393 (pi unrestricted offset : (family X86NativeUnsigned32) . (family X86NativeAssemblyResult)))) =
394 (lambda unrestricted assembly : (family X86NativeAssembly) .
395 (eliminate
396 X86NativeAssembly
397 (lambda unrestricted value : (family X86NativeAssembly) .
398 (pi unrestricted labels : (family X86NativeLabelTable) .
399 (pi unrestricted offset : (family X86NativeUnsigned32) . (family X86NativeAssemblyResult))))
400 assembly
401 (branch
402 X86NativeAssemblyEnd
403 .
404 (lambda unrestricted labels : (family X86NativeLabelTable) .
405 (lambda unrestricted offset : (family X86NativeUnsigned32) .
406 (constructor X86NativeAssemblyResult X86NativeAssemblyEncoded b""))))
407 (branch
408 X86NativeAssemblyEmit
409 instruction
410 tail
411 encodeTail
412 .
413 (lambda unrestricted labels : (family X86NativeLabelTable) .
414 (lambda unrestricted offset : (family X86NativeUnsigned32) .
415 (let unrestricted encoded =
416 (x86EncodeNativeInstruction instruction)
417 in
418 (eliminate
419 X86NativeUnsigned32Result
420 (lambda unrestricted advanceResult : (family X86NativeUnsigned32Result) .
421 (family X86NativeAssemblyResult))
422 (x86NativeAdvanceUnsigned32ByBytes offset encoded)
423 (branch
424 X86NativeUnsigned32Success
425 nextOffset
426 .
427 (x86NativePrependAssemblyBytes encoded (encodeTail labels nextOffset)))
428 (branch
429 X86NativeUnsigned32Overflow
430 .
431 (constructor X86NativeAssemblyResult X86NativeAssemblyEncodeOffsetOverflow)))))))
432 (branch
433 X86NativeAssemblyLabel
434 name
435 tail
436 encodeTail
437 .
438 (lambda unrestricted labels : (family X86NativeLabelTable) .
439 (lambda unrestricted offset : (family X86NativeUnsigned32) . (encodeTail labels offset))))
440 (branch
441 X86NativeAssemblyJump
442 target
443 tail
444 encodeTail
445 .
446 (lambda unrestricted labels : (family X86NativeLabelTable) .
447 (lambda unrestricted offset : (family X86NativeUnsigned32) .
448 (eliminate
449 X86NativeUnsigned32Result
450 (lambda unrestricted advanceResult : (family X86NativeUnsigned32Result) .
451 (family X86NativeAssemblyResult))
452 (x86NativeAdvanceUnsigned32ByBytes offset (bytes 0 0 0 0 0))
453 (branch
454 X86NativeUnsigned32Success
455 nextOffset
456 .
457 (x86NativeEncodeJumpToLabel
458 zero
459 (constructor X86NativeCondition X86NativeConditionZero)
460 target
461 labels
462 nextOffset
463 (encodeTail labels nextOffset)))
464 (branch
465 X86NativeUnsigned32Overflow
466 .
467 (constructor X86NativeAssemblyResult X86NativeAssemblyEncodeOffsetOverflow))))))
468 (branch
469 X86NativeAssemblyJumpCondition
470 condition
471 target
472 tail
473 encodeTail
474 .
475 (lambda unrestricted labels : (family X86NativeLabelTable) .
476 (lambda unrestricted offset : (family X86NativeUnsigned32) .
477 (eliminate
478 X86NativeUnsigned32Result
479 (lambda unrestricted advanceResult : (family X86NativeUnsigned32Result) .
480 (family X86NativeAssemblyResult))
481 (x86NativeAdvanceUnsigned32ByBytes offset (bytes 0 0 0 0 0 0))
482 (branch
483 X86NativeUnsigned32Success
484 nextOffset
485 .
486 (x86NativeEncodeJumpToLabel
487 (succ zero)
488 condition
489 target
490 labels
491 nextOffset
492 (encodeTail labels nextOffset)))
493 (branch
494 X86NativeUnsigned32Overflow
495 .
496 (constructor X86NativeAssemblyResult X86NativeAssemblyEncodeOffsetOverflow))))))
497 (branch
498 X86NativeAssemblyLoadEffectiveAddressRIPLabel
499 destination
500 target
501 tail
502 encodeTail
503 .
504 (lambda unrestricted labels : (family X86NativeLabelTable) .
505 (lambda unrestricted offset : (family X86NativeUnsigned32) .
506 (eliminate
507 X86NativeUnsigned32Result
508 (lambda unrestricted advanceResult : (family X86NativeUnsigned32Result) .
509 (family X86NativeAssemblyResult))
510 (x86NativeAdvanceUnsigned32ByBytes offset (bytes 0 0 0 0 0 0 0))
511 (branch
512 X86NativeUnsigned32Success
513 nextOffset
514 .
515 (x86NativeEncodeLEAToLabel
516 destination
517 target
518 labels
519 nextOffset
520 (encodeTail labels nextOffset)))
521 (branch
522 X86NativeUnsigned32Overflow
523 .
524 (constructor X86NativeAssemblyResult X86NativeAssemblyEncodeOffsetOverflow))))))))The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.