diff options
author | Markos Chandras <markos.chandras@imgtec.com> | 2008-02-05 14:51:48 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2013-03-14 22:45:15 +0100 |
commit | 22686a1383c4a4a319eaaa6b16b1a9540114bd66 (patch) | |
tree | 04e12086f9187c150ba6a33db0368b9903e50363 /libc/sysdeps/linux/metag/_longjmp.S | |
parent | 37439e66a31f251eba39604885f57099a43d943d (diff) |
Add support for the Meta architecture
Meta cores are 32-bit, hardware multithreaded, general purpose, embedded
processors which also feature a DSP instruction set, and can be found in
many digital radios. They are capable of running different operating
systems on different hardware threads, for example a digital radio might
run RTOSes for DAB decoding and audio decoding on 3 hardware threads,
and run Linux on the 4th hardware thread to manage the user interface,
networking etc. HTPs are also capable of running SMP Linux on multiple
hardware threads.
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc/sysdeps/linux/metag/_longjmp.S')
-rw-r--r-- | libc/sysdeps/linux/metag/_longjmp.S | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/metag/_longjmp.S b/libc/sysdeps/linux/metag/_longjmp.S new file mode 100644 index 000000000..54bc71c36 --- /dev/null +++ b/libc/sysdeps/linux/metag/_longjmp.S @@ -0,0 +1,25 @@ +! Copyright (C) 2013 Imagination Technologies Ltd. + +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball. + + + .text + .global ___longjmp + .type ___longjmp,function + +___longjmp: + !! If val is 0, set it to 1 + CMP D0Ar2,#0 + ADDZ D0Ar2,D0Ar2,#1 + + !! Restore A0/A1 regs + MGETL A0.0,A0.1,[D1Ar1++] + !! Restore D0/D1 regs + MOV A0.3,D1Ar1 + MGETL D0FrT,D0.5,D0.6,D0.7,[A0.3++] + !! Move 2nd argument to return value + MOV D0Re0,D0Ar2 + MOV PC,D1RtP + .size ___longjmp,.-___longjmp + +libc_hidden_def(__longjmp) |