2
可以在x86 CPU上的本機OCaml中生成指令popcnt
,bsf
,bsr
和lzcnt
指令嗎?OCaml是否有popcnt功能?
可以在x86 CPU上的本機OCaml中生成指令popcnt
,bsf
,bsr
和lzcnt
指令嗎?OCaml是否有popcnt功能?
我有方便的OCaml 4.01.0源代碼,因此很容易檢查。如果您在代碼生成源中查找這些說明,它們不會出現。
$ pwd
/home/jeffsco/oc41/asmcomp/i386
$ ls
arch.ml emit_nt.mlp reload.ml selection.ml
emit.mlp proc.ml scheduling.ml
$ grep -w popcnt *
$ grep -w bsf *
$ grep -w bsr *
$ grep -w lzcnt *
如果我找類似movl
我得到足夠的點擊率:
$ grep -w movl *
emit.mlp: ` movl {emit_reg src}, {emit_reg dst}\n`
emit.mlp: | _ -> ` movl $0, {emit_reg i.res.(0)}\n`
. . .
所以,我強烈懷疑的答案是否定的。也許事情已經改變了OCaml 4.02,但我懷疑它。