2.3 Disassembling SVE object files

Use the fromelf tool without specifying --cpu to display the details and contents of an ELF-format binary file. This includes disassembly of the code sections of an object containing SVE instructions.

To disassemble an ELF-format object file containing SVE instructions, use fromelf with the -c option:

...
** Section #3 '.text.subtract_arrays' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR]
    Size   : 44 bytes (alignment 4)
    Address: 0x00000000

    $x.0
    subtract_arrays
        0x00000000:    321603e9    ...2    ORR      w9,wzr,#0x400
        0x00000004:    aa1f03e8    ....    MOV      x8,xzr
        0x00000008:    25a91fe0    ...%    WHILELO  p0.S,xzr,x9
        0x0000000c:    a5484020     @H.    LD1W     {z0.S},p0/Z,[x1,x8,LSL #2]
        0x00000010:    a5484041    A@H.    LD1W     {z1.S},p0/Z,[x2,x8,LSL #2]
        0x00000014:    04a10400    ....    SUB      z0.S,z0.S,z1.S
        0x00000018:    e5484000    .@H.    ST1W     {z0.S},p0,[x0,x8,LSL #2]
        0x0000001c:    04b0e3e8    ....    DCI      0x04b0e3e8 ; ? Undefined
        0x00000020:    25a91d00    ...%    WHILELO  p0.S,x8,x9
        0x00000024:    54ffff44    D..T    B.MI     {pc}-0x18 ; 0xc
        0x00000028:    d65f03c0    .._.    RET      

** Section #4 '.text.main' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR]
    Size   : 72 bytes (alignment 4)
    Address: 0x00000000

    $x.1
    main
        0x00000000:    321603e9    ...2    ORR      w9,wzr,#0x400
        0x00000004:    9000000a    ....    ADRP     x10,{pc} ; 0x4
        0x00000008:    9000000b    ....    ADRP     x11,{pc} ; 0x8
        0x0000000c:    9000000c    ....    ADRP     x12,{pc} ; 0xc
        0x00000010:    aa1f03e8    ....    MOV      x8,xzr
        0x00000014:    9100014a    J...    ADD      x10,x10,#0
        0x00000018:    9100016b    k...    ADD      x11,x11,#0
        0x0000001c:    25a91fe0    ...%    WHILELO  p0.S,xzr,x9
        0x00000020:    9100018c    ....    ADD      x12,x12,#0
        0x00000024:    a5484140    @AH.    LD1W     {z0.S},p0/Z,[x10,x8,LSL #2]
        0x00000028:    a5484161    aAH.    LD1W     {z1.S},p0/Z,[x11,x8,LSL #2]
        0x0000002c:    04a10400    ....    SUB      z0.S,z0.S,z1.S
        0x00000030:    e5484180    .AH.    ST1W     {z0.S},p0,[x12,x8,LSL #2]
        0x00000034:    04b0e3e8    ....    DCI      0x04b0e3e8 ; ? Undefined
        0x00000038:    25a91d00    ...%    WHILELO  p0.S,x8,x9
        0x0000003c:    54ffff44    D..T    B.MI     {pc}-0x18 ; 0x24
        0x00000040:    2a1f03e0    ...*    MOV      w0,wzr
        0x00000044:    d65f03c0    .._.    RET      
...

The command-line options in this example are:

-c
Disassemble all code sections in the object file, displaying assembler mnemonics for the machine instructions.
example1.o
Input ELF-format object file generated from the example1.c program shown in 2.2 Compiling C and C++ code for SVE-enabled targets.
Non-ConfidentialPDF file icon PDF version100891_0609_00_en
Copyright © 2016, 2017 Arm Limited (or its affiliates). All rights reserved.