avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] May avr-gcc emit EIJMP/EICALL?


From: Georg-Johann Lay
Subject: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?
Date: Wed, 12 Oct 2011 22:25:02 +0200
User-agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)

avr-gcc currenly emits EICALL/EIJMP instructions without caring for EIND, e.g. avr.md:3630:

(define_insn "call_insn"
  [...]
  ""
  "@
    %!icall
    %~call %x0
    %!ijmp
    %~jmp %x0"
    ...)

where %! resolves to 'e' for targets with > 128k of flash.

IMO that is not okay because the compiler does not care for EIND and even if he (or the user) did that approch is it not IRQ-save.

Instead, programs for big targets should use linker relaxation and jump to the generated jumping pad by means of IJMP/ICALL instead.

Thoughts?

Johann




reply via email to

[Prev in Thread] Current Thread [Next in Thread]