{
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)
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));
}
}
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));
}
}
"__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
}
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);
"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));
}")