我需要在使用Visual Stdio 2005编译的项目中使用popcnt指令
固有的__popcnt()只适用于VS2008,即使我在__asm {}块中编写,编译器似乎也无法识别该指令。
有没有办法做到这一点?
发布于 2008-12-12 01:45:49
好吧,这只是个胡乱猜测,但是...假设你已经设置了像this这样的VS2005来做汇编语言,那么你可以从英特尔获得SSE4.1 manual,并按照masm32.com上的这个thread为你需要的每个SSE4.1操作码编写一个宏(它讨论了一个类似的问题w.r.t.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发布于 2009-02-03 12:19:17
注意,您可以使用__emit将字节放入VC++中的__asm块中。在很多情况下,这比链接masm生成的对象更容易。我以前在SSE3是新的时候使用过这个(VS2003不支持操作码)。
所有操作码都是well documented by Intel。
https://stackoverflow.com/questions/361330
复制相似问题