sca*_*che 4 bit-manipulation sbcl common-lisp bitwise-operators
我想使用最新的Intel和AMD芯片中提供的新位操作指令,特别是"Parallel Bits Extract" PEXT
指令(参见此处和此处).如何从Common Lisp中访问这些说明?(特别是SBCL).
理想情况下,我想通过一个库来访问这些指令,该库检测CPU是否提供它们,如果不提供,则在软件中模拟它们.其他语言的编译器提供此类功能(例如,GCC提供功能_pext_u32
;请参见此处).
我认为要实际添加对它的支持,您需要修改编译器本身.这可能涉及添加一个新的VOP(参见sbcl源代码中的vop.lisp),定义一个编译它的新函数(可能在sb-ext包中)并将其连接起来.我实际上无法告诉你如何做到这一点,我对此的理解只是肤浅的.
另一种可能更具可移植性的方法是创建一个包含在程序集中使用新原语的函数的C库,然后将其包装在CFFI绑定中.
归档时间: |
|
查看次数: |
165 次 |
最近记录: |