diff --git a/compiler/avr/aasmcpu.pas b/compiler/avr/aasmcpu.pas index 2989ac4b44..f427a8e365 100644 --- a/compiler/avr/aasmcpu.pas +++ b/compiler/avr/aasmcpu.pas @@ -509,61 +509,33 @@ implementation end; A_STS: begin - { certain cpu types do not support some instructions, so replace them } - case current_settings.cputype of - cpu_avr1: - begin - with taicpu(curtai).oper[0]^ do - if (ref^.base=NR_NO) and (ref^.index=NR_NO) and (ref^.symbol=nil) and (ref^.offset<$40) then - begin - taicpu(curtai).opcode:=A_OUT; - taicpu(curtai).loadconst(0,ref^.offset); - end - else - begin - remove_instruction; - result:=false; - end; - end; - cpu_avrtiny: - begin - with taicpu(curtai).oper[0]^ do - if (ref^.base=NR_NO) and (ref^.index=NR_NO) and (ref^.symbol=nil) and (ref^.offset<$40) then - begin - taicpu(curtai).opcode:=A_OUT; - taicpu(curtai).loadconst(0,ref^.offset); - end; - end; - end; + if current_settings.cputype in [cpu_avrtiny, cpu_avr1] then + with taicpu(curtai).oper[0]^ do + if (ref^.base=NR_NO) and (ref^.index=NR_NO) and (ref^.symbol=nil) and (ref^.offset<$40) then + begin + taicpu(curtai).opcode:=A_OUT; + taicpu(curtai).loadconst(0,ref^.offset); + end + else if current_settings.cputype=cpu_avr1 then + begin + remove_instruction; + result:=false; + end; end; A_LDS: begin - { certain cpu types do not support some instructions, so replace them } - case current_settings.cputype of - cpu_avr1: - begin - with taicpu(curtai).oper[1]^ do - if (ref^.base=NR_NO) and (ref^.index=NR_NO) and (ref^.symbol=nil) and (ref^.offset<$40) then - begin - taicpu(curtai).opcode:=A_IN; - taicpu(curtai).loadconst(1,ref^.offset) - end - else - begin - remove_instruction; - result:=false; - end; - end; - cpu_avrtiny: - begin - with taicpu(curtai).oper[1]^ do - if (ref^.base=NR_NO) and (ref^.index=NR_NO) and (ref^.symbol=nil) and (ref^.offset<$40) then - begin - taicpu(curtai).opcode:=A_IN; - taicpu(curtai).loadconst(1,ref^.offset) - end; - end; - end; + if current_settings.cputype in [cpu_avrtiny, cpu_avr1] then + with taicpu(curtai).oper[1]^ do + if (ref^.base=NR_NO) and (ref^.index=NR_NO) and (ref^.symbol=nil) and (ref^.offset<$40) then + begin + taicpu(curtai).opcode:=A_IN; + taicpu(curtai).loadconst(1,ref^.offset) + end + else if current_settings.cputype=cpu_avr1 then + begin + remove_instruction; + result:=false; + end; end; A_SBIW, A_MULS,