dynasm/labels

Label registry. Mirrors runtime/src/components.rs LabelRegistry.

Types

LabelRegistry = object
  statics*: Table[(string, int), AssemblyOffset]
  dynamics*: seq[Option[AssemblyOffset]]
  localVersions*: Table[string, int]
StaticLabel = object
  name*: string
  version*: int              ## 0 = global, >=1 = local generation

Procs

proc clear(r: var LabelRegistry) {....raises: [], tags: [], forbids: [].}
proc defineDynamic(r: var LabelRegistry; id: DynamicLabel; off: AssemblyOffset) {.
    ...raises: [DynasmError], tags: [], forbids: [].}
proc defineGlobal(r: var LabelRegistry; name: string; off: AssemblyOffset) {.
    ...raises: [DynasmError], tags: [], forbids: [].}
proc defineLocal(r: var LabelRegistry; name: string; off: AssemblyOffset) {.
    ...raises: [KeyError], tags: [], forbids: [].}
proc firstLocal(name: string): StaticLabel {....raises: [], tags: [], forbids: [].}
proc getName(l: StaticLabel): string {....raises: [], tags: [], forbids: [].}
proc globalLabel(name: string): StaticLabel {....raises: [], tags: [], forbids: [].}
proc initLabelRegistry(): LabelRegistry {....raises: [], tags: [], forbids: [].}
proc isGlobal(l: StaticLabel): bool {....raises: [], tags: [], forbids: [].}
proc isLocal(l: StaticLabel): bool {....raises: [], tags: [], forbids: [].}
proc localLabel(name: string; version: int): StaticLabel {....raises: [], tags: [],
    forbids: [].}
proc newDynamicLabel(r: var LabelRegistry): DynamicLabel {....raises: [], tags: [],
    forbids: [].}
proc nextLocal(l: StaticLabel): StaticLabel {....raises: [], tags: [], forbids: [].}
proc placeLocalReference(r: LabelRegistry; name: string): tuple[found: bool,
    label: StaticLabel] {....raises: [KeyError], tags: [], forbids: [].}
proc resolveDynamic(r: LabelRegistry; id: DynamicLabel): AssemblyOffset {.
    ...raises: [DynasmError], tags: [], forbids: [].}
proc resolveStatic(r: LabelRegistry; label: StaticLabel): AssemblyOffset {.
    ...raises: [DynasmError, KeyError], tags: [], forbids: [].}