cell: fix incorrect extended swizzle term code in get_src_reg()
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 7 Oct 2008 22:11:20 +0000 (16:11 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 7 Oct 2008 22:16:27 +0000 (16:16 -0600)
src/gallium/drivers/cell/ppu/cell_gen_fp.c

index 5d16fc13fe7f34ba3e99585dec1407c65a5054bc..131a2356fe5a48e3728b58a94955c8aaef3d67e3 100644 (file)
@@ -185,22 +185,24 @@ get_src_reg(struct codegen *gen,
    assert(swizzle >= TGSI_SWIZZLE_X);
    assert(swizzle <= TGSI_EXTSWIZZLE_ONE);
 
-   switch (src->SrcRegister.File) {
-   case TGSI_FILE_TEMPORARY:
-      reg = gen->temp_regs[src->SrcRegister.Index][swizzle];
-      break;
-   case TGSI_FILE_INPUT:
-      {
-         if (swizzle == TGSI_EXTSWIZZLE_ONE) {
-            /* Load const one float and early out */
-            reg = get_const_one_reg(gen);
-         }
-         else if (swizzle == TGSI_EXTSWIZZLE_ZERO) {
-            /* Load const zero float and early out */
-            reg = get_itemp(gen);
-            spe_xor(gen->f, reg, reg, reg);
-         }
-         else {
+   if (swizzle == TGSI_EXTSWIZZLE_ONE) {
+      /* Load const one float and early out */
+      reg = get_const_one_reg(gen);
+   }
+   else if (swizzle == TGSI_EXTSWIZZLE_ZERO) {
+      /* Load const zero float and early out */
+      reg = get_itemp(gen);
+      spe_xor(gen->f, reg, reg, reg);
+   }
+   else {
+      assert(swizzle < 4);
+
+      switch (src->SrcRegister.File) {
+      case TGSI_FILE_TEMPORARY:
+         reg = gen->temp_regs[src->SrcRegister.Index][swizzle];
+         break;
+      case TGSI_FILE_INPUT:
+         {
             /* offset is measured in quadwords, not bytes */
             int offset = src->SrcRegister.Index * 4 + swizzle;
             reg = get_itemp(gen);
@@ -208,15 +210,15 @@ get_src_reg(struct codegen *gen,
             /* Load:  reg = memory[(machine_reg) + offset] */
             spe_lqd(gen->f, reg, gen->inputs_reg, offset);
          }
+         break;
+      case TGSI_FILE_IMMEDIATE:
+         reg = gen->imm_regs[src->SrcRegister.Index][swizzle];
+         break;
+      case TGSI_FILE_CONSTANT:
+         /* xxx fall-through for now / fix */
+      default:
+         assert(0);
       }
-      break;
-   case TGSI_FILE_IMMEDIATE:
-      reg = gen->imm_regs[src->SrcRegister.Index][swizzle];
-      break;
-   case TGSI_FILE_CONSTANT:
-      /* xxx fall-through for now / fix */
-   default:
-      assert(0);
    }
 
    /*