ARM汇编:return ?

写return

c

#ifdef __GNUC__
extern "C" __attribute__((visibility("default")))
#endif
int filterProcess(void *hFilter, ST_FILTER_PIC *pstPic, ST_FILTER_PARAM_PROCESS *pstParamProcess)
{
    return filterProcessWithValidHeight(hFilter, pstPic, pstParamProcess, pstPic->height);
}

asm

    .section    .text.filterProcess,"ax",@progbits
    .globl  filterProcess           // -- Begin function filterProcess
    .p2align    2
    .type   filterProcess,@function
filterProcess:                          // @filterProcess
.Lfunc_begin13:
    .loc    2 4230 0                // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4230:0
    .cfi_startproc
// %bb.0:
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    //DEBUG_VALUE: filterProcess:pstPic <- $x1
    //DEBUG_VALUE: filterProcess:pstPic <- $x1
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    .loc    2 4231 83 prologue_end  // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4231:83
    ldr w3, [x1, #20]
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    .loc    2 4231 12 is_stmt 0     // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4231:12
    b   filterProcessWithValidHeight
.Ltmp474:
.Lfunc_end13:
    .size   filterProcess, .Lfunc_end13-filterProcess
    .cfi_endproc
                                        // -- End function

不写return

c

#ifdef __GNUC__
extern "C" __attribute__((visibility("default")))
#endif
int filterProcess(void *hFilter, ST_FILTER_PIC *pstPic, ST_FILTER_PARAM_PROCESS *pstParamProcess)
{
    filterProcessWithValidHeight(hFilter, pstPic, pstParamProcess, pstPic->height);
}

asm

.section    .text.filterProcess,"ax",@progbits
    .globl  filterProcess           // -- Begin function filterProcess
    .p2align    2
    .type   filterProcess,@function
filterProcess:                          // @filterProcess
.Lfunc_begin13:
    .loc    2 4230 0                // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4230:0
    .cfi_startproc
// %bb.0:
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    //DEBUG_VALUE: filterProcess:pstPic <- $x1
    //DEBUG_VALUE: filterProcess:pstPic <- $x1
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    stp x29, x30, [sp, #-16]!   // 16-byte Folded Spill
    mov x29, sp
    .cfi_def_cfa w29, 16
    .cfi_offset w30, -8
    .cfi_offset w29, -16
.Ltmp474:
    .loc    2 4231 76 prologue_end  // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4231:76
    ldr w3, [x1, #20]
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    .loc    2 4231 5 is_stmt 0      // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4231:5
    bl  filterProcessWithValidHeight
.Ltmp475:
.Lfunc_end13:
    .size   filterProcess, .Lfunc_end13-filterProcess
    .cfi_endproc
                                        // -- End function
区别

加个return 0

c

#ifdef __GNUC__
extern "C" __attribute__((visibility("default")))
#endif
int filterProcess(void *hFilter, ST_FILTER_PIC *pstPic, ST_FILTER_PARAM_PROCESS *pstParamProcess)
{
    filterProcessWithValidHeight(hFilter, pstPic, pstParamProcess, pstPic->height);
    return 0;
}

asm

.section    .text.filterProcess,"ax",@progbits
    .globl  filterProcess           // -- Begin function filterProcess
    .p2align    2
    .type   filterProcess,@function
filterProcess:                          // @filterProcess
.Lfunc_begin13:
    .loc    2 4230 0                // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4230:0
    .cfi_startproc
// %bb.0:
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    //DEBUG_VALUE: filterProcess:pstPic <- $x1
    //DEBUG_VALUE: filterProcess:pstPic <- $x1
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    stp x29, x30, [sp, #-16]!   // 16-byte Folded Spill
    mov x29, sp
    .cfi_def_cfa w29, 16
    .cfi_offset w30, -8
    .cfi_offset w29, -16
.Ltmp474:
    .loc    2 4231 76 prologue_end  // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4231:76
    ldr w3, [x1, #20]
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    //DEBUG_VALUE: filterProcess:pstParamProcess <- $x2
    //DEBUG_VALUE: filterProcess:hFilter <- $x0
    .loc    2 4231 5 is_stmt 0      // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4231:5
    bl  filterProcessWithValidHeight
.Ltmp475:
    .loc    2 4232 5 is_stmt 1      // D:/Project/c/HwFilters/CI/conf/ndk/jni/../../../../core/core/source/filters.cpp:4232:5
    mov w0, wzr
    ldp x29, x30, [sp], #16     // 16-byte Folded Reload
    ret
.Ltmp476:
.Lfunc_end13:
    .size   filterProcess, .Lfunc_end13-filterProcess
    .cfi_endproc
                                        // -- End function
区别

void函数呢?

c

#ifdef __GNUC__
extern "C" __attribute__((visibility("default")))
#endif
void filterProcess(void *hFilter, ST_FILTER_PIC *pstPic, ST_FILTER_PARAM_PROCESS *pstParamProcess)
{
    filterProcessWithValidHeight(hFilter, pstPic, pstParamProcess, pstPic->height);
}

c

#ifdef __GNUC__
extern "C" __attribute__((visibility("default")))
#endif
void filterProcess(void *hFilter, ST_FILTER_PIC *pstPic, ST_FILTER_PARAM_PROCESS *pstParamProcess)
{
    filterProcessWithValidHeight(hFilter, pstPic, pstParamProcess, pstPic->height);
    return;
}
没有区别

增加编译选项,检查此类问题

编译选项
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容