OSDN Git Service

* config/avr/avr.c: Eliminate use of _PC_ in pc relative insns.
authormarekm <marekm@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Sep 2002 14:14:12 +0000 (14:14 +0000)
committermarekm <marekm@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 28 Sep 2002 14:14:12 +0000 (14:14 +0000)
* config/avr/avr.md: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57613 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/avr/avr.c
gcc/config/avr/avr.md

index 2af02d4..4d7d27e 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-26  Theodore A. Roth  <troth@verinet.com>
+
+        * config/avr/avr.c: Eliminate use of _PC_ in pc relative insns.
+        * config/avr/avr.md: Ditto.
+
 2002-09-27  Alexander N. Kabaev <ak03@gte.com>
 
        PR preprocessor/8055
index 09ab9e0..1a06ed1 100644 (file)
@@ -1313,60 +1313,60 @@ ret_cond_branch (x, len, reverse)
     {
     case GT:
       if (cc_prev_status.flags & CC_OVERFLOW_UNUSABLE)
-       return (len == 1 ? (AS1 (breq,_PC_+2) CR_TAB
+       return (len == 1 ? (AS1 (breq,.+2) CR_TAB
                            AS1 (brpl,%0)) :
-               len == 2 ? (AS1 (breq,_PC_+4) CR_TAB
-                           AS1 (brmi,_PC_+2) CR_TAB
+               len == 2 ? (AS1 (breq,.+4) CR_TAB
+                           AS1 (brmi,.+2) CR_TAB
                            AS1 (rjmp,%0)) :
-               (AS1 (breq,_PC_+6) CR_TAB
-                AS1 (brmi,_PC_+4) CR_TAB
+               (AS1 (breq,.+6) CR_TAB
+                AS1 (brmi,.+4) CR_TAB
                 AS1 (jmp,%0)));
          
       else
-       return (len == 1 ? (AS1 (breq,_PC_+2) CR_TAB
+       return (len == 1 ? (AS1 (breq,.+2) CR_TAB
                            AS1 (brge,%0)) :
-               len == 2 ? (AS1 (breq,_PC_+4) CR_TAB
-                           AS1 (brlt,_PC_+2) CR_TAB
+               len == 2 ? (AS1 (breq,.+4) CR_TAB
+                           AS1 (brlt,.+2) CR_TAB
                            AS1 (rjmp,%0)) :
-               (AS1 (breq,_PC_+6) CR_TAB
-                AS1 (brlt,_PC_+4) CR_TAB
+               (AS1 (breq,.+6) CR_TAB
+                AS1 (brlt,.+4) CR_TAB
                 AS1 (jmp,%0)));
     case GTU:
-      return (len == 1 ? (AS1 (breq,_PC_+2) CR_TAB
+      return (len == 1 ? (AS1 (breq,.+2) CR_TAB
                           AS1 (brsh,%0)) :
-              len == 2 ? (AS1 (breq,_PC_+4) CR_TAB
-                          AS1 (brlo,_PC_+2) CR_TAB
+              len == 2 ? (AS1 (breq,.+4) CR_TAB
+                          AS1 (brlo,.+2) CR_TAB
                           AS1 (rjmp,%0)) :
-              (AS1 (breq,_PC_+6) CR_TAB
-               AS1 (brlo,_PC_+4) CR_TAB
+              (AS1 (breq,.+6) CR_TAB
+               AS1 (brlo,.+4) CR_TAB
                AS1 (jmp,%0)));
     case LE:
       if (cc_prev_status.flags & CC_OVERFLOW_UNUSABLE)
        return (len == 1 ? (AS1 (breq,%0) CR_TAB
                            AS1 (brmi,%0)) :
-               len == 2 ? (AS1 (breq,_PC_+2) CR_TAB
-                           AS1 (brpl,_PC_+2) CR_TAB
+               len == 2 ? (AS1 (breq,.+2) CR_TAB
+                           AS1 (brpl,.+2) CR_TAB
                            AS1 (rjmp,%0)) :
-               (AS1 (breq,_PC_+2) CR_TAB
-                AS1 (brpl,_PC_+4) CR_TAB
+               (AS1 (breq,.+2) CR_TAB
+                AS1 (brpl,.+4) CR_TAB
                 AS1 (jmp,%0)));
       else
        return (len == 1 ? (AS1 (breq,%0) CR_TAB
                            AS1 (brlt,%0)) :
-               len == 2 ? (AS1 (breq,_PC_+2) CR_TAB
-                           AS1 (brge,_PC_+2) CR_TAB
+               len == 2 ? (AS1 (breq,.+2) CR_TAB
+                           AS1 (brge,.+2) CR_TAB
                            AS1 (rjmp,%0)) :
-               (AS1 (breq,_PC_+2) CR_TAB
-                AS1 (brge,_PC_+4) CR_TAB
+               (AS1 (breq,.+2) CR_TAB
+                AS1 (brge,.+4) CR_TAB
                 AS1 (jmp,%0)));
     case LEU:
       return (len == 1 ? (AS1 (breq,%0) CR_TAB
                           AS1 (brlo,%0)) :
-              len == 2 ? (AS1 (breq,_PC_+2) CR_TAB
-                          AS1 (brsh,_PC_+2) CR_TAB
+              len == 2 ? (AS1 (breq,.+2) CR_TAB
+                          AS1 (brsh,.+2) CR_TAB
                          AS1 (rjmp,%0)) :
-              (AS1 (breq,_PC_+2) CR_TAB
-               AS1 (brsh,_PC_+4) CR_TAB
+              (AS1 (breq,.+2) CR_TAB
+               AS1 (brsh,.+4) CR_TAB
               AS1 (jmp,%0)));
     default:
       if (reverse)
@@ -1376,10 +1376,10 @@ ret_cond_branch (x, len, reverse)
            case 1:
              return AS1 (br%k1,%0);
            case 2:
-             return (AS1 (br%j1,_PC_+2) CR_TAB
+             return (AS1 (br%j1,.+2) CR_TAB
                      AS1 (rjmp,%0));
            default:
-             return (AS1 (br%j1,_PC_+4) CR_TAB
+             return (AS1 (br%j1,.+4) CR_TAB
                      AS1 (jmp,%0));
            }
        }
@@ -1390,10 +1390,10 @@ ret_cond_branch (x, len, reverse)
              case 1:
                return AS1 (br%j1,%0);
              case 2:
-               return (AS1 (br%k1,_PC_+2) CR_TAB
+               return (AS1 (br%k1,.+2) CR_TAB
                        AS1 (rjmp,%0));
              default:
-               return (AS1 (br%k1,_PC_+4) CR_TAB
+               return (AS1 (br%k1,.+4) CR_TAB
                        AS1 (jmp,%0));
              }
          }
@@ -4887,8 +4887,7 @@ asm_file_start (file)
         "__SP_L__ = 0x3d\n", file);
   
   fputs ("__tmp_reg__ = 0\n" 
-        "__zero_reg__ = 1\n"
-        "_PC_ = 2\n", file);
+         "__zero_reg__ = 1\n", file);
 
   /* FIXME: output these only if there is anything in the .data / .bss
      sections - some code size could be saved by not linking in the
@@ -5596,7 +5595,7 @@ avr_out_sbxx_branch (insn, operands)
     }
 
   if (long_jump)
-    return (AS1 (rjmp,_PC_+4) CR_TAB
+    return (AS1 (rjmp,.+4) CR_TAB
            AS1 (jmp,%3));
   if (!reverse)
     return AS1 (rjmp,%3);
index 7534fc5..dd51f0e 100644 (file)
   "ld __tmp_reg__,%a1+
        st %a0+,__tmp_reg__
        dec %2
-       brne _PC_-8"
+       brne .-8"
   [(set_attr "length" "4")
    (set_attr "cc" "clobber")])
 
        return (AS2 (ld,__tmp_reg__,%a1+) CR_TAB
               AS2 (st,%a0+,__tmp_reg__)  CR_TAB
               AS2 (sbiw,%A2,1) CR_TAB
-              AS1 (brne,_PC_-8));
+              AS1 (brne,.-8));
      else
        return (AS2 (ld,__tmp_reg__,%a1+) CR_TAB
               AS2 (st,%a0+,__tmp_reg__)  CR_TAB
               AS2 (subi,%A2,1) CR_TAB
               AS2 (sbci,%B2,0) CR_TAB
-              AS1 (brne,_PC_-10));
+              AS1 (brne,.-10));
 }"
   [(set_attr "length" "4,5")
    (set_attr "cc" "clobber,clobber")])
   ""
   "st %a0+,__zero_reg__
         dec %1
-       brne _PC_-6"
+       brne .-6"
   [(set_attr "length" "3")
    (set_attr "cc" "clobber")])
 
      if (which_alternative==0)
        return (AS2 (st,%a0+,__zero_reg__) CR_TAB
               AS2 (sbiw,%A1,1) CR_TAB
-              AS1 (brne,_PC_-6));
+              AS1 (brne,.-6));
      else
        return (AS2 (st,%a0+,__zero_reg__) CR_TAB
               AS2 (subi,%A1,1) CR_TAB
               AS2 (sbci,%B1,0) CR_TAB
-              AS1 (brne,_PC_-8));
+              AS1 (brne,.-8));
 }"
   [(set_attr "length" "3,4")
    (set_attr "cc" "clobber,clobber")])
   ""
   "ld __tmp_reg__,%a0+
        tst __tmp_reg__
-       brne _PC_-6"
+       brne .-6"
   [(set_attr "length" "3")
    (set_attr "cc" "clobber")])
 
     case 1:
       return AS1 (brcc,%2);
     case 2:
-      return (AS1 (brcs,_PC_+2) CR_TAB
+      return (AS1 (brcs,.+2) CR_TAB
               AS1 (rjmp,%2));
   }
-  return (AS1 (brcs,_PC_+4) CR_TAB
+  return (AS1 (brcs,.+4) CR_TAB
           AS1 (jmp,%2));
 }")
 
     case 1:
       return AS1 (brcc,%2);
     case 2:
-      return (AS1 (brcs,_PC_+2) CR_TAB
+      return (AS1 (brcs,.+2) CR_TAB
               AS1 (rjmp,%2));
   }
-  return (AS1 (brcs,_PC_+4) CR_TAB
+  return (AS1 (brcs,.+4) CR_TAB
           AS1 (jmp,%2));
 }")
 
     case 1:
       return AS1 (brcc,%1);
     case 2:
-      return (AS1 (brcs,_PC_+2) CR_TAB
+      return (AS1 (brcs,.+2) CR_TAB
               AS1 (rjmp,%1));
   }
-  return (AS1 (brcs,_PC_+4) CR_TAB
+  return (AS1 (brcs,.+4) CR_TAB
           AS1 (jmp,%1));
 }")