爲了測試性能,我已經給了一個任務來將小塊asm轉換爲內在。 我從來沒有開發任何一個代碼,但我理解asm和c,並閱讀內在的語法。但我無法找到有關內存訪問寄存器的信息。我發現2個功能:將內聯ASM轉換爲內部
getReg()和setReg()
getReg()帶有不同的寄存器表的表和他們的ID /數: - 通用整數寄存器 - 應用寄存器 - 控制寄存器 - 間接寄存器 但他們都沒有對應像rax,rdi等asm寄存器。
我該如何處理寄存器,例如rcx,rdi等等? 或者換句話說我如何轉換這一點:
MOV%0%RCX
內在相同呢?
非常感謝,我很關心性能,因爲內在的和ASM將基準,看看他們的表現如何。 – GoTTimw
使用intrinsics編寫的代碼應該與原始asm一樣快,並且在某些情況下可能會更快,因爲編譯器通常可以比人類更好地執行指令調度和寄存器分配。 –