[PATCH] Some Score bugs have been fixed

ligang@sunnorth.com.cn ligang@sunnorth.com.cn
Wed Nov 1 09:05:00 GMT 2006


Hello,
I have fixed some bugs for Score. 

Hi Nick, BTW, would you please give me the write access to cvs repository?
I'am looking forward to it.

1. Fix optimizion of not! instruction.

   gas/config/
   * tc-score.c (do16_rdrs): Handle not! instruction especially.

   gas/testsuite/gas/score/
   * rD_rA.d: Correct not! and not.c instruction disassembly.
 
2. Correct j and b instruction disassembly.

   opcodes/
   * score-opc.h (score_opcodes): Delete modifier '0x'.


Index: tc-score.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-score.c,v
retrieving revision 1.4
diff -p -u -r1.4 tc-score.c
--- tc-score.c  31 Oct 2006 09:54:40 -0000      1.4
+++ tc-score.c  1 Nov 2006 03:36:13 -0000
@@ -1761,6 +1761,11 @@ do16_rdrs (char *str)
           inst.relax_inst |= (((inst.instruction >> 8) & 0xf) << 15)
             | (((inst.instruction >> 4) & 0xf) << 10);
         }
+      else if ((inst.instruction & 0x700f) == 0x2006)   /* not!  */
+        {
+          inst.relax_inst |= (((inst.instruction >> 8) & 0xf) << 20)
+            | (((inst.instruction >> 4) & 0xf) << 15);
+        }
       else
         {
           inst.relax_inst |= (((inst.instruction >> 8) & 0xf) << 20)

Index: rD_rA.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/score/rD_rA.d,v
retrieving revision 1.1
diff -p -u -r1.1 rD_rA.d
--- rD_rA.d     17 Sep 2006 14:24:56 -0000      1.1
+++ rD_rA.d     1 Nov 2006 03:49:52 -0000
@@ -49,11 +49,11 @@ Disassembly of section \.text:
   58:  807adc19        cmp.c           r26, r23
   5c:  0000            nop!
   5e:  0000            nop!
-  60:  80008825        not.c           r0, r0
+  60:  80028025        not.c           r0, r2
   64:  82958025        not.c           r20, r21
-  68:  81ef9025        not.c           r15, r15
+  68:  81e48025        not.c           r15, r4
   6c:  83358025        not.c           r25, r21
-  70:  81ef8c25        not.c           r15, r15
+  70:  81e38025        not.c           r15, r3
   74:  83368025        not.c           r25, r22
   78:  2836            not!            r8, r3
   7a:  2836            not!            r8, r3

Index: score-opc.h
===================================================================
RCS file: /cvs/src/src/opcodes/score-opc.h,v
retrieving revision 1.1
diff -p -u -r1.1 score-opc.h
--- score-opc.h 16 Sep 2006 23:51:50 -0000      1.1
+++ score-opc.h 1 Nov 2006 03:39:54 -0000
@@ -53,27 +53,27 @@ static struct score_opcode score_opcodes
   {0x18000000, 0x3e000001, "andri\t\t%20-24r, %15-19r, 0x%1-14x"},
   {0x18000001, 0x3e000001, "andri.c\t\t%20-24r, %15-19r,0x%1-14x"},
   {0x00002004, 0x0000700f, "and!\t\t%8-11r, %4-7r"},
-  {0x08000000, 0x3e007c01, "bcs\t\t0x%b"                       },
-  {0x08000400, 0x3e007c01, "bcc\t\t0x%b"                       },
-  {0x08003800, 0x3e007c01, "bcnz\t\t0x%b"                      },
-  {0x08000001, 0x3e007c01, "bcsl\t\t0x%b"                      },
-  {0x08000401, 0x3e007c01, "bccl\t\t0x%b"                      },
-  {0x08003801, 0x3e007c01, "bcnzl\t\t0x%b"                     },
-  {0x00004000, 0x00007f00, "bcs!\t\t0x%b"                      },
-  {0x00004100, 0x00007f00, "bcc!\t\t0x%b"                      },
-  {0x00004e00, 0x00007f00, "bcnz!\t\t0x%b"                     },
-  {0x08001000, 0x3e007c01, "beq\t\t0x%b"                       },
-  {0x08001001, 0x3e007c01, "beql\t\t0x%b"                      },
-  {0x00004400, 0x00007f00, "beq!\t\t0x%b"                      },
-  {0x08000800, 0x3e007c01, "bgtu\t\t0x%b"                      },
-  {0x08001800, 0x3e007c01, "bgt\t\t0x%b"                       },
-  {0x08002000, 0x3e007c01, "bge\t\t0x%b"                       },
-  {0x08000801, 0x3e007c01, "bgtul\t\t0x%b"                     },
-  {0x08001801, 0x3e007c01, "bgtl\t\t0x%b"                      },
-  {0x08002001, 0x3e007c01, "bgel\t\t0x%b"                      },
-  {0x00004200, 0x00007f00, "bgtu!\t\t0x%b"                     },
-  {0x00004600, 0x00007f00, "bgt!\t\t0x%b"                      },
-  {0x00004800, 0x00007f00, "bge!\t\t0x%b"                      },
+  {0x08000000, 0x3e007c01, "bcs\t\t%b"                 },
+  {0x08000400, 0x3e007c01, "bcc\t\t%b"                 },
+  {0x08003800, 0x3e007c01, "bcnz\t\t%b"                },
+  {0x08000001, 0x3e007c01, "bcsl\t\t%b"                },
+  {0x08000401, 0x3e007c01, "bccl\t\t%b"                },
+  {0x08003801, 0x3e007c01, "bcnzl\t\t%b"               },
+  {0x00004000, 0x00007f00, "bcs!\t\t%b"                },
+  {0x00004100, 0x00007f00, "bcc!\t\t%b"                },
+  {0x00004e00, 0x00007f00, "bcnz!\t\t%b"               },
+  {0x08001000, 0x3e007c01, "beq\t\t%b"                 },
+  {0x08001001, 0x3e007c01, "beql\t\t%b"                },
+  {0x00004400, 0x00007f00, "beq!\t\t%b"                },
+  {0x08000800, 0x3e007c01, "bgtu\t\t%b"                },
+  {0x08001800, 0x3e007c01, "bgt\t\t%b"                 },
+  {0x08002000, 0x3e007c01, "bge\t\t%b"                 },
+  {0x08000801, 0x3e007c01, "bgtul\t\t%b"               },
+  {0x08001801, 0x3e007c01, "bgtl\t\t%b"                },
+  {0x08002001, 0x3e007c01, "bgel\t\t%b"                },
+  {0x00004200, 0x00007f00, "bgtu!\t\t%b"               },
+  {0x00004600, 0x00007f00, "bgt!\t\t%b"                },
+  {0x00004800, 0x00007f00, "bge!\t\t%b"                },
   {0x00000029, 0x3e0003ff, "bitclr.c\t%20-24r, %15-19r, 0x%10-14x"},
   {0x0000002b, 0x3e0003ff, "bitset.c\t%20-24r, %15-19r, 0x%10-14x"},
   {0x0000002d, 0x3e0003ff, "bittst.c\t%15-19r, 0x%10-14x"},
@@ -83,25 +83,25 @@ static struct score_opcode score_opcodes
   {0x00006005, 0x00007007, "bitset!\t\t%8-11r, 0x%3-7x"},
   {0x00006006, 0x00007007, "bittst!\t\t%8-11r, 0x%3-7x"},
   {0x00006007, 0x00007007, "bittgl!\t\t%8-11r, 0x%3-7x"},
-  {0x08000c00, 0x3e007c01, "bleu\t\t0x%b"                      },
-  {0x08001c00, 0x3e007c01, "ble\t\t0x%b"                       },
-  {0x08002400, 0x3e007c01, "blt\t\t0x%b"                       },
-  {0x08000c01, 0x3e007c01, "bleul\t\t0x%b"                     },
-  {0x08001c01, 0x3e007c01, "blel\t\t0x%b"                      },
-  {0x08002401, 0x3e007c01, "bltl\t\t0x%b"                      },
-  {0x08003c01, 0x3e007c01, "bl\t\t0x%b"                        },
-  {0x00004300, 0x00007f00, "bleu!\t\t0x%b"                     },
-  {0x00004700, 0x00007f00, "ble!\t\t0x%b"                      },
-  {0x00004900, 0x00007f00, "blt!\t\t0x%b"                      },
-  {0x08002800, 0x3e007c01, "bmi\t\t0x%b"                       },
-  {0x08002801, 0x3e007c01, "bmil\t\t0x%b"                      },
-  {0x00004a00, 0x00007f00, "bmi!\t\t0x%b"                      },
-  {0x08001400, 0x3e007c01, "bne\t\t0x%b"                       },
-  {0x08001401, 0x3e007c01, "bnel\t\t0x%b"                      },
-  {0x00004500, 0x00007f00, "bne!\t\t0x%b"                      },
-  {0x08002c00, 0x3e007c01, "bpl\t\t0x%b"                       },
-  {0x08002c01, 0x3e007c01, "bpll\t\t0x%b"                      },
-  {0x00004b00, 0x00007f00, "bpl!\t\t0x%b"                      },
+  {0x08000c00, 0x3e007c01, "bleu\t\t%b"                },
+  {0x08001c00, 0x3e007c01, "ble\t\t%b"                 },
+  {0x08002400, 0x3e007c01, "blt\t\t%b"                 },
+  {0x08000c01, 0x3e007c01, "bleul\t\t%b"               },
+  {0x08001c01, 0x3e007c01, "blel\t\t%b"                },
+  {0x08002401, 0x3e007c01, "bltl\t\t%b"                },
+  {0x08003c01, 0x3e007c01, "bl\t\t%b"                  },
+  {0x00004300, 0x00007f00, "bleu!\t\t%b"               },
+  {0x00004700, 0x00007f00, "ble!\t\t%b"                },
+  {0x00004900, 0x00007f00, "blt!\t\t%b"                },
+  {0x08002800, 0x3e007c01, "bmi\t\t%b"                 },
+  {0x08002801, 0x3e007c01, "bmil\t\t%b"                },
+  {0x00004a00, 0x00007f00, "bmi!\t\t%b"                },
+  {0x08001400, 0x3e007c01, "bne\t\t%b"                 },
+  {0x08001401, 0x3e007c01, "bnel\t\t%b"                },
+  {0x00004500, 0x00007f00, "bne!\t\t%b"                },
+  {0x08002c00, 0x3e007c01, "bpl\t\t%b"                 },
+  {0x08002c01, 0x3e007c01, "bpll\t\t%b"                },
+  {0x00004b00, 0x00007f00, "bpl!\t\t%b"                },
   {0x00000008, 0x3e007fff, "brcs\t\t%15-19r"                   },
   {0x00000408, 0x3e007fff, "brcc\t\t%15-19r"                   },
   {0x00000808, 0x3e007fff, "brgtu\t\t%15-19r"                  },
@@ -166,14 +166,14 @@ static struct score_opcode score_opcodes
   {0x00000d0c, 0x00007f0f, "brvcl!\t\t%4-7r"                   },
   {0x00000e0c, 0x00007f0f, "brcnzl!\t\t%4-7r"                  },
   {0x00000f0c, 0x00007f0f, "brl!\t\t%4-7r"                     },
-  {0x08003000, 0x3e007c01, "bvs\t\t0x%b"                       },
-  {0x08003400, 0x3e007c01, "bvc\t\t0x%b"                       },
-  {0x08003001, 0x3e007c01, "bvsl\t\t0x%b"                      },
-  {0x08003401, 0x3e007c01, "bvcl\t\t0x%b"                      },
-  {0x00004c00, 0x00007f00, "bvs!\t\t0x%b"                      },
-  {0x00004d00, 0x00007f00, "bvc!\t\t0x%b"                      },
-  {0x00004f00, 0x00007f00, "b!\t\t0x%b"                        },
-  {0x08003c00, 0x3e007c01, "b\t\t0x%b"                         },
+  {0x08003000, 0x3e007c01, "bvs\t\t%b"                 },
+  {0x08003400, 0x3e007c01, "bvc\t\t%b"                 },
+  {0x08003001, 0x3e007c01, "bvsl\t\t%b"                },
+  {0x08003401, 0x3e007c01, "bvcl\t\t%b"                },
+  {0x00004c00, 0x00007f00, "bvs!\t\t%b"                },
+  {0x00004d00, 0x00007f00, "bvc!\t\t%b"                },
+  {0x00004f00, 0x00007f00, "b!\t\t%b"                  },
+  {0x08003c00, 0x3e007c01, "b\t\t%b"                   },
   {0x30000000, 0x3ff00000, "cache\t\t%20-24d, [%15-19r, %0-14i]"},
   {0x30100000, 0x3ff00000, "cache\t\t%20-24d, [%15-19r, %0-14i]"},
   {0x30200000, 0x3ff00000, "cache\t\t%20-24d, [%15-19r, %0-14i]"},
@@ -245,10 +245,10 @@ static struct score_opcode score_opcodes
   {0x0000005d, 0x3e0003ff, "extzb.c\t\t%20-24r, %15-19r"},
   {0x0000005e, 0x3e0003ff, "extzh\t\t%20-24r, %15-19r"},
   {0x0000005f, 0x3e0003ff, "extzh.c\t\t%20-24r, %15-19r"},
-  {0x04000001, 0x3e000001, "jl\t\t0x%j"},
-  {0x00003001, 0x00007001, "jl!\t\t0x%j"                       },
-  {0x00003000, 0x00007001, "j!\t\t0x%j"                        },
-  {0x04000000, 0x3e000001, "j\t\t0x%j"},
+  {0x04000001, 0x3e000001, "jl\t\t%j"},
+  {0x00003001, 0x00007001, "jl!\t\t%j"                 },
+  {0x00003000, 0x00007001, "j!\t\t%j"                  },
+  {0x04000000, 0x3e000001, "j\t\t%j"},
   {0x26000000, 0x3e000000, "lb\t\t%20-24r, [%15-19r, %0-14i]"},
   {0x2c000000, 0x3e000000, "lbu\t\t%20-24r, [%15-19r, %0-14i]"},
   {0x06000003, 0x3e000007, "lb\t\t%20-24r, [%15-19r, %3-14i]+"},

Best regards
                     Ligang



More information about the Binutils mailing list