直接在多个说明中使用静态数据地址,还是将其移至寄存器中并使用它?
考虑一下我在.rodata
部分中都有一个数据表...现在在我的功能中,我想使用该数据表,3-4次...我有2个选项:
选项1(较少的代码尺寸):
mov rax, MY_DATA_TABLE
vpbroadcastb zmm2, BYTE [rax+64]
vpbroadcastb zmm3, BYTE [rax+128]
vpbroadcastb zmm4, BYTE [rax+192]
选项2(更多的代码尺寸,但我认为性能更好(我认为延迟较少)):
vpbroadcastb zmm2, BYTE [MY_DATA_TABLE+64]
vpbroadcastb zmm3, BYTE [MY_DATA_TABLE+128]
vpbroadcastb zmm4, BYTE [MY_DATA_TABLE+192]
哪一个更好?请注意,我不只是vpbroadcastb
!我说的是一切...
我的数据表拥有256 x 16字节(对于0到255(包装字节))...不是256 x 64字节...
Consider that I have a data-table in .rodata
section … Now in my function, I want to use that data-table, 3-4 times ... I have 2 options:
option 1 (less code-size):
mov rax, MY_DATA_TABLE
vpbroadcastb zmm2, BYTE [rax+64]
vpbroadcastb zmm3, BYTE [rax+128]
vpbroadcastb zmm4, BYTE [rax+192]
option 2 (more code-size but I think better performance (less latency I think)):
vpbroadcastb zmm2, BYTE [MY_DATA_TABLE+64]
vpbroadcastb zmm3, BYTE [MY_DATA_TABLE+128]
vpbroadcastb zmm4, BYTE [MY_DATA_TABLE+192]
Which one is better at all? Please attention that I don't talk about just vpbroadcastb
!! I'm talking about everything ...
My data-table holds 256 x 16-byte (for 0 to 255 (packed byte)) ... it's not 256 x 64-byte ...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论