社区
汇编语言
帖子详情
为了能使用movdqa,我在new一个byte[]的时候应该怎么做?
Viskag
2010-08-06 10:27:47
#define ALIGN16( x ) __declspec(align(16)) x
...
...
BYTE* abc = new BYTE[1024];//在new的时候如何指定对齐ALIGN16?
...
...
--asm
{
mov esi, abc
movdqa xmm0,[esi]
...
}
...全文
96
3
打赏
收藏
为了能使用movdqa,我在new一个byte[]的时候应该怎么做?
#define ALIGN16( x ) __declspec(align(16)) x ... ... BYTE* abc = new BYTE[1024];//在new的时候如何指定对齐ALIGN16? ... ... --asm { mov esi, abc movdqa xmm0,[esi] ... }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Viskag
2010-08-09
打赏
举报
回复
那我以后就用movdqu了
日立奔腾浪潮微软松下联想
2010-08-06
打赏
举报
回复
__declspec(align(16))不通用的,只适用于VC++。
这样定义就可以了:
__declspec(align(16)) unsigned char buf[1024];
unsigned char *pbuf = (unsigned char *)&buf;
注意这样定义保证不了16字节对齐:
__declspec(align(16)) unsigned char *buf = new unsigned char[1024];
动态分配的话,是可以写个宏来自动完成,但是释放的时候会有问题,所以就别动态分配了。
其实用movedqu就好了,不需要16字节对齐,不对齐地址访问并没有明显的性能差距,除非超过cache大小的内存访问,那样应该用movntdqa/movntdq。
zara
2010-08-06
打赏
举报
回复
不能确保或没有其它方法的话,就多分配个 16 字节,然后自己计算起始地址对齐到下一 16 处。
尹成JAVA快速入门
用关键词synchronized,程序员可以说明某些方法在
一个
类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在
一个
一致的状态。 10.动态性 Java语言设计成适应于变化的环境,它是
一个
动态的语言。例如,...
图形图像处理-之-高质量的快速的图像缩放 补充
使用
SSE2优化
本文章对线性插值和三次卷积插值(bicubic)的实现
做
了一些新的优化尝试;
使用
了SSE2的128bit寄存器及相关指令;并预先建立SSE2用到的缩放系数表; 实现的结果在我的i7电脑上比以前的版本分别快出145%和75%! 线性插值的速度是StretchBlt的13倍!
FFmpeg x86汇编优化一--x86inc.asm分析
在我的印象中,有几个版本的FFmpeg中有Intrinsic优化的指令集代码。可能是由于纯汇编的性能和灵活性,随着版本的迭代,现在优化代码已经逐渐替换成了纯汇编代码。FFmpeg中的纯汇编代码
使用
了nasm汇编语法格式,且
使用
了x264工程中的两个汇编源文件“x86inc.asm”和“x86util.asm”。其中“x86inc.asm”中对寄存器、堆栈和函数调用等
做
了
一个
跨平台的约定。本文将主要
C++ 编译器优化与SIMD指令集
刚才提到了 xmm 这个系列的寄存器,它们都有128128128位宽,可以容纳444个 float 或者222个 double。刚才的例子中,因为只有
一个
float 存在
一个
128128128位的寄存器内,所以只用到了它最低的323232位。但是这样也没问题,因为我们刚才说的是,addss 它只会加最低位。这就要说到下一节将提到的 addss 了。刚才提到外部函数会让编译器无法优化,但如果是内部函数呢?内部函数是声明和定义在同
一个
文件,就是它定义在 func 调用它的相同文件。
SSE指令集优化学习:双线性插值
对SSE的学习总算迈出了第一步,用2天时间对双线性插值的代码进行了优化,现将实现的过程梳理以下,算是对这段学习的
一个
总结。 1. 什么是SSE 说到SSE,首先要弄清楚的
一个
概念是SIMD(单指令多数据流,Single Instruction Multiple Data),是一种数据并行技术,能够在一条指令中同时对多个数据执行运算操作,增加处理器的数据吞吐量。SIMD特别的适用于多媒体应用等数据密...
汇编语言
21,458
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章