* [Linux-ia64] as & .restore sp directive
@ 2003-05-11 17:50 Ronald Veldema
2003-05-11 18:10 ` David Mosberger
2003-05-12 13:32 ` Ronald Veldema
0 siblings, 2 replies; 3+ messages in thread
From: Ronald Veldema @ 2003-05-11 17:50 UTC (permalink / raw)
To: linux-ia64
Hi all,
my java compiler now compiles quite a bit of java.*
and so Am looking at the unwind info that I need to emit.
I now have a problem with the .restore directive.
It looks like I can only emit it once or as dies.
Given:
if (condition) {
...;
return;
} else {
...;
return;
}
I emit two function trailers (restoring b0, resetting sp, etc.)
and in doing so I also emit two ".restore sp" directives
and as dies with:
out.s: Assembler messages:
out.s:79: Error: Epilogue count of 4294967296 exceeds number of nested
prologues (0)
Adding two .prologue statements or two ".restore sp, 1"
won't work. Any ideas ?
R.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] as & .restore sp directive
2003-05-11 17:50 [Linux-ia64] as & .restore sp directive Ronald Veldema
@ 2003-05-11 18:10 ` David Mosberger
2003-05-12 13:32 ` Ronald Veldema
1 sibling, 0 replies; 3+ messages in thread
From: David Mosberger @ 2003-05-11 18:10 UTC (permalink / raw)
To: linux-ia64
>>>>> On Sun, 11 May 2003 19:50:17 +0200, Ronald Veldema <veldema@cs.fau.de> said:
Ronald> Hi all, my java compiler now compiles quite a bit of java.*
Ronald> and so Am looking at the unwind info that I need to emit. I
Ronald> now have a problem with the .restore directive. It looks
Ronald> like I can only emit it once or as dies.
Ronald> Given:
Ronald> if (condition) { ...; return; } else { ...; return; }
Ronald> I emit two function trailers (restoring b0, resetting sp,
Ronald> etc.) and in doing so I also emit two ".restore sp"
Ronald> directives and as dies with:
Ronald> out.s: Assembler messages: out.s:79: Error: Epilogue count
Ronald> of 4294967296 exceeds number of nested prologues (0)
Ronald> Adding two .prologue statements or two ".restore sp, 1"
Ronald> won't work. Any ideas ?
Looks like you need to upgrade the assembler. This is a known bug in
earlier versions (sorry, I don't recall when exactly this was fixed).
--david
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] as & .restore sp directive
2003-05-11 17:50 [Linux-ia64] as & .restore sp directive Ronald Veldema
2003-05-11 18:10 ` David Mosberger
@ 2003-05-12 13:32 ` Ronald Veldema
1 sibling, 0 replies; 3+ messages in thread
From: Ronald Veldema @ 2003-05-12 13:32 UTC (permalink / raw)
To: linux-ia64
I know, that is what gcc does as well.
It just looks inefficient to add extra jumps, esp. if we don't need them...
R.
CH Gowri Kumar wrote:
>>Adding two .prologue statements or two ".restore sp, 1"
>>won't work. Any ideas ?
>>
>>
>How about doing it this way?
>if()
>{
> ....
> goto RETURN;
>}
>else
>{
> ....
> goto RETURN;
>}
>RETURN:
> .restore sp
> mov r12 = r2
> br.ret.sptk.many b0
> .endp
>
>This way I feel you can put all the necessary things (restoring sp,
>returning etc..) at one place, instead of duplicating the same code.
>
>Regards,
>Gowri Kumar
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-05-12 13:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-11 17:50 [Linux-ia64] as & .restore sp directive Ronald Veldema
2003-05-11 18:10 ` David Mosberger
2003-05-12 13:32 ` Ronald Veldema
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox