生产问题导致我们的团队遇到以下问题:
>在使用GCC 4.4.6的RHEL6下,如何实现ntoh和ntohl?
>已知的实现是快还是慢?
>我如何实际看到生成的函数汇编代码?
我知道问题背后的含义可能看起来很牵强和荒谬,但我被要求调查.
有问题的硬件是英特尔盒子,小端,64位处理器,并以64位编译.
>它们由glibc而不是GCC提供,在/usr/include/bits/byteswap.h中查找__bswap_16和__bswap_32
函数,这些
函数在启用优化时使用(有关详细信息,请参阅< netinet / in.h>怎么样.)
>你没有说你正在使用什么样的架构,在大端系统上它们是无操作的,所以最
快速!在little-endian上,它们是特定于架构的手动优化汇编
代码.
>使用GCC的-save-temps选项保留中间.s
文件,或者在编译之后和汇编
代码之前使用-S停止,或者使用
http://gcc.godbolt.org/