Tôi nhầm lẫn về tên đăng ký RISC-V ABI. Ví dụ, Bảng 18.2 trong "Sổ tay Hướng dẫn Thiết lập RISC-V, Tập I: ISA Người dùng Cấp, Phiên bản 2.0" ở trang 85 quy định rằng con trỏ ngăn xếp sp
là đăng ký x14
. Tuy nhiên, hướng dẫnABI Đăng ký tên cho Công ước gọi RISC-V
addi sp,zero,0
được biên soạn để 0x00000113 bởi riscv64-biết-tinh-như (-m32
không tạo sự khác biệt). Trong nhị phân:
000000000000 00000 000 00010 0010011
^imm ^rs1 ^f3 ^rd ^opcode
Vì vậy, ở đây sp
có vẻ là x2
. Sau đó, tôi googled một chút và tìm thấy RISC-V Linux User's Manual. Tài liệu này nêu rõ rằng sp
là x30
.
Vậy đó là gì? Có ABIs khác nhau không? Tôi có thể đặt ABI bằng tùy chọn dòng lệnh thành riscv64-unknown-elf-*
không? Có một bảng toàn diện ở đâu đó không?
Liên kết đó bị hỏng. Vui lòng cập nhật nó. –
Cố định liên kết bị hỏng. – RicoRico