2017-01-21 4 views
0

Чтобы создать код сборки, я вызываю mipsel-openwrt-linux-uclibc-gcc-компилятор (Linaro GCC 4.8-2014.04 r49389) с флагом -S. Это производит сборку код вида:Strange Linaro mips компилятор сборка

 .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 

Это не выглядит как AT & T, ни Intel синтаксис для меня. Чтобы получить более знакомый синтаксис, я попытался использовать флаг -masm = intel, но тот же эффект.

Мой первый пользовательский код был создан для фиксированной ширины слова mips, , но любые идеи о том, как сгенерировать AT & T или синтаксис Intel через mipsel-openwrt-linux-uclibc-gcc?

Спасибо за любые подсказки!

+0

Что AT & T и Intel синтаксис должен делать с MIPS? Кроме того, код - всего лишь куча ассемблерных директив. –

+0

Обратите внимание, что синтаксис AT & T/Intel - это всего лишь вещь для x86. – fuz

ответ

0

«Что такое AT & T и синтаксис Intel связаны с MIPS?» - Ничего прямо, я отметил это так, поскольку тег «mipsel-openwrt-linux-uclibc-gcc» не был доступен (sry, может быть, плохой стиль). Но благодаря Margaret ваш комментарий направил мне скомпилировать несколько более .c файлов приводит к ожидаемым AT & T синтаксис :) - 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  
Смежные вопросы