xmm

    4熱度

    1回答

    如何將128位xmm寄存器拆分爲兩個64位四字? 我在xmm1一個非常大的數字,並希望得到更高的四字r9和較低的四字r10,或RAX和RDX。 movlpd或movhpd只適用於reg到mem,反之亦然。

    0熱度

    2回答

    我目前傳遞的外部參數由C使用以下到ASM指令: myFunction proc myVar:qword public myFunction movdqu xmm3,oword ptr myVar myFunction endp 最後,我想類似以下,但首先需要的東西,以確定如何在我可以解壓縮和交錯變量之前減少myVar,以便在通過之後使用它。我無法想出減少/減少XMM來完

    2熱度

    2回答

    這段代碼(加倍4-向量)的工作原理: __declspec(align(16)) struct vec4 { float a[4]; }; int main() { vec4 c; c.a[0]=2; c.a[1]=0; c.a[2]=0; c.a[3]=0; __asm { movaps xmm1, c

    4熱度

    4回答

    我正在嘗試使用SSE指令來執行一些圖像過濾。我使用的圖像每像素(255灰度)有一個字節,我需要使用比比較更大的比較無符號打包字節。我查看了英特爾的手冊,並且比較存在,但僅用於有符號字節(PCMPGTB)。我怎樣才能做這個比較的無符號字節? 在此先感謝

    4熱度

    2回答

    這裏是一個代碼段,以計算值的平方根當我掩飾此代碼從 http://felix.abecassis.me/2011/09/cpp-getting-started-with-sse/ void sse(float* a, int N) { // We assume N % 4 == 0. int nb_iters = N/4; __m128* ptr = (__m128

    6熱度

    1回答

    彙編中看似微不足道的問題:我想將整個XMM0寄存器複製到XMM3。我試過 movdq xmm3, xmm0 但是MOVDQ不能用於在兩個XMM寄存器之間移動值。我該怎麼做呢?

    1熱度

    1回答

    由於未解析的外部結構,使用默認的-arch:SSE編譯器標誌進行構建時,Ruby 1.9.1無法使用Visual Studio 2012(update1和2)進行構建。 cl -nologo -LD main.obj dmyext.obj msvcr110-ruby191-static.lib msvcr110-ruby191.res unicows.lib oldnames.lib user32

    1熱度

    1回答

    是否需要在彙編函數調用之前將任何XMM寄存器保存/推送到堆棧? 因爲我正在使用64位開發的發佈模式(使用AVX2)在代碼中觀察崩潰問題。在調試模式下工作正常。我嘗試保存XMM8寄存器的內容並在函數調用結束時恢復它,然後工作正常。 任何想法或參考?

    12熱度

    1回答

    是否有將XMM寄存器中的壓縮雙字整數推送到堆棧的方法?然後在需要時彈出回來? 理想我正在尋找像PUSH或POP的通用寄存器,我已經檢查了英特爾的手冊,但我要麼錯過了命令,或者沒有一個...... 否則我將不得不將值解壓到通用寄存器然後推送它們?

    1熱度

    1回答

    我正在嘗試與SSE內在函數玩弄。我製作了一個測試程序,它只添加兩個帶有四個16位元素的向量。 #include <xmmintrin.h> #include <iostream> using namespace std; void test_vec_add(){ const int length = 4; float product[128*4] __attribute