Skip to content

Commit

Permalink
Merge #216
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
bors[bot] and Tiwalun authored May 8, 2020
2 parents 7494435 + af3143c commit c47591c
Show file tree
Hide file tree
Showing 12 changed files with 74 additions and 1 deletion.
6 changes: 6 additions & 0 deletions asm-cm7-r0p1.s
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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
10 changes: 10 additions & 0 deletions asm-v7.s
Original file line number Diff line number Diff line change
@@ -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
11 changes: 11 additions & 0 deletions asm-v8-main.s
Original file line number Diff line number Diff line change
@@ -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

10 changes: 10 additions & 0 deletions asm-v8.s
Original file line number Diff line number Diff line change
@@ -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
38 changes: 37 additions & 1 deletion asm.s
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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
Binary file modified bin/thumbv6m-none-eabi.a
Binary file not shown.
Binary file modified bin/thumbv7em-none-eabi.a
Binary file not shown.
Binary file modified bin/thumbv7em-none-eabihf.a
Binary file not shown.
Binary file modified bin/thumbv7m-none-eabi.a
Binary file not shown.
Binary file modified bin/thumbv8m.base-none-eabi.a
Binary file not shown.
Binary file modified bin/thumbv8m.main-none-eabi.a
Binary file not shown.
Binary file modified bin/thumbv8m.main-none-eabihf.a
Binary file not shown.

0 comments on commit c47591c

Please sign in to comment.