在DPDK中,使用gcc的内联汇编实现高效率的函数,比如自旋锁,cas操作等。今天简单介绍一下gcc内联汇编语法和DPDK利用内联汇编实现的函数。
gcc内联汇编
这里简单介绍一下内联汇编的语法,更详细的可以参考官方文档。
内联汇编格式如下,小括号中的参数使用分号分隔。AssemblerTemplate 中的汇编语句会从 InputOperands 读取变量值,执行结束后会将结果写到 OutputOperands 指定的变量中。
asm asm-qualifiers ( AssemblerTemplate
: OutputOperands
[ : InputOperands
[ : Clobbers ] ])
asm
是 GCC 里的关键字,或者使用 "asm",表示内联汇编。
asm-qualifiers
asm修饰符,有三个值: vol