Skip to contentSkip to conversation

Test value, not 1 in print_insn_spu(), arch/powerpc/xmon/spu-dis.c

PATCH In review Roel Kluin 2 participants 2 messages Jan 28, 2008 – Jan 29, 2008 PowerPC

lore
Share & tools
lore

Roel Kluin

author
#0 lore raw

PATCH 1/1 Test value, not 1 in print_insn_spu(), arch/powerpc/xmon/spu-dis.c

untested, please confirm:
The '|| 1' does nothing, should this be corrected like my patch does? --
Test value, not 1.

---

arch/powerpc/xmon/spu-dis.c +1 -1
index e5f8983..74d45fb 100644
@@ -222,7 +222,7 @@ print_insn_spu (unsigned long insn, unsigned long memaddr)
 	      break;
 	    case A_U18:
 	      value = DECODE_INSN_U18 (insn);
-	      if (value == 0 || 1)
+	      if (value == 0 || value == 1)
 		{
 		  hex_value = value;
 		  printf("%u", value);
#1 lore raw
Quoted 12 lines · Roel Kluin

untested, please confirm:
The '|| 1' does nothing, should this be corrected like my patch does? --
Test value, not 1.

---

arch/powerpc/xmon/spu-dis.c +0 -0
index e5f8983..74d45fb 100644

arch/powerpc/xmon/spu-dis.c print_insn_spu (unsigned long insn, unsigned long memaddr) · line 228

Quoted 8 lines
arch/powerpc/xmon/spu-dis.c +1 -1
@@ -222,7 +222,7 @@ print_insn_spu (unsigned long insn, unsigned long memaddr)
 	      break;
 	    case A_U18:
 	      value = DECODE_INSN_U18 (insn);
-	      if (value == 0 || 1)
+	      if (value == 0 || value == 1)
 		{
 		  hex_value = value;
 		  printf("%u", value);

The original binutils code looks like:

            case A_U18:
              value = DECODE_INSN_U18 (insn);
              if (value == 0 || !(*info->symbol_at_address_func)(0, info))
                {
                  hex_value = value;
                  (*info->fprintf_func) (info->stream, "%u", value);
                }
              else
                (*info->print_address_func) (value, info);
              break;

We don't have a symbol_at_address_func() so we always guess there isn't a symbol at the address, as if the function had returned 0. Which gives us:

              if (value == 0 || !0)
or
              if (value == 0 || 1)

The reason I left it like that rather than removing the if, was to minimise the diff between the kernel version of spu-dis.c and the binutils version.

cheers

Signature · 8 lines
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person