From 25fc2f8af564a5e7d3bb00940e83f9a053fd3351 Mon Sep 17 00:00:00 2001 From: slava Date: Wed, 9 Aug 2006 07:25:15 +0000 Subject: [PATCH] More generator/relocator fixes --- library/compiler/generator/generator.factor | 2 +- library/compiler/generator/xt.factor | 22 ++++----- vm/image.c | 52 +++++---------------- vm/image.h | 11 +---- vm/run.c | 2 +- 5 files changed, 27 insertions(+), 62 deletions(-) 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 -- )