diff options
author | 2020-05-08 10:27:16 +0000 | |
---|---|---|
committer | 2020-05-08 10:27:16 +0000 | |
commit | c47591cd94c00bd1e4cc6bf457966657a7598451 (patch) | |
tree | 91bd474363bc3df968e6591b9f51db4a8617cf19 | |
parent | 74944356f7d30c3578b1117410065a6271603b0e (diff) | |
parent | af3143c4d42f40ccb84b8fa9e76f0fbd6fa458c6 (diff) | |
download | cortex-m-c47591cd94c00bd1e4cc6bf457966657a7598451.tar.gz cortex-m-c47591cd94c00bd1e4cc6bf457966657a7598451.tar.zst cortex-m-c47591cd94c00bd1e4cc6bf457966657a7598451.zip |
Merge #216
216: Add unwind information to external assembly r=jonas-schievink a=Tiwalun
Add unwind information to the external assembly files, as discussed in #215.
The `.debug_frame` section is now present:
```
cortex-m.o (ex bin/thumbv6m-none-eabi.a):
section size addr
.text 0x0 0x0
.data 0x0 0x0
.bss 0x0 0x0
.text.__bkpt 0x4 0x0
.text.__control_r 0x6 0x0
.text.__control_w 0x6 0x0
.text.__cpsid 0x4 0x0
.text.__cpsie 0x4 0x0
.text.__delay 0x8 0x0
.text.__dmb 0x6 0x0
.text.__dsb 0x6 0x0
.text.__isb 0x6 0x0
.text.__msp_r 0x6 0x0
.text.__msp_w 0x6 0x0
.text.__nop 0x2 0x0
.text.__primask 0x6 0x0
.text.__psp_r 0x6 0x0
.text.__psp_w 0x6 0x0
.text.__sev 0x4 0x0
.text.__udf 0x2 0x0
.text.__wfe 0x4 0x0
.text.__wfi 0x4 0x0
.debug_line 0x161 0x0
.debug_info 0x22 0x0
.debug_abbrev 0x12 0x0
.debug_aranges 0xb0 0x0
.debug_str 0x30 0x0
.debug_ranges 0xa8 0x0
.debug_frame 0x140 0x0
.ARM.attributes 0x1c 0x0
Total 0x4d9
```
Co-authored-by: Dominik Boehi <dominik.boehi@gmail.com>
-rw-r--r-- | asm-cm7-r0p1.s | 6 | ||||
-rw-r--r-- | asm-v7.s | 10 | ||||
-rw-r--r-- | asm-v8-main.s | 11 | ||||
-rw-r--r-- | asm-v8.s | 10 | ||||
-rw-r--r-- | asm.s | 38 | ||||
-rw-r--r-- | bin/thumbv6m-none-eabi.a | bin | 5126 -> 5806 bytes | |||
-rw-r--r-- | bin/thumbv7em-none-eabi.a | bin | 9422 -> 10570 bytes | |||
-rw-r--r-- | bin/thumbv7em-none-eabihf.a | bin | 9422 -> 10570 bytes | |||
-rw-r--r-- | bin/thumbv7m-none-eabi.a | bin | 7380 -> 8328 bytes | |||
-rw-r--r-- | bin/thumbv8m.base-none-eabi.a | bin | 7310 -> 8254 bytes | |||
-rw-r--r-- | bin/thumbv8m.main-none-eabi.a | bin | 11904 -> 13372 bytes | |||
-rw-r--r-- | bin/thumbv8m.main-none-eabihf.a | bin | 11904 -> 13372 bytes |
12 files changed, 74 insertions, 1 deletions
diff --git a/asm-cm7-r0p1.s b/asm-cm7-r0p1.s index 9a1c0e3..28c3384 100644 --- a/asm-cm7-r0p1.s +++ b/asm-cm7-r0p1.s @@ -1,7 +1,10 @@ + .cfi_sections .debug_frame + .section .text.__basepri_max_cm7_r0p1 .global __basepri_max_cm7_r0p1 .syntax unified .thumb_func + .cfi_startproc __basepri_max_cm7_r0p1: mrs r1, PRIMASK cpsid i @@ -11,12 +14,14 @@ __basepri_max_cm7_r0p1: bxne lr cpsie i bx lr + .cfi_endproc .size __basepri_max_cm7_r0p1, . - __basepri_max_cm7_r0p1 .section .text.__basepri_w_cm7_r0p1 .global __basepri_w_cm7_r0p1 .syntax unified .thumb_func + .cfi_startproc __basepri_w_cm7_r0p1: mrs r1, PRIMASK cpsid i @@ -26,4 +31,5 @@ __basepri_w_cm7_r0p1: bxne lr cpsie i bx lr + .cfi_endproc .size __basepri_w_cm7_r0p1, . - __basepri_w_cm7_r0p1 @@ -1,31 +1,41 @@ + .cfi_sections .debug_frame + .section .text.__basepri_max .global __basepri_max .thumb_func + .cfi_startproc __basepri_max: msr BASEPRI_MAX, r0 bx lr + .cfi_endproc .size __basepri_max, . - __basepri_max .section .text.__basepri_r .global __basepri_r .thumb_func + .cfi_startproc __basepri_r: mrs r0, BASEPRI bx lr + .cfi_endproc .size __basepri_r, . - __basepri_r .section .text.__basepri_w .global __basepri_w .thumb_func + .cfi_startproc __basepri_w: msr BASEPRI, r0 bx lr + .cfi_endproc .size __basepri_w, . - __basepri_w .section .text.__faultmask .global __faultmask .thumb_func + .cfi_startproc __faultmask: mrs r0, FAULTMASK bx lr + .cfi_endproc .size __faultmask, . - __faultmask diff --git a/asm-v8-main.s b/asm-v8-main.s index 2928b2a..1fad155 100644 --- a/asm-v8-main.s +++ b/asm-v8-main.s @@ -1,32 +1,43 @@ + + .cfi_sections .debug_frame + .section .text.__msplim_r .global __msplim_r .thumb_func + .cfi_startproc __msplim_r: mrs r0, MSPLIM bx lr + .cfi_endproc .size __msplim_r, . - __msplim_r .section .text.__msplim_w .global __msplim_w .thumb_func + .cfi_startproc __msplim_w: msr MSPLIM, r0 bx lr + .cfi_endproc .size __msplim_w, . - __msplim_w .section .text.__psplim_r .global __psplim_r .thumb_func + .cfi_startproc __psplim_r: mrs r0, PSPLIM bx lr + .cfi_endproc .size __psplim_r, . - __psplim_r .section .text.__psplim_w .global __psplim_w .thumb_func + .cfi_startproc __psplim_w: msr PSPLIM, r0 bx lr + .cfi_endproc .size __psplim_w, . - __psplim_w @@ -1,32 +1,42 @@ + .cfi_sections .debug_frame + .section .text.__tt .global __tt .thumb_func + .cfi_startproc __tt: tt r0, r0 bx lr + .cfi_endproc .size __tt, . - __tt .section .text.__ttt .global __ttt .thumb_func + .cfi_startproc __ttt: ttt r0, r0 bx lr + .cfi_endproc .size __ttt, . - __ttt .section .text.__tta .global __tta .thumb_func + .cfi_startproc __tta: tta r0, r0 bx lr + .cfi_endproc .size __tta, . - __tta .section .text.__ttat .global __ttat .thumb_func + .cfi_startproc __ttat: ttat r0, r0 bx lr + .cfi_endproc .size __ttat, . - __ttat @@ -1,86 +1,108 @@ + .cfi_sections .debug_frame + .section .text.__bkpt .global __bkpt .thumb_func + .cfi_startproc __bkpt: bkpt bx lr + .cfi_endproc .size __bkpt, . - __bkpt .section .text.__control_r .global __control_r .thumb_func + .cfi_startproc __control_r: mrs r0, CONTROL bx lr + .cfi_endproc .size __control_r, . - __control_r .section .text.__control_w .global __control_w .thumb_func + .cfi_startproc __control_w: msr CONTROL, r0 bx lr + .cfi_endproc .size __control_w, . - __control_w .section .text.__cpsid .global __cpsid .thumb_func + .cfi_startproc __cpsid: cpsid i bx lr + .cfi_endproc .size __cpsid, . - __cpsid .section .text.__cpsie .global __cpsie .thumb_func + .cfi_startproc __cpsie: cpsie i bx lr + .cfi_endproc .size __cpsie, . - __cpsie .section .text.__delay .global __delay .syntax unified .thumb_func + .cfi_startproc __delay: 1: nop subs r0, #1 bne 1b // Branch to 1 instead of __delay does not generate R_ARM_THM_JUMP8 relocation, which breaks linking on the thumbv6m-none-eabi target bx lr + .cfi_endproc .size __delay, . - __delay .section .text.__dmb .global __dmb .thumb_func + .cfi_startproc __dmb: dmb 0xF bx lr + .cfi_endproc .size __dmb, . - __dmb .section .text.__dsb .global __dsb .thumb_func + .cfi_startproc __dsb: dsb 0xF bx lr + .cfi_endproc .size __dsb, . - __dsb .section .text.__isb .global __isb .thumb_func + .cfi_startproc __isb: isb 0xF bx lr + .cfi_endproc .size __isb, . - __isb .section .text.__msp_r .global __msp_r .thumb_func + .cfi_startproc __msp_r: mrs r0, MSP bx lr + .cfi_endproc .size __msp_r, . - __msp_r .section .text.__msp_w @@ -94,24 +116,30 @@ __msp_w: .section .text.__nop .global __nop .thumb_func + .cfi_startproc __nop: bx lr + .cfi_endproc .size __nop, . - __nop .section .text.__primask .global __primask .thumb_func + .cfi_startproc __primask: mrs r0, PRIMASK bx lr + .cfi_endproc .size __primask, . - __primask .section .text.__psp_r .global __psp_r .thumb_func + .cfi_startproc __psp_r: mrs r0, PSP bx lr + .cfi_endproc .size __psp_r, . - __psp_r .section .text.__psp_w @@ -125,32 +153,40 @@ __psp_w: .section .text.__sev .global __sev .thumb_func + .cfi_startproc __sev: sev bx lr + .cfi_endproc .size __sev, . - __sev .section .text.__udf .global __udf .thumb_func + .cfi_startproc __udf: udf + .cfi_endproc .size __udf, . - __udf .section .text.__wfe .global __wfe .thumb_func + .cfi_startproc __wfe: wfe bx lr + .cfi_endproc .size __wfe, . - __wfe .section .text.__wfi .global __wfi .thumb_func + .cfi_startproc __wfi: wfi - .size __wfi, . - __wfi bx lr + .cfi_endproc + .size __wfi, . - __wfi diff --git a/bin/thumbv6m-none-eabi.a b/bin/thumbv6m-none-eabi.a Binary files differindex 9dcc483..0014368 100644 --- a/bin/thumbv6m-none-eabi.a +++ b/bin/thumbv6m-none-eabi.a diff --git a/bin/thumbv7em-none-eabi.a b/bin/thumbv7em-none-eabi.a Binary files differindex fb3858b..f7dc35c 100644 --- a/bin/thumbv7em-none-eabi.a +++ b/bin/thumbv7em-none-eabi.a diff --git a/bin/thumbv7em-none-eabihf.a b/bin/thumbv7em-none-eabihf.a Binary files differindex fb3858b..f7dc35c 100644 --- a/bin/thumbv7em-none-eabihf.a +++ b/bin/thumbv7em-none-eabihf.a diff --git a/bin/thumbv7m-none-eabi.a b/bin/thumbv7m-none-eabi.a Binary files differindex 07855a9..f1f686d 100644 --- a/bin/thumbv7m-none-eabi.a +++ b/bin/thumbv7m-none-eabi.a diff --git a/bin/thumbv8m.base-none-eabi.a b/bin/thumbv8m.base-none-eabi.a Binary files differindex 363a109..7711268 100644 --- a/bin/thumbv8m.base-none-eabi.a +++ b/bin/thumbv8m.base-none-eabi.a diff --git a/bin/thumbv8m.main-none-eabi.a b/bin/thumbv8m.main-none-eabi.a Binary files differindex 001ebb2..ff78de2 100644 --- a/bin/thumbv8m.main-none-eabi.a +++ b/bin/thumbv8m.main-none-eabi.a diff --git a/bin/thumbv8m.main-none-eabihf.a b/bin/thumbv8m.main-none-eabihf.a Binary files differindex 001ebb2..ff78de2 100644 --- a/bin/thumbv8m.main-none-eabihf.a +++ b/bin/thumbv8m.main-none-eabihf.a |