From 31710dbdb232972d83396e772b6460fde4ba516e Mon Sep 17 00:00:00 2001 From: David Schleef Date: Sun, 1 Aug 2010 15:22:26 -0700 Subject: [PATCH] compiler: add flag for allowing gp regs on stack --- orc/orccompiler.c | 9 +++++---- orc/orcprogram-sse.c | 2 +- orc/orcprogram.h | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/orc/orccompiler.c b/orc/orccompiler.c index 6f3cfcf..90dadbd 100644 --- a/orc/orccompiler.c +++ b/orc/orccompiler.c @@ -108,10 +108,11 @@ orc_compiler_allocate_register (OrcCompiler *compiler, int data_reg) } } - /* FIXME on !x86, this is an error */ - ORC_COMPILER_ERROR (compiler, "register overflow for %s reg", - data_reg ? "vector" : "gp"); - compiler->result = ORC_COMPILE_RESULT_UNKNOWN_COMPILE; + if (!compiler->allow_gp_on_stack) { + ORC_COMPILER_ERROR (compiler, "register overflow for %s reg", + data_reg ? "vector" : "gp"); + compiler->result = ORC_COMPILE_RESULT_UNKNOWN_COMPILE; + } return 0; } diff --git a/orc/orcprogram-sse.c b/orc/orcprogram-sse.c index 67bad8d..a71ab16 100644 --- a/orc/orcprogram-sse.c +++ b/orc/orcprogram-sse.c @@ -196,7 +196,7 @@ orc_compiler_sse_init (OrcCompiler *compiler) compiler->unroll_shift = 1; compiler->alloc_loop_counter = TRUE; - + compiler->allow_gp_on_stack = TRUE; } void diff --git a/orc/orcprogram.h b/orc/orcprogram.h index 5161153..1cff1f8 100644 --- a/orc/orcprogram.h +++ b/orc/orcprogram.h @@ -403,6 +403,7 @@ struct _OrcCompiler { int unroll_shift; int alloc_loop_counter; + int allow_gp_on_stack; int loop_counter; int size_region; -- 2.7.4