2008-12-11 14 views
3

我需要使用POPCNT指令正在使用編制了項目可視STDIO 2005
內在__popcnt()只適用於VS2008,編譯器似乎並不甚至識別指令,當我在一個__asm {}塊寫。VS2005中的SSE4指令?

有沒有辦法做到這一點?

回答

3

好吧,這是胡亂猜測的事情,但......假設你已經設置了VS2005像this做的彙編語言,那麼你可以從英特爾和代碼獲得SSE4.1 manual的保持宏觀每個SSE4.1您在masm32.com需要按本thread操作碼(其中討論了類似的問題WRT SSE2)

例如,這裏的一些代碼了從MASM32鏈接下載文件之一的:

;SSE2 macros for MASM 6.14 by daydreamer aka Magnus Svensson 

ADDPD MACRO M1,M2 
    db 066h 
    ADDPS M1,M2 
ENDM 

ADDSD MACRO M1,M2 
    DB 0F2H 
    ADDPS M1,M2 
ENDM 
2

作爲一個小提示,您可以使用__emit將字節放入VC++中的__asm塊中。這在很多情況下比用masm生成的對象更容易。我以前在SSE3是新的時候使用過這個(並且在VS 2003中不支持操作碼)。

所有的操作碼都是well documented by Intel