Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/msp430/setjmp.S')
-rw-r--r--newlib/libc/machine/msp430/setjmp.S105
1 files changed, 0 insertions, 105 deletions
diff --git a/newlib/libc/machine/msp430/setjmp.S b/newlib/libc/machine/msp430/setjmp.S
deleted file mode 100644
index 6684f8acb..000000000
--- a/newlib/libc/machine/msp430/setjmp.S
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (c) 2013 Red Hat, Inc. All rights reserved.
-
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the BSD License. This program is distributed in the hope that
- it will be useful, but WITHOUT ANY WARRANTY expressed or implied,
- including the implied warranties of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. A copy of this license is available at
- http://www.opensource.org/licenses. Any Red Hat trademarks that are
- incorporated in the source code or documentation are not subject to
- the BSD License and may only be used or replicated with the express
- permission of Red Hat, Inc.
-*/
-
-# setjmp/longjmp for msp430. The jmpbuf looks like this:
-#
-# Register Jmpbuf offset
-# small large
-# r0 (pc) 0x00 0x00
-# r1 (sp) 0x02 0x04
-# r4 0x04 0x08
-# r5 0x06 0x0c
-# r6 0x08 0x10
-# r7 0x0a 0x14
-# r8 0x0c 0x18
-# r9 0x0e 0x1c
-# r10 0x10 0x20
-
- .text
- .global setjmp
-setjmp:
- ; Upon entry r12 points to the jump buffer.
- ; Returns 0 to caller.
-
-#if defined __MSP430X_LARGE__
- mova @r1, r13
- mova r13, 0(r12)
- mova r1, 4(r12)
- mova r4, 8(r12)
- mova r5, 12(r12)
- mova r6, 16(r12)
- mova r7, 20(r12)
- mova r8, 24(r12)
- mova r9, 28(r12)
- mova r10, 32(r12)
- clr r12
- reta
-#else
- ;; Get the return address off the stack
- mov.w @r1, r13
- mov.w r13, 0(r12)
- mov.w r1, 2(r12)
- mov.w r4, 4(r12)
- mov.w r5, 6(r12)
- mov.w r6, 8(r12)
- mov.w r7, 10(r12)
- mov.w r8, 12(r12)
- mov.w r9, 14(r12)
- mov.w r10, 16(r12)
- clr r12
- ret
-#endif
-
-
- .global longjmp
-longjmp:
- ; Upon entry r12 points to the jump buffer and
- ; r13 contains the value to be returned by setjmp.
-
-#if defined __MSP430X_LARGE__
- mova @r12+, r14
- mova @r12+, r1
- mova @r12+, r4
- mova @r12+, r5
- mova @r12+, r6
- mova @r12+, r7
- mova @r12+, r8
- mova @r12+, r9
- mova @r12+, r10
-#else
- mov.w @r12+, r14
- mov.w @r12+, r1
- mov.w @r12+, r4
- mov.w @r12+, r5
- mov.w @r12+, r6
- mov.w @r12+, r7
- mov.w @r12+, r8
- mov.w @r12+, r9
- mov.w @r12+, r10
-#endif
- ; If caller attempts to return 0, return 1 instead.
- cmp.w #0, r13
- jne .Lnot_zero
- mov.w #1, r13
-.Lnot_zero:
- mov.w r13, r12
-
-#if defined __MSP430X_LARGE__
- adda #4, r1
- mova r14, r0
-#else
- add.w #2, r1
- mov.w r14, r0
-#endif
-