0

我为 ARMv8 编写了以下程序集:

        .text
        .align  4
        .global permute
        .type   permute, %function
permute:
        ld2 {v0.2d - v1.2d}, [x0], #32
        ld2 {v2.2d - v3.2d}, [x0], #32
        ld2 {v4.2d - v5.2d}, [x0], #32
        ld2 {v6.2d - v7.2d}, [x0]  
        zip1 v8.2d, v0.2d, v4.2d
        st1 {v0.2d - v3.2d}, [x1], #64
        st1 {v4.2d - v7.2d}, [x1]

该函数permute从一个常规 C 程序调用,其中两个字节指针长度为 128 作为输入。这编译得很好,但是当我运行它时,我得到Illegal instruction. 如果我注释掉zip1指令,它也运行良好。

关于可能出现什么问题以及如何进行Illegal instruction一般调试的任何提示?

4

0 回答 0