avr-libc-dev
[Top][All Lists]
Advanced

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

Re: [avr-libc-dev] [bugs #4101] setjmp/longjmp destroy changes in global


From: Paul Schlie
Subject: Re: [avr-libc-dev] [bugs #4101] setjmp/longjmp destroy changes in global registers
Date: Mon, 07 Feb 2005 12:52:21 -0500
User-agent: Microsoft-Entourage/11.1.0.040913

> From: Joerg Wunsch <address@hidden>
> 
> As Joerg Wunsch wrote:
> 
>> This cannot work when linking against *any* pre-compiled object from
>> the library, as these files always risk to use one of the registers
>> the application might use as a fixed register variable.
> 
> Hmm, are you trying to tell me that we should perhaps establish an ABI
> where some registers are completely set aside for use in global
> register variables, so the compiler will never use them?  Sure, in
> that case, library code would not conflict with application code, but
> at the cost of possibly forcing the compiler to produce ineffective
> code as it needs to use memory variables where it could use a
> register.

- yes and no, asm routines would need to manually exclude their use,
  compiled code would automatically use them or not depending on if the
  registers were declared as being reserved or not at compile time.

> But again, no additional problems for asm sources, they just had to
> follow the very same ABI only.

- yes. (as long as it defines a hole in the caller-saved register set
  which asm routines were excluded from being able to use).






reply via email to

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