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

PRESERVE8 equivalent instruction in ARM Compiler 6

Hi,

I am trying to migrate my project to ARM compiler 6.19 from an older version (5.xx). 

In Compiler 5.xx, I know that the asm instruction "PRESERVE8" is used to specify that the current file preserves the eight-byte alignment of the stack. 

This instruction is causing a linker error and I couldn't find any translation in the document "Migrate ARM Compiler 5 to ARM Compiler 6" or any other online forum.

How do I rewrite this instruction compatible with ARM Compiler 6? Is there any documentation available that describes how to resolve this issue? 

Any help is much appreciated. Thank you

Parents
  • Ok, I understand.

    So for inline assembly I dont need to specify this 2 statements as armclang will use them automatically OR do I need to specify any specific flag for this? I know armclang has -mthumb (which is set but also set by default) and in the armlink I can specify 8 byte alignment. But do I need to specify anything else?

    I am porting from the very old code and there is everything written :-), so now I have to figure out how to port it to new armclang and this is a working example (check how to call C function and that at end of each line you need \n\t otherwise build fails):

    void test(void)
    {
        __asm{
            "PUSH {r0-r3,lr}\n\t"

            "BL testC\n\t"
    }

    Best regards, Iknerf

Reply
  • Ok, I understand.

    So for inline assembly I dont need to specify this 2 statements as armclang will use them automatically OR do I need to specify any specific flag for this? I know armclang has -mthumb (which is set but also set by default) and in the armlink I can specify 8 byte alignment. But do I need to specify anything else?

    I am porting from the very old code and there is everything written :-), so now I have to figure out how to port it to new armclang and this is a working example (check how to call C function and that at end of each line you need \n\t otherwise build fails):

    void test(void)
    {
        __asm{
            "PUSH {r0-r3,lr}\n\t"

            "BL testC\n\t"
    }

    Best regards, Iknerf

Children