From: Marek Michalkiewicz Date: Sat, 23 Nov 2002 22:16:53 +0000 (+0100) Subject: [multiple changes] X-Git-Tag: releases/gcc-3.2.2~255 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=879acb60a73168b10b6c7e2a8e7b8f321eaa05c3;p=thirdparty%2Fgcc.git [multiple changes] 2002-11-23 Marek Michalkiewicz 2002-09-26 Theodore A. Roth * config/avr/avr.c: Eliminate use of _PC_ in pc relative insns. * config/avr/avr.md: Ditto. From-SVN: r59418 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 719dcd345550..0389723068bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-11-23 Marek Michalkiewicz + + 2002-09-26 Theodore A. Roth + * config/avr/avr.c: Eliminate use of _PC_ in pc relative insns. + * config/avr/avr.md: Ditto. + 2002-11-23 Eric Botcazou PR c/8588 diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index acfa6f1b3898..a3c48a8b111c 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -1234,60 +1234,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) @@ -1297,10 +1297,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)); } } @@ -1311,10 +1311,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)); } } @@ -4783,8 +4783,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); commands_in_file = 0; commands_in_prologues = 0; diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index 249b4aa19575..6be88e181489 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -381,7 +381,7 @@ "ld __tmp_reg__,%a1+ st %a0+,__tmp_reg__ dec %2 - brne _PC_-8" + brne .-8" [(set_attr "length" "4") (set_attr "cc" "clobber")]) @@ -399,13 +399,13 @@ 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")]) @@ -448,7 +448,7 @@ "" "st %a0+,__zero_reg__ dec %1 - brne _PC_-6" + brne .-6" [(set_attr "length" "3") (set_attr "cc" "clobber")]) @@ -464,12 +464,12 @@ 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")]) @@ -503,7 +503,7 @@ "" "ld __tmp_reg__,%a0+ tst __tmp_reg__ - brne _PC_-6" + brne .-6" [(set_attr "length" "3") (set_attr "cc" "clobber")]) @@ -1872,7 +1872,7 @@ output_asm_insn (AS2 (sbrc,%1,%2), operands); if (get_attr_length (insn) != 4) return AS1 (rjmp,%3); - return (AS1 (rjmp,_PC_+4) CR_TAB + return (AS1 (rjmp,.+4) CR_TAB AS1 (jmp,%3)); }" [(set (attr "length") @@ -1909,7 +1909,7 @@ if (get_attr_length (insn) != 4) return AS1 (rjmp,%3); - return (AS1 (rjmp,_PC_+4) CR_TAB + return (AS1 (rjmp,.+4) CR_TAB AS1 (jmp,%3)); }" [(set (attr "length") @@ -1946,7 +1946,7 @@ if (get_attr_length (insn) != 4) return AS1 (rjmp,%3); - return (AS1 (rjmp,_PC_+4) CR_TAB + return (AS1 (rjmp,.+4) CR_TAB AS1 (jmp,%3)); }" [(set (attr "length") @@ -2265,10 +2265,10 @@ 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)); }") @@ -2300,10 +2300,10 @@ 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)); }") @@ -2330,10 +2330,10 @@ 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)); }")