From f0231bac6ef338729fee802c73ea9edb52021c3c Mon Sep 17 00:00:00 2001 From: slava Date: Thu, 9 Nov 2006 02:04:46 +0000 Subject: [PATCH] Change how we do if-intrinsics --- TODO.FACTOR.txt | 1 + library/compiler/generator/generator.factor | 63 +++++++++++++-------- library/compiler/generator/templates.factor | 17 ++++-- library/compiler/pentium4/intrinsics.factor | 9 +-- library/compiler/ppc/intrinsics.factor | 12 ++-- library/compiler/x86/intrinsics.factor | 4 +- 6 files changed, 62 insertions(+), 44 deletions(-) diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 642260345a..86519d6f04 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -15,6 +15,7 @@ - fdasfsdfsa :help -- weird - %allot-bignum-signed-2 still has issues on ppc - fix %allot-bignum-signed-1/2 on x86 +- see if 0 0 >= is optimized + ui: diff --git a/library/compiler/generator/generator.factor b/library/compiler/generator/generator.factor index 0c01400865..f50a81c99b 100644 --- a/library/compiler/generator/generator.factor +++ b/library/compiler/generator/generator.factor @@ -56,14 +56,16 @@ UNION: #terminal relocation-table get literal-table get word-table get - ] V{ } make - code-format add-compiled-block save-xt ; -! + ] V{ } make code-format add-compiled-block save-xt ; + GENERIC: generate-node ( node -- ) : generate-nodes ( node -- ) [ node@ generate-node ] iterate-nodes end-basic-block ; +: generate-branch ( node -- ) + [ generate-nodes ] keep-templates ; + : generate ( word node -- ) [ [ generate-nodes ] with-node-iterator ] generate-1 ; @@ -85,44 +87,57 @@ M: #label generate-node : generate-if ( node label -- next )