diff --git a/library/compiler/generator/generator.factor b/library/compiler/generator/generator.factor index 677f7d2cc6..f51b0a5ee1 100644 --- a/library/compiler/generator/generator.factor +++ b/library/compiler/generator/generator.factor @@ -55,7 +55,7 @@ UNION: #terminal generate-code relocation-table get literal-table get - label-table get + label-table get [ label-offset ] map label-relocation-table get ] V{ } make code-format add-compiled-block save-xt ; diff --git a/library/compiler/generator/xt.factor b/library/compiler/generator/xt.factor index 77069da638..892cf94ad5 100644 --- a/library/compiler/generator/xt.factor +++ b/library/compiler/generator/xt.factor @@ -5,27 +5,27 @@ USING: arrays assembler errors generic hashtables kernel kernel-internals math namespaces prettyprint queues sequences strings vectors words ; -: compiled ( -- n ) building get length code-format * ; +: compiled-offset ( -- n ) building get length code-format * ; TUPLE: label # offset ; SYMBOL: label-table : push-label ( label -- ) - label-table get 2dup memq? - [ 2drop ] [ dup length pick set-label-# push ] if ; + label-table get dup length pick set-label-# push ; -C: label ( -- label ) ; +C: label ( -- label ) + compiled-offset over set-label-offset dup push-label ; : define-label ( name -- )