ARM程序集:转储d1和d5寄存器

时间:2014-11-26 02:19:02

标签: assembly arm

我正在尝试调整以下代码来进行半刻度+ Y8提取:

https://github.com/emrainey/DVP/blob/master/libraries/public/yuv/__uyvy_half_scale_image.S

我只想修改第105行和第106行并转储到pDst d1和d5。

根据第105行:

https://github.com/emrainey/DVP/blob/master/libraries/public/yuv/yuv.inc

我认为d0有u / V,d1有Y,d4有U / V,d5有Y.

我用vst1.8和vst2.8尝试了各种各样的东西,但没有运气。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

查看vst说明。它们以16位去交织,这意味着它们包含U + Y和V + Y.

如果我没弄错,你只需要亮度值,你必须从所有四个寄存器中提取它们。

vtrn.8 d1, d0
vtrn.8 d5, d4

然后你在d0和d4中有Y值

要小心。这个例程从开始到最后都包含大量不必要的指令。

你为什么不看其他来源?由于可怕的指令选择,不重要的寄存器分配以及缺乏剩余处理,这个库是学习/修改的一个不好的起点。