Add need_mask_regs
authorDavid Schleef <ds@schleef.org>
Fri, 19 Jun 2009 14:35:53 +0000 (07:35 -0700)
committerDavid Schleef <ds@schleef.org>
Fri, 19 Jun 2009 14:35:53 +0000 (07:35 -0700)
orc/orccompiler.c
orc/orcprogram.h

index d34f119..2301372 100644 (file)
@@ -400,9 +400,11 @@ orc_compiler_global_reg_alloc (OrcCompiler *compiler)
         break;
       case ORC_VAR_TYPE_SRC:
         var->mask_alloc = orc_compiler_allocate_register (compiler, TRUE);
-        var->ptr_offset = orc_compiler_allocate_register (compiler, FALSE);
-        var->ptr_register = orc_compiler_allocate_register (compiler, FALSE);
-        var->aligned_data = orc_compiler_allocate_register (compiler, TRUE);
+        if (var->need_mask_regs) {
+          var->ptr_offset = orc_compiler_allocate_register (compiler, FALSE);
+          var->ptr_register = orc_compiler_allocate_register (compiler, FALSE);
+          var->aligned_data = orc_compiler_allocate_register (compiler, TRUE);
+        }
         break;
       case ORC_VAR_TYPE_DEST:
         var->ptr_register = orc_compiler_allocate_register (compiler, FALSE);
index 3ef7eb0..8ae4049 100644 (file)
@@ -181,6 +181,7 @@ struct _OrcVariable {
   int is_chained;
   int is_aligned;
   int is_uncached;
+  int need_mask_regs;
 
   int value;