This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more infromation.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I use gcc-2.95 on Cygwin for i960-unknown-coff. The exception handling does not work. As far as I could find it is due to __builtin_setjmp/longjmp. The following code hangs on VxWorks 5.1:
int jbuf[1024];
if(__builtin_setjmp(jbuf) == 0) {
__builtin_longjmp(jbuf, 1);
} else {
printf("jumped\n");
}
In the assembler I can see that the code for longjmp is wrong:
code generated for __bulitin_setjmp (seems OK for me):
ldconst _jbuf,g4
st fp,(g4)
ldconst L17,g5
st g5,4(g4)
st sp,8(g4)
mov 0,g4
code generated for __buitin_longjmp(seems wrong):
ldconst _jbuf,g4
flushreg
mov 1,fp
lda -64(fp),pfp
ld (g4),g5
st g5,-56(fp)
ld 8(g4),g4
st g4,-60(fp)
ret
How do I fix this?
Is that possible to make compiler to generate calls to a setjmp/longjmp
from the library for exception handling?
I've seen a macro DONT_USE_BUITIN_SETJMP in the source code. How
do I turn it on for buiding gcc?
Best regards
Artem
begin:vcard n:Alimarine;Artem tel;home:(+31) 40-2440633 tel;work:(+31) 40-2763078 x-mozilla-html:TRUE adr:;;;;;; version:2.1 email;internet:aalimari@best.ms.philips.com fn:Artem Alimarine end:vcard
------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |