zte's code,first commit
Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/build/uClibc/libc/sysdeps/linux/e1/setjmp.c b/ap/build/uClibc/libc/sysdeps/linux/e1/setjmp.c
new file mode 100644
index 0000000..e8a758c
--- /dev/null
+++ b/ap/build/uClibc/libc/sysdeps/linux/e1/setjmp.c
@@ -0,0 +1,55 @@
+/* This file is lisenced under LGPL
+ * Copyright (C) 2002-2003, George Thanos <george.thanos@gdt.gr>
+ * Yannis Mitsos <yannis.mitsos@gdt.gr>
+ */
+
+#include <setjmp.h>
+#include <stdio.h>
+#include <signal.h>
+
+
+int setjmp( jmp_buf state)
+{
+ __asm__ __volatile__( "mov %0, G3\n\t"
+ "mov %1, G4\n\t"
+ :"=l"(state->__jmpbuf->G3),
+ "=l"(state->__jmpbuf->G4)
+ :/*no input*/
+ :"%G3", "%G4" );
+
+ __asm__ __volatile__( "setadr %0\n\t"
+ "mov %1, L1\n\t"
+ "mov %2, L2\n\t"
+ :"=l"(state->__jmpbuf->SavedSP),
+ "=l"(state->__jmpbuf->SavedPC),
+ "=l"(state->__jmpbuf->SavedSR)
+ :/*no input*/);
+ return 0;
+}
+
+int sigsetjmp( sigjmp_buf state , int savesigs)
+{
+
+ if(savesigs) {
+ state->__mask_was_saved = 1;
+ /* how arg in <sigprocmask> is not significant */
+ sigprocmask(SIG_SETMASK, NULL, &state->__saved_mask);
+ } else
+ state->__mask_was_saved = 0;
+
+ __asm__ __volatile__( "mov %0, G3\n\t"
+ "mov %1, G4\n\t"
+ :"=l"(state->__jmpbuf->G3),
+ "=l"(state->__jmpbuf->G4)
+ :/*no input*/
+ :"%G3", "%G4" );
+
+ __asm__ __volatile__( "setadr %0\n\t"
+ "mov %1, L2\n\t"
+ "mov %2, L3\n\t"
+ :"=l"(state->__jmpbuf->SavedSP),
+ "=l"(state->__jmpbuf->SavedPC),
+ "=l"(state->__jmpbuf->SavedSR)
+ :/*no input*/);
+ return 0;
+}