//push ebp generated by the compiler
//mov ebp, esp
+#ifdef __GNUC__
__asm__ __volatile__ (
"movl 8(%ebp),%edi\n\t" /* get jmp_buf */
"movl 12(%ebp),%eax\n\t" /* store retval in j->eax */
"iret\n\t" /* actually jump to new cs:eip loading flags */
);
+#else
+#endif /*__GNUC__*/
return value; // dummy return never reached
}
-
+#ifdef __GNUC__
int _setjmp( jmp_buf env )
{
//push ebp generated by the compiler
//mov ebp, esp
-
__asm__ __volatile__ (
-
"pushl %edi\n\t"
"movl 8(%ebp),%edi\n\t"
"popl %edi\n\t"
);
-
-
-
-
-
return 0;
}
+
+#else
+#endif /*__GNUC__*/