summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/avr32/__longjmp.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/avr32/__longjmp.S')
-rw-r--r--libc/sysdeps/linux/avr32/__longjmp.S21
1 files changed, 21 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/avr32/__longjmp.S b/libc/sysdeps/linux/avr32/__longjmp.S
new file mode 100644
index 000000000..245611a46
--- /dev/null
+++ b/libc/sysdeps/linux/avr32/__longjmp.S
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2004-2007 Atmel Corporation
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser General
+ * Public License. See the file "COPYING.LIB" in the main directory of this
+ * archive for more details.
+ */
+
+ .global __longjmp
+ .type __longjmp,"function"
+ .align 1
+__longjmp:
+ ldm r12++, r0-r8,sp,lr
+ mustr r8 /* restore status register (lower half) */
+ cp r11, 0 /* can't return zero */
+ frs
+ moveq r11, 1
+ retal r11
+ .size __longjmp, . - __longjmp
+
+libc_hidden_def(__longjmp)