简化从gcc生成的汇编代码

时间:2015-04-09 21:09:47

标签: gcc assembly

我想演示如何使用gcc将不同的C函数转换为ARM汇编代码,所以我尝试编译这个函数

int f(int a) {
  return a+1;
}

使用命令:

gcc -O3 -S test.c

得到:

        .arch armv6
        .eabi_attribute 27, 3
        .eabi_attribute 28, 1
        .fpu vfp
        .eabi_attribute 20, 1
        .eabi_attribute 21, 1
        .eabi_attribute 23, 3
        .eabi_attribute 24, 1
        .eabi_attribute 25, 1
        .eabi_attribute 26, 2
        .eabi_attribute 30, 2
        .eabi_attribute 18, 4
        .file   "test.c"
        .text
        .align  2
        .global f
        .type   f, %function
f:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        @ link register save eliminated.
        add     r0, r0, #1
        bx      lr
        .size   f, .-f
        .ident  "GCC: (Debian 4.6.3-14+rpi1) 4.6.3"
        .section        .note.GNU-stack,"",%progbits

然而,这给了一大堆额外的辅助信息,对新手来说看起来有点吓人。有没有办法告诉gcc发出更简洁的汇编?我的理想是这样的:

f:
        add     r0, r0, #1
        bx      lr

但更短的任何内容都会有所帮助。

我尝试查看选项here并尝试使用-g0,但它提供了相同的输出。

0 个答案:

没有答案