【发布时间】:2015-10-13 03:29:37
【问题描述】:
#include<stdio.h>
int main()
{
int src = 5;
int dst = 0;
asm ("mv %0,%1":"=X"(dst):"r"(src));
asm("mv a0,a1");
printf(" %d\n", dst);
return 0;
}
prashantravi@ubuntu:~/rocket-chip$ riscv64-unknown-linux-gnu-gcc -o asm_test asm_test.c prashantravi@ubuntu:~/rocket-chip$ 尖峰 riscv/bin/pk asm_test z 0000000000000000 ra 0000000000000000 sp 00000000fefffb50 gp 0000000000801fb8 tp 0000000000000000 t0 0000000000000000 t1 0000000000000008 t2 00000000008012e0 s0 00000000000000000 s1 0000000000000000 a0 0000000000800430 a1 0000000000000001 a2 00000000fefffb58 a3 0000000000800484 a4 0000000000800514 a5 0000000000000000 a6 00000000fefffb50 a7 0000000000000000 s2 0000000000000000 s3 0000000000000000 s4 00000000000000000 s5 0000000000000000 s6 0000000000000000 s7 0000000000000000 s8 00000000000000000 s9 0000000000000000 sA 0000000000000000 sB 0000000000000000 t3 ffffffffffffffff t4 0000000000000000 t5 0000000000000000 t6 0000000000000000 pc fffffffffffffffe va fffffffffffffffe insn ffffffff sr 8000000000003008 用户获取 segfault @ 0xffffffffffffffffe
当我在spike中使用riscv64-unknown-linux-gnu-gcc编译程序时出现上述错误。
使用 riscv64-unknown-elf gcc 运行时,相同的代码可以完美执行
【问题讨论】:
-
你在什么上面运行它们?
-
请编辑以显示重现问题的最小代码示例。没有它,你甚至无法猜测。
-
@slebetman 我正在 Linux 上的 Speak ISA 模拟器上运行二进制文件
-
"我正在 Linux 上的 Speak ISA 模拟器上运行二进制文件"?您会提示您正在代理内核上运行它们。
标签: riscv