diff options
Diffstat (limited to 'payloads/libpayload')
-rw-r--r-- | payloads/libpayload/arch/arm/exception_asm.S | 16 | ||||
-rw-r--r-- | payloads/libpayload/arch/arm/head.S | 10 | ||||
-rw-r--r-- | payloads/libpayload/arch/arm/memcpy.S | 2 | ||||
-rw-r--r-- | payloads/libpayload/arch/arm/memmove.S | 2 | ||||
-rw-r--r-- | payloads/libpayload/arch/arm/memset.S | 3 | ||||
-rw-r--r-- | payloads/libpayload/include/arm/arch/asm.h | 6 |
6 files changed, 16 insertions, 23 deletions
diff --git a/payloads/libpayload/arch/arm/exception_asm.S b/payloads/libpayload/arch/arm/exception_asm.S index 31d759335f..1f369bcc05 100644 --- a/payloads/libpayload/arch/arm/exception_asm.S +++ b/payloads/libpayload/arch/arm/exception_asm.S @@ -27,13 +27,7 @@ * SUCH DAMAGE. */ - .global exception_stack_end -exception_stack_end: - .word 0 - -exception_handler: - .word 0 - + .text .align 6 .arm @@ -88,6 +82,7 @@ exception_common: ldmfd sp!, { pc }^ + .align 2 _undefined_instruction: .word exception_undefined_instruction _software_interrupt: .word exception_software_interrupt _prefetch_abort: .word exception_prefetch_abort @@ -96,6 +91,13 @@ _not_used: .word exception_not_used _irq: .word exception_irq _fiq: .word exception_fiq + .global exception_stack_end +exception_stack_end: + .word 0 + +exception_handler: + .word 0 + .thumb .global set_vbar .thumb_func diff --git a/payloads/libpayload/arch/arm/head.S b/payloads/libpayload/arch/arm/head.S index 0d23c7256f..54fdb5defd 100644 --- a/payloads/libpayload/arch/arm/head.S +++ b/payloads/libpayload/arch/arm/head.S @@ -29,10 +29,6 @@ #include <arch/asm.h> -1: -.align 4 -.word _stack - /* * Our entry point */ @@ -43,7 +39,7 @@ ENTRY(_entry) /* TODO: Clear BSS */ /* Setup new stack */ - ldr sp, 1b + ldr sp, 1f /* TODO: Save old stack pointer and link register */ @@ -57,3 +53,7 @@ ENTRY(_entry) /* Return to the original context. */ bx lr ENDPROC(_entry) + +.align 4 +1: +.word _stack diff --git a/payloads/libpayload/arch/arm/memcpy.S b/payloads/libpayload/arch/arm/memcpy.S index b8f857bb56..1388d05ad9 100644 --- a/payloads/libpayload/arch/arm/memcpy.S +++ b/payloads/libpayload/arch/arm/memcpy.S @@ -52,8 +52,6 @@ ldmfd sp!, {r0, \reg1, \reg2} .endm - .text - /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */ ENTRY(memcpy) diff --git a/payloads/libpayload/arch/arm/memmove.S b/payloads/libpayload/arch/arm/memmove.S index dc29f7458c..bd5f8f1ac5 100644 --- a/payloads/libpayload/arch/arm/memmove.S +++ b/payloads/libpayload/arch/arm/memmove.S @@ -13,8 +13,6 @@ #include <arch/asm.h> #include "asmlib.h" - .text - /* * Prototype: void *memmove(void *dest, const void *src, size_t n); * diff --git a/payloads/libpayload/arch/arm/memset.S b/payloads/libpayload/arch/arm/memset.S index 945767c599..0c1102deb4 100644 --- a/payloads/libpayload/arch/arm/memset.S +++ b/payloads/libpayload/arch/arm/memset.S @@ -13,9 +13,6 @@ #include <arch/asm.h> #include "asmlib.h" - .text - .align 5 - ENTRY(memset) ands r3, r0, #3 @ 1 unaligned? mov ip, r0 @ preserve r0 as return value diff --git a/payloads/libpayload/include/arm/arch/asm.h b/payloads/libpayload/include/arm/arch/asm.h index 9e9e7ceff4..7bf2aa8974 100644 --- a/payloads/libpayload/include/arm/arch/asm.h +++ b/payloads/libpayload/include/arm/arch/asm.h @@ -40,16 +40,14 @@ END(name) #define ENTRY(name) \ - .globl name; \ + .section .text.name, "ax", %progbits; \ + .global name; \ ALIGN; \ name: #define END(name) \ .size name, .-name -/* Everything should go into the text section by default. */ - .text - /* Thumb code uses the (new) unified assembly syntax. */ THUMB( .syntax unified ) |