- 
                Notifications
    You must be signed in to change notification settings 
- Fork 3k
Update GCC except.S to support ARMC6 and use GCC assembly with ARM toolchain in CMake #14667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| @wernerlewis, thank you for your changes. | 
| @wernerlewis, thank you for your changes. | 
| Ci started | 
| Jenkins CI Test : ❌ FAILEDBuild Number: 1 | 🔒 Jenkins CI Job | 🌐 Logs & ArtifactsCLICK for Detailed Summary
 
 | 
| LDMIA R0!,{R4-R7} // Restore R4..R7 | ||
|  | ||
| MOVS R0,#~0xFFFFFFFD | ||
| MOVS R0,#2 // Binary complement of 0xFFFFFFFD | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this file is for M0, does it mean we've decided to use GNU-style assembly for all cores and not just M55? If this is the case, could we remove all the legacy armasm assembly files and rename/remove the intermediate path TOOLCHAIN_GCC?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The legacy tools only use armasm for compiling assembly, so the files are needed to avoid breaking those tools.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The legacy tools only use
armasmfor compiling assembly, so the files are needed to avoid breaking those tools.
Fair enough. We should've switched to armclang a long time ago with the legacy tools, but now it's frozen so there's not much we could do...
| This pull request has automatically been marked as stale because it has had no recent activity. @ARMmbed/mbed-os-maintainers, please start CI to get the PR merged. | 
| CI started | 
| Jenkins CI Test : ✔️ SUCCESSBuild Number: 2 | 🔒 Jenkins CI Job | 🌐 Logs & ArtifactsCLICK for Detailed Summary
 
 | 
| This PR cannot be merged due to conflicts. Please rebase to resolve them. | 
| @wernerlewis looks like you have a conflict that needs addressing | 
ARM Compiler 6 supports GNU-style assembly with armclang. Instead of relying on armasm with the legacy syntax, GCC except.S is updated so that it can be used with ARM as well as GCC_ARM toolchains. CMake is updated to use this version.
CMSIS provides both GNU and legacy ARM assembly files. Instead of using armasm and legacy asm with ARM Compiler 6, CMakeLists is modified to use the GNU format with both GCC_ARM and ARM C6.
698c322    to
    c97dcd0      
    Compare
  
    | CI started | 
| Jenkins CI Test : ✔️ SUCCESSBuild Number: 3 | 🔒 Jenkins CI Job | 🌐 Logs & ArtifactsCLICK for Detailed Summary
 
 | 
Summary of changes
Update GCC except.S to support ARM compiler, and use this source in CMake.
Update CMake to use GCC CMSIS assembly with both GCC_ARM and ARMC6.
When legacy ASM is compiled with ARM Compiler 6,
armasmis used, which hasno support for Cortex-M55. GNU syntax is used by
armclangassembler, so the GCCversion of except.S is updated to support the ARM toolchain, and this is used by
CMake for both ARM and GCC_ARM. The CMSIS GCC assembly is also used now
with ARMC6.
Fixes #14633
Impact of changes
Migration actions required
Documentation
None
Pull request type
Test results
Reviewers