risc-v gcc 编译 atomic 指令时产生 illegal operands 错误的解决办法
错误的写法:
amoadd.w a1, a0, a2
这是参照 Open RISC-V Reference Card 的格式书写的,这将将产生错误:
illegal operands `amoadd.w a1,a0,a2'
正确的写法:
amoadd.w a1, a2, (a0)
凡是 Load、Store 类型的指令,汇编指令和 Reference Card 的格式是不一样的,存储地址的那个寄存器要加上圆括号,而且要放在指令的最后。如果有偏移量,那么要加在圆括号前面,例如 Load Word 指令,在 Reference Card 中是这样的格式:lw rd, rs1, imm
,汇编指令要这么写: lw rd, imm(rs1)
。
Atomic 指令都是 Load、Store 类型的,其中的 rs1 存储的是要 Load、Store 的内存地址。
带 aq 或 rl 的 Atomic 指令的写法示例:
amoswap.w.aq a1,a2,(a0)
amoswap.w.rl a1,a2,(a0)
amoswap.w.aqrl a1,a2,(a0)
不知道汇编指令语法的解决办法:
- 使用 .insn 伪指令构造机器码,然后通过 objdump 反汇编出来,看看反汇编是什么格式,那么汇编指令就用什么格式。比如上面的
amoadd.w a1, a2, (a0)
通过 .insn 伪指令构造.insn r AMO, 2, 4, a1, a0, a2
。更多关于 .insn 伪指令的内容参考 gas 文档 RISC-V Instruction Formats 。 - The RISC-V Instruction Set Manual 会有一些示例代码可以参考。
参考:
- RISCV Inline Assembly in GCC: Atomic Load/Store
risc-v gcc 编译 atomic 指令时产生 illegal operands 错误的解决办法相关推荐
- linux ora27040,使用RMAN recover database时遇到ORA-01119 ORA-27040 错误的解决办法
问题描述: DATA COLLECTED =============== CUSTOMER STATEMENT ------------------ 不过在恢复数据的过程中,用8月1号的全备份,恢复到 ...
- 【VM Ware】虚拟机安装XP系统时,出现546错误的解决办法
引言: 现在的windows操作系统对旧版本的软件兼容性非常差,很多老软件无法在win10下运行,因此我们需要建立虚拟机来运行老版软件.可是我们通过虚拟机安装XP系统时,有时候会出现546错误.经过本 ...
- java ora-12505_JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法
转载至http://www.blogjava.net/itspy/archive/2007/12/20/169072.html Oracle 问题描述: 今天使用jdbc连接oracle 10.2.0 ...
- flex buider 4.6 打开设计模式(designer)时提示内存不足错误的解决办法
先申明,此方法只适用于flex builder 4.6及以下版本, flex builder 4.7以后已经完全取消了designer功能,是没有办法补救的. 1. 首先下载APE文件,这个文件好像是 ...
- Windows 7英文版访问2003或XP共享时提示用户名密码错误的解决办法
我这个人没事就喜欢玩系统,前两天把系统从Windows 2008 R2换回了英文版Windows 7(装了汉化包),但却无法访问Windows Server 2003的共享了,但用同一个密码能访问20 ...
- 使用 SAP Fiori Tools 部署 SAP UI5 应用到 ABAP 服务器时遇到的各种错误和解决办法
错误1 (node:28340) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'customMiddleware ...
- VS2019运行OpenGL时出现的常见错误及解决办法
OpenGL程序在低版本的VS中运行成功,但在VS2019中运行却出现各种错误,以下是常见错误的解决办法.(文章结尾有库的链接哟~) 问题一:无法打开文件"glaux.lib" 解 ...
- bluestacks安装安卓引擎时出现2502 2503错误的解决办法
2503代表工作站无法启动. 2502代表下面的程序调用不支持的MS-DOS函数. 以管理员身份运行命令提示符 在经典桌面使用快捷键Win+X,出现一个菜单,选择"命令提示符(管理员) &q ...
- fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾
问题:drawhouse1.cpp(17) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾 解决: 方法1.cpp文件添加引用#include "Stdaf ...
- debug笔记—编译报错usr/bin/ld: cannot find -lfl 解决办法;yum 安装软件时,报错:No package XXX available 解决办法
问题1: 在编译GEOS-Chem中KPP时,出现问题: usr/bin/ld: cannot find -lfl 原因:参考链接:https://www.royalchen.com/?p=2170 ...
最新文章
- python 3d绘图平面_python 用 matplotlib 在 3D 空间中绘制平面 实例详解
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(61)-如何使用框架来开发?...
- 【OS】期末总结复习
- mysql update中使用subquery
- matlab光顺拐点,基于MATLAB的最大误差双圆弧逼近曲线的算法及实现.pdf
- bzoj 4300 绝世好题 —— 思路
- 02-c#基础之01-基础语法(一)
- [转】:Android调试工具及方法
- 微型计算机生产制约因素,精品解析:广东省东莞市2019-2020学年高三下学期第一次统考(5月)模拟考试文科综合地理试题...
- Spread基本知识(一)
- NVisionXRFBXConverter(Beta版)实践课程
- Mastering The Mix Total Bundle 2021 Mac - 混音插件合集
- VIO,visual-inertial odometry)即视觉惯性里程计
- Flexbox中英文手册
- 惠普打印机m226dn教程_惠普m226dn说明书
- 计算机一级office操作题题库百度云,不容错过!计算机等级考试题库之一级MS Office操作题与答案...
- visual studio 调试php,使用visual studio code调试php代码
- 分享一下微信域名防封方案
- Epub解析 -- Pageturner
- PyQT5 - 打包为.EXE文件
热门文章
- flutter BoxDecoration设置背景 image 报错:type ‘Image‘ is not a subtype of type ‘ImageProvider<Object> 解决方法
- 完整图书馆管理系统(包含设计思路、图形界面、后台数据库)
- 以太坊实战之《如何正确处理nonce》
- Python 实现毫秒级淘宝抢购脚本
- react-native系列(11)组件篇:Image图片加载和ImageEditor图片剪切
- 滤波器原理及其作用计算机网络,三种滤波器的工作原理
- 记一次 “HTTP 405 Method Not Allowed”的解决方法
- 推荐一本书:清华出版的《Modbus软件开发实战指南》
- linux查看端口命令ss,Linux查看端口号ss和losf指令
- c语言怎么写注释,C语言注释