Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Issue compiling ARMv8 assembly

Hi,

I am using "gcc-arm-none-eabi-4_9-2015q1" to compile ARMv8 - A53/A57 code and getting following errors while compiling assembly files -

I am giving -march='armv8-a' option. I am not sure how to resolve this ?

Assembler messages:
Error: bad instruction `stp x4,x5,[sp,#-16]!'
Error: ARM register expected -- `ldr x4,=0xff000004eeaa4400'
Error: selected processor does not support requested special purpose register -- `msr mair_el2,x4'
Error: ARM register expected -- `ldr x4,=0x80002500'
Error: selected processor does not support requested special purpose register -- `msr tcr_el2,x4'
Error: ARM register expected -- `mov x4,x0'
Error: selected processor does not support requested special purpose register -- `msr ttbr0_el2,x4'
Error: bad instruction `tlbi alle2'

Previously I was using Linaro toolchain "gcc-linaro-aarch64-none-elf-4.9-2014.07_linux" but I am facing issue where it is generating some bad code.

I tried resolving that but it doesn't seems to be my code problem so I wanted to give a shot with other gcc toolchain. Also both gcc toochains doesn't accept -march=armv8-a option or mcpu option.

Does any one know what are the correct parameters and best gcc toolchain to use ?

Thanks

Parents
  • That's the tools for the 32 bit architecture rather than the 64 bit one. The armv8-a option won't select aarch64 - it'll just enable load-acquire and suchlike that are added to the 32 bit instruction set with armv8. I haven't the foggiest where it got those messages from!

Reply
  • That's the tools for the 32 bit architecture rather than the 64 bit one. The armv8-a option won't select aarch64 - it'll just enable load-acquire and suchlike that are added to the 32 bit instruction set with armv8. I haven't the foggiest where it got those messages from!

Children
No data