|
@@ -482,7 +482,7 @@ implementation
|
|
(taicpu(curtai).InsOffset-taicpu(curtai).oper[0]^.ref^.symbol.offset<-64*2)) then
|
|
(taicpu(curtai).InsOffset-taicpu(curtai).oper[0]^.ref^.symbol.offset<-64*2)) then
|
|
begin
|
|
begin
|
|
if inasmblock then
|
|
if inasmblock then
|
|
- Message(asmw_e_brxx_out_of_range)
|
|
|
|
|
|
+ MessagePos(taicpu(curtai).fileinfo,asmw_e_brxx_out_of_range)
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
current_asmdata.getjumplabel(l);
|
|
current_asmdata.getjumplabel(l);
|
|
@@ -504,14 +504,14 @@ implementation
|
|
in the reverse direction by 2 bytes, hence checking against a
|
|
in the reverse direction by 2 bytes, hence checking against a
|
|
distance of -2049*2 bytes. }
|
|
distance of -2049*2 bytes. }
|
|
if not(inasmblock) and (taicpu(curtai).InsOffset-taicpu(curtai).oper[0]^.ref^.symbol.offset<=2047*2) and
|
|
if not(inasmblock) and (taicpu(curtai).InsOffset-taicpu(curtai).oper[0]^.ref^.symbol.offset<=2047*2) and
|
|
- (taicpu(curtai).InsOffset-taicpu(curtai).oper[0]^.ref^.symbol.offset>=-2049*2) and
|
|
|
|
- { jmps to function go outside the currently considered scope, so do not mess with them.
|
|
|
|
- Those are generated by the peephole optimizer from call/ret sequences }
|
|
|
|
- not(taicpu(curtai).oper[0]^.ref^.symbol.typ=AT_FUNCTION) then
|
|
|
|
- begin
|
|
|
|
- taicpu(curtai).opcode:=A_RJMP;
|
|
|
|
- again:=true;
|
|
|
|
- end;
|
|
|
|
|
|
+ (taicpu(curtai).InsOffset-taicpu(curtai).oper[0]^.ref^.symbol.offset>=-2049*2) and
|
|
|
|
+ { jmps to function go outside the currently considered scope, so do not mess with them.
|
|
|
|
+ Those are generated by the peephole optimizer from call/ret sequences }
|
|
|
|
+ not(taicpu(curtai).oper[0]^.ref^.symbol.typ=AT_FUNCTION) then
|
|
|
|
+ begin
|
|
|
|
+ taicpu(curtai).opcode:=A_RJMP;
|
|
|
|
+ again:=true;
|
|
|
|
+ end;
|
|
A_STS:
|
|
A_STS:
|
|
begin
|
|
begin
|
|
if current_settings.cputype in [cpu_avrtiny, cpu_avr1] then
|
|
if current_settings.cputype in [cpu_avrtiny, cpu_avr1] then
|