提问人:Marc 提问时间:11/12/2023 最后编辑:TylerHMarc 更新时间:11/14/2023 访问量:120
x86_64架构是否有掩码和比较指令?
Is there a mask-and-compare instruction for the x86_64 architecture?
问:
需要在运行时保留类型信息的编程语言的实现通常使用整数值的某些位作为标记位。C 编程语言中处理此类标记的典型表达式如下所示:
(val && MASK) == TAG
在机器语言中,必须实现这样的测试,例如,如下所示:
movq val,%rax
andq MASK,%rax
cmpq TAG,%rax
换句话说,如果需要保留原始值,则需要暂存寄存器。由于这是在动态类型语言中实现类型安全的典型代码,并且需要高效,因此我想知道 x86_64 ISA 中是否有单个掩码和比较指令。或者在我不知道的 AMD64 平台的较新扩展之一中是否真的有这样的说明?
答: 暂无答案
评论
TEST
cmov
test
test
mov
mov
lzcnt