Displaying 14 results from an estimated 14 matches for "__thumb__".
2006 Jun 26
0
[klibc 22/43] arm support for klibc
...rch/arm/crt0.S
new file mode 100644
index 0000000..1e81f8e
--- /dev/null
+++ b/usr/klibc/arch/arm/crt0.S
@@ -0,0 +1,23 @@
+#
+# arch/arm/crt0.S
+#
+# void _start(void)
+# {
+# __libc_init(elf_structure, atexit_ptr);
+# }
+#
+
+ .text
+ .balign 4
+ .type _start,#function
+ .globl _start
+
+#ifdef __thumb__
+ .thumb_func
+#endif
+
+_start: mov r0, sp
+ mov r1, #0
+ bl __libc_init
+
+ .size _start,.-_start
diff --git a/usr/klibc/arch/arm/setjmp.S b/usr/klibc/arch/arm/setjmp.S
new file mode 100644
index 0000000..1841bc7
--- /dev/null
+++ b/usr/klibc/arch/arm/setjmp.S
@@ -0,0 +1,102 @@
+#
+# arch/arm/set...
2011 Feb 16
2
fwd: fix up ARM assembly to use 'bx lr' in place of 'mov pc, lr'.
..., lr
+#else
+ bx lr
+#endif
.size setjmp,.-setjmp
.text
@@ -39,7 +43,11 @@ setjmp:
longjmp:
ldmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
mov r0, r1
+#if defined (___ARM_ARCH_4T__) || defined (__ARM_ARCH_4__)
mov pc, lr
+#else
+ bx lr
+#endif
.size longjmp,.-longjmp
#else /* __thumb__ */
@@ -75,7 +83,11 @@ setjmp:
mov r7, sp
stmia r0!, {r3, r4, r5, r6, r7}
mov r0, #0
+#if defined (___ARM_ARCH_4T__) || defined (__ARM_ARCH_4__)
mov pc, lr
+#else
+ bx lr
+#endif
.size setjmp,.-setjmp
.text
@@ -96,7 +108,11 @@ longjmp:
mov r0, r1
bne 1f
mov r0, #1
+#if defined (_...
2011 May 17
2
[PATCH] arm: use bx on thumb2 v3
...LIBC_SYSCONFIG_H */
diff --git a/usr/klibc/arch/arm/setjmp.S b/usr/klibc/arch/arm/setjmp.S
index 2232458..6018bda 100644
--- a/usr/klibc/arch/arm/setjmp.S
+++ b/usr/klibc/arch/arm/setjmp.S
@@ -4,6 +4,8 @@
# setjmp/longjmp for the ARM architecture
#
+#include <klibc/asmmacros.h>
+
#ifndef __thumb__
#
@@ -29,7 +31,7 @@
setjmp:
stmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
mov r0, #0
- mov pc, lr
+ BX(lr)
.size setjmp,.-setjmp
.text
@@ -39,7 +41,7 @@ setjmp:
longjmp:
ldmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
mov r0, r1
- mov pc, lr
+ BX(lr)
.size longjmp,.-l...
2004 Feb 22
3
ARM/Thumb updates and some other minor tweaks
...n means align on a 2^n boundary
+ .globl __exit_handler
+ .type __exit_handler,object
+
+__exit_handler:
+ .word _exit
+ .size __exit_handler,4
+
+
+ .text
+ .align 2 @ For ARM, align means align on a 2^n boundary
+ .globl exit
+ .type exit,function
+ .globl _exit
+ .type _exit,function
+
+#ifdef __thumb__
+
+ .thumb_func
+exit:
+ ldr r1, =__exit_handler
+ ldr r1, [r1, #0]
+ bx r1
+ .size exit,.-exit
+
+ .thumb_func
+_exit:
+ mov r7, #__NR_exit
+ swi 0
+ .size exit,.-_exit
+
+#else
+
+exit:
+ ldr r1, =__exit_handler
+ ldr pc, [r1, #0]
+ .size exit,.-exit
+
+_exit:
+ swi $__NR_exit
+ .size exit,.-_exi...
2012 Jun 29
1
[LLVMdev] Request for merge: GHC/ARM calling convention.
...We also initially make sure that there are @RESERVED_C_STACK_BYTES@
on the
* C-stack. This is done to reserve some space for the allocation of
* temporaries in STG code.
If you are then curious how ARM-specific StgRun implementation looks,
then here it is:
#ifdef arm_HOST_ARCH
#if defined(__thumb__)
#define THUMB_FUNC ".thumb\n\t.thumb_func\n\t"
#else
#define THUMB_FUNC
#endif
StgRegTable *
StgRun(StgFunPtr f, StgRegTable *basereg) {
StgRegTable * r;
__asm__ volatile (
/*
* save callee-saves registers on behalf of the STG code.
*/
&qu...
2012 Jun 29
0
[LLVMdev] Request for merge: GHC/ARM calling convention.
On 29 June 2012 17:46, Karel Gardas <karel.gardas at centrum.cz> wrote:
> Yes and no. Shortly: original GHC/ARM/LLVM port was done by Stephen on
> ARMv5/Qemu IIRC. I've later added whole VFP support and ARMv7 support. The
> code in GHC is properly #ifdefed, so if there is no VFP available on pre
> ARMv6, then it's not used. ie. GHC STG floating points regs are then
>
2012 Jun 29
2
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi Renato,
On 06/25/12 12:13 AM, Renato Golin wrote:
> Hi Karel,
>
> I understand this patch has already been merged (to 3.0), so don't
> take my question as stopping the merge to head, I'm just making sure I
> got it right... The rest looks correct.
>
> + CCIfType<[v2f64], CCAssignToReg<[Q4, Q5]>>,
> + CCIfType<[f64], CCAssignToReg<[D8, D9,
2012 Jun 28
1
Bug#634890: klibc issues on armhf (not Debian/armel)
On Tue, 19 Jun 2012, Steve McIntyre wrote:
>
> More debugging results:
>
> * If I replace -Os with -O0 to disable optimisation, the crash goes
> away too. Suggests (maybe) a compiler bug here...
nasty. :|
> * There's a real bug in the ARM assembly version of longjmp in
> usr/klibc/arch/arm/setjmp.S: it will always pass back its first
> argument as a
2012 Oct 03
0
[klibc:master] [PATCH] fix ARM longjmp with zero 'val'.
...r/klibc/arch/arm/setjmp.S
+++ b/usr/klibc/arch/arm/setjmp.S
@@ -40,10 +40,9 @@ setjmp:
.type longjmp, #function
longjmp:
ldmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
- mov r0, r1
- bne 1f
- mov r0, #1
-1: BX(lr)
+ movs r0, r1
+ moveq r0, #1
+ BX(lr)
.size longjmp,.-longjmp
#else /* __thumb__ */
2012 Oct 02
2
[PATCH] fix ARM longjmp with zero 'val'.
...@ setjmp:
.type longjmp, #function
longjmp:
ldmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
- mov r0, r1
- bne 1f
- mov r0, #1
-1: BX(lr)
+ movs r0, r1
+ moveq r0, #1
+ BX(lr)
.size longjmp,.-longjmp
#else /* __thumb__ */
2012 Jul 01
2
[klibc:master] arm/setjmp.S: fix longjmp
.../arch/arm/setjmp.S
index 6018bda..d351e0e 100644
--- a/usr/klibc/arch/arm/setjmp.S
+++ b/usr/klibc/arch/arm/setjmp.S
@@ -41,7 +41,9 @@ setjmp:
longjmp:
ldmia r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}
mov r0, r1
- BX(lr)
+ bne 1f
+ mov r0, #1
+1: BX(lr)
.size longjmp,.-longjmp
#else /* __thumb__ */
2011 Mar 30
0
(fwd) Bug#618616: arm build failure with latest binutils - usr/klibc/syscalls/_exit.S:29: Error: .size expression does not evaluate to a constant
...d
with recent binutils and was generating broken assembler anyway
Author: Lo?c Minier <loic.minier at linaro.org>
--- klibc-1.5.20.orig/usr/klibc/arch/arm/sysstub.ph
+++ klibc-1.5.20/usr/klibc/arch/arm/sysstub.ph
@@ -52,7 +52,7 @@ sub make_sysstub($$$$$@) {
print OUT "#endif /* __thumb__*/\n";
- print OUT " .size __syscall${i},.-__syscall${i}\n";
+ print OUT " .size ${fname},.-${fname}\n";
}
1;
----- End forwarded message -----
2013 Nov 12
0
[klibc:master] arm64: Add arm64 support
...64/crt0.S
index 1e81f8e..0b2dd32 100644
--- a/usr/klibc/arch/arm/crt0.S
+++ b/usr/klibc/arch/arm64/crt0.S
@@ -1,5 +1,5 @@
#
-# arch/arm/crt0.S
+# arch/arm64/crt0.S
#
# void _start(void)
# {
@@ -8,16 +8,12 @@
#
.text
- .balign 4
+ .balign 8
.type _start,#function
.globl _start
-#ifdef __thumb__
- .thumb_func
-#endif
-
-_start: mov r0, sp
- mov r1, #0
+_start:
+ mov x0, sp
+ mov x1, #0
bl __libc_init
-
.size _start,.-_start
diff --git a/usr/klibc/arch/arm64/setjmp.S b/usr/klibc/arch/arm64/setjmp.S
new file mode 100644
index 0000000..13ab99d
--- /dev/null
+++ b/usr/klibc/arch/arm64/setj...
2006 Jun 28
35
[klibc 00/31] klibc as a historyless patchset (updated and reorganized)
I have updated the klibc patchset based on feedback received. In
particular, the patchset has been reorganized so as not to break
git-bisect.
Additionally, this updates the patch base to 2.6.17-git12
(d38b69689c349f35502b92e20dafb30c62d49d63) and klibc 1.4.8; the main
difference on the klibc side is removal of obsolete code.
This is also available as a git tree at: