为了测试性能,我已经给了一个任务来将小块asm转换为内在。 我从来没有开发任何一个代码,但我理解asm和c,并阅读内在的语法。但我无法找到有关内存访问寄存器的信息。我发现2个功能:将内联ASM转换为内部
getReg()和setReg()
getReg()带有不同的寄存器表的表和他们的ID /数: - 通用整数寄存器 - 应用寄存器 - 控制寄存器 - 间接寄存器 但他们都没有对应像rax,rdi等asm寄存器。
我该如何处理寄存器,例如rcx,rdi等等? 或者换句话说我如何转换这一点:
MOV%0%RCX
内在相同呢?
非常感谢,我很关心性能,因为内在的和ASM将基准,看看他们的表现如何。 – GoTTimw
使用intrinsics编写的代码应该与原始asm一样快,并且在某些情况下可能会更快,因为编译器通常可以比人类更好地执行指令调度和寄存器分配。 –