Meh*_*dad 4 windows assembly sse x86-64 calling-convention
(Microsoft)x64调用约定规定:
参数在寄存器RCX,RDX,R8和R9中传递.如果参数是float/double,则它们在XMM0L,XMM1L,XMM2L和XMM3L中传递.
这很好,但为什么只是漂浮/双打?为什么不通过XMM寄存器传递整数(也可能是指针)?
似乎有点浪费可用空间,不是吗?
因为非FP值(即整数和地址)上的大多数操作都是为了使用通用寄存器而设计的.
存在整数SSE操作但它们仅是算术的.
因此,如果调用约定支持通过SSE寄存器传递整数和地址,则几乎总是需要将值复制到通用寄存器.
| 归档时间: |
|
| 查看次数: |
838 次 |
| 最近记录: |