0

To create assembly code I'm calling the mipsel-openwrt-linux-uclibc-gcc compiler (Linaro GCC 4.8-2014.04 r49389) with flag -S. This produces assembly code looking like this:

        .section .mdebug.abi32
        .previous
        .gnu_attribute 4, 3
        .abicalls
        .option pic0
        .text
    $Ltext0:
        .cfi_sections   .debug_frame
        .globl  Version
        .section    .rodata.str1.4,"aMS",@progbits,1
        .align  2
    $LC0:
        .ascii  "3.3\000"
        .data
        .align  2
        .type   Version, @object
        .size   Version, 4
    Version:
        .word   $LC0
        .text
    $Letext0:
        .file 1 "version.c"
        .section    .debug_info,"",@progbits
    $Ldebug_info0:
        .4byte  0x3d
        .2byte  0x4
        .4byte  $Ldebug_abbrev0
        .byte   0x4
        .uleb128 0x1
        .4byte  $LASF0
        .byte   0x1
        .4byte  $LASF1
        .4byte  $LASF2
        .4byte  $Ldebug_line0
        .uleb128 0x2
        .4byte  $LASF3
        .byte   0x1
        .byte   0x2
        .4byte  0x2e
        .uleb128 0x5
        .byte   0x3
        .4byte  Version
        .uleb128 0x3
        .byte   0x4
        .4byte  0x34
        .uleb128 0x4
        .4byte  0x39
        .uleb128 0x5
        .byte   0x1
        .byte   0x6
        .4byte  $LASF4
        .byte   0
        .section    .debug_abbrev,"",@progbits
    $Ldebug_abbrev0:
        .uleb128 0x1
        .uleb128 0x11
        .byte   0x1
        ---- I cutted here ----
        .uleb128 0xe
        .byte   0
        .byte   0
        .byte   0
        .section    .debug_aranges,"",@progbits
        .4byte  0x14
        .2byte  0x2
        .4byte  $Ldebug_info0
        .byte   0x4
        .byte   0
        .2byte  0
        .2byte  0
        .4byte  0
        .4byte  0
        .section    .debug_line,"",@progbits
    $Ldebug_line0:
        .section    .debug_str,"MS",@progbits,1
    $LASF2:
        .ascii  "/home/lvr/Src/openwrt/build_dir/target-mipsel_mips32_uCl"
        .ascii  "ibc-0.9.33.2/diffutils-3.3/src\000"
    $LASF0:
        .ascii  "GNU C 4.8.3 -mno-branch-likely -mips32 -mtune=mips32 -ms"
        .ascii  "oft-float -mllsc -mplt -mno-shared -g -Os -std=c99 -fno-"
        .ascii  "caller-saves -fhonour-copts\000"
    $LASF3:
        .ascii  "Version\000"
    $LASF4:
        .ascii  "char\000"
    $LASF1:
        .ascii  "version.c\000"
        .ident  "GCC: (OpenWrt/Linaro GCC 4.8-2014.04 r49389) 4.8.3"
        .section    .note.GNU-stack,"",@progbits

This doesn't look like AT&T nor Intel syntax to me. To produce more familiar syntax I've tried the -masm=intel flag, but same effect..

My first thougt was the produced ASM code is dedicated to the fixed word width of mips, but any ideas how to generate AT&T or Intel syntax via mipsel-openwrt-linux-uclibc-gcc?

Thanks for any hints!

2
  • What AT&T and Intel syntax have to do with MIPS? Also, the code is just a bunch of assembler directives. Commented Jan 21, 2017 at 8:30
  • Note that AT&T/Intel syntax is only a thing for x86.
    – fuz
    Commented Jan 22, 2017 at 1:07

1 Answer 1

0

"What AT&T and Intel syntax have to do with MIPS?" - Nothing directly, I've tagged it that way as tag 'mipsel-openwrt-linux-uclibc-gcc' was not available (sry, maybe bad style). But thanks Margaret your comment directed me to compile some more .c files leading to the expected AT&T syntax :) - f.e.:

        .section .mdebug.abi32
        .previous
        .gnu_attribute 4, 3
        .abicalls
        .option pic0
        .text
    $Ltext0:
        .cfi_sections   .debug_frame
        .align  2
    $LFB16 = .
        .file 1 "io.c"
        .loc 1 474 0
        .cfi_startproc
        .set    nomips16
        .ent    prepare_text
        .type   prepare_text, @function
    prepare_text:
        .frame  $sp,48,$31      # vars= 0, regs= 5/0, args= 16, gp= 8
        .mask   0x800f0000,-4
        .fmask  0x00000000,0
        .set    noreorder
        .set    nomacro
    $LVL0 = .
        addiu   $sp,$sp,-48
        .cfi_def_cfa_offset 48
        sw  $17,32($sp)
        sw  $31,44($sp)
        sw  $19,40($sp)
        sw  $18,36($sp)
        sw  $16,28($sp)
        .cfi_offset 17, -16
        .cfi_offset 31, -4
        .cfi_offset 19, -8
        .cfi_offset 18, -12
        --- CUT ---
    $LASF16:
        .ascii  "__ino64_t\000"
    $LASF86:
        .ascii  "changes\000"
    $LASF66:
        .ascii  "__ctype_touplow_t\000"
    $LASF200:
        .ascii  "memcmp\000"
    $LASF118:
        .ascii  "equivs\000"
    $LASF139:
        .ascii  "file_size\000"
        .ident  "GCC: (OpenWrt/Linaro GCC 4.8-2014.04 r49389) 4.8.3"
        .section    .note.GNU-stack,"",@progbits    

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.