精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

loongarch架構介紹—基礎指令(一)

開發 架構
本文介紹了loongarch架構中的一些基礎指令,如整數和浮點運算指令、轉移指令、訪存指令,并結合案例對loongarch匯編語言的寫法進行了說明。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

最近龍芯中科宣布,龍芯2K0500開發板已與OpenHarmony(開源鴻蒙系統)完成了適配驗證,LoongArch平臺實現初步支持OpenHarmony。本系列文章將對loongarch架構進行介紹。

龍芯架構LoongArch是龍芯中科公司自主設計的一種精簡指令集計算機(RISC)風格的指令系統架構。其分為32位和64位兩個版本,分別稱為LA32架構和LA64架構。本文主要對其中的基礎部分進行介紹。本文中的主要信息來源于龍芯目前公開的資料。

1、指令編碼格式

下圖為龍芯架構的典型指令編碼格式,大部分指令格式都符合這些格式:

#loongarch架構介紹#[一]基礎指令-開源基礎軟件社區

上圖中解釋:

  • 指令長度固定為32位,無論是LA32還是LA64
  • 上圖中共有2R-type、3R-type、2RI8-type等9種編碼格式,其中R表示寄存器,I表示立即數。如2RI8-type表示指令格式中除了操作碼opcode外,還指定了2個寄存器和一個8位的立即數。

2、指令匯編格式

loongarch的指令匯編格式主要包括指令名和操作數這兩部分,其中指令名格式比較特別。loongarch中指令名可以有前綴和后綴字母,前綴字母有:

  • V:128位向量指令
  • XV:256位向量指令
  • F:非向量浮點指令
  • VF:128位向量浮點指令
  • XVF:256位向量浮點指令

后綴字母有:

  • 對于整數類型指令:.B、.H、.W、.D、.BU、.HU、.WU、.DU分別表示有符號字節、有符號半字、有符號字、有符號雙字、無符號字節、無符號半字、無符號字、無符號雙字。其中雙字僅存在于LA64
  • 對于浮點類型指令:.H、.S、.D、.W、.L、.WU、.LU分別表示半精度、單精度、雙精度的浮點數,以及有符號字、有符號雙字、無符號字、無符號雙字的整數。其中雙字僅存在于LA64

舉例如下:

  • add.w    rd, rj, rk: 表示寄存器rj和rk相加,結果寫入rd。無前綴,后綴.w表示操作數據的位數為32位。
  • fadd.s fd, fj, fk:表示浮點寄存器fj和fk相加,結果寫入fd。前綴為f,表示為非向量浮點運算指令。后綴為.s,表示操作數據為單精度浮點數。
  • mulw.d.wu rd, rj, rk:表示寄存器rj和rk相乘,結果寫入rd。無前綴。該指令有兩個后綴,.d表示rd中結果為雙精度浮點數,.wu表示rj和rk中數據為無符號32位整數。

3、基礎指令介紹

(1)整數運算類

loongarch中有32個通用寄存器,LA32和LA64中分別為32位和64位長度。loongarch中可用這些寄存器執行整數類的指令。

loongarch支持基本的整數運算,有:

  • 加減乘除的add、sub、mul、div等指令。如addi.w rd, rj, si12表示將寄存器rj和有符號立即數si12進行32位加法運算,結果寫入rd。
  • 邏輯移位、算術移位的sll、srl、sra、rotr等指令。如srl.w rd, rj, rk表示將寄存器rj作邏輯右移rk位,移位結果符號擴展寫入寄存器rd。
  • 與或非等操作的and、or、nor、xor、andi、ori等指令。如and rd, rj, rk表示將寄存器rj和rk作位與運算,結果寫入rd。
  • slt、sltu、slti、sltui指令用于小于比較。
  • 如slt rd, rj, rk表示將寄存器rj和rk視為有符號整數作小于比較,將結果寫入rd。
  • 如sltu rd, rj, rk表示將寄存器rj和rk視為無符號整數作小于比較,將結果寫入rd
  • lu12i.w、lu32i.d等指令用于立即數連接。如lu12i.w rd, si20表示將20位立即數si20最低位連接上12位的0,然后符合擴展后寫入rd。
  • 一些位操作指令,有clo、clz、ctz等指令、用于符號擴展的ext指令等。
  • 如ext.w.b rd, rj表示將rj中低8位數據進行符號擴展后寫入rd。
  • 如clz.w rd, rj表示從第31位開始計數寄存器rj中連續0的個數,結果寫入rd。

(2)浮點運算類

loongarch中有32個浮點寄存器,在LA32和LA64中均為64位。loongarch中可用這些寄存器進行浮點類指令。

loongarch中支持基本的浮點運算,有:

  • 加減乘除相關的fadd、fsub、fmul、fdiv、fmadd、fnmsub等指令。
  • 如fadd.s fd, fj, fk表示將浮點寄存器fj和fk進行單精度加法運算,結果寫入fd。
  • 如fmsub.d fd, fj, fk, fa表示將浮點寄存器fj和fk進行雙精度乘法運算,然后再與fa進行雙精度減法運算,結果寫入fd。
  • 浮點比較運算相關的fcmp.cond指令。其中.cond可以為多種比較含義的助記符。如fcmp.ceq.s cc, fj, fk 表示進行相等比較。
  • 浮點轉換類的fcvt、ffint、frint等指令。
  • 如fcvt.s.d fd, fj表示將浮點寄存器fj中的雙精度浮點數轉換為單精度,并寫入fd。
  • 如ftintrne.w.s fd, fj表示將浮點寄存器fj中的單精度浮點數轉換為32位整數寫入到fd,并采用“向最近的偶數舍入”。
  • 浮點搬運類型指令,包括fmov、fsel、movgr2fr等指令。
  • 如fsel fd, fj, fk, ca表示如果條件標志寄存器ca的值為0,則將浮點寄存器fj寫入fd,否則將fk寫入fd。
  • 如movgr2fr.w fd, rj表示將rj的低32位寫入浮點寄存器fj的低32位。
  • 一些特殊浮點運算指令,有取最小/最大值運算的fmax、fmin、fmaxa、fmina指令、取絕對值的fabs指令、取反的fneg指令、開方和倒數運算相關的fsqrt和frecip等指令,等等。如fmaxa.s fd, fj, fk表示fd中寫入浮點寄存器fj、fk中絕對值的較大者。

(3)訪存指令

和一般RISC一樣,loongarch中通過load/store類指令進行訪存,有:

  • ld/st指令。
  • 如ld.b rd, rj, si12表示將rj+有符號立即數si12作為虛擬地址,從該地址取出一個字節數據寫入rd。
  • 如st.w rd, rj, si12表示將rj+有符號立即數si12作為虛擬地址,將rd低32位數據寫入該地址。
  • ldx/stx指令。相比ld/st指令,區別是虛擬地址表示不同:如ldx.b rd, rj, rk表示將rj+rk作為虛擬地址,從該地址取出一個字節數據寫入rd。
  • ldptr/stptr指令。相比ld/st指令,區別是立即數表示不同,即立即數的最大位數不同以及其表示的偏移以4字節對齊。如stptr.w rd, rj, si14表示將rj+有符號立即數si14*4作為虛擬地址,從該地址取出32位數據寫入rd。
  • ldgt/stgt、ldle/stle等邊界檢查訪存指令。如ldgt.b rd, rj, rk表示將rj作為虛擬地址,如果rj大于rk,則從該地址中取出一個字節數據到rd。否則觸發異常。
  • 浮點訪存指令,包括fld/fst、fldx/fstx、fldgt/fstgt指令等。與前面指令含義基本一致,只不過是用浮點寄存器作為目標寄存器。如fld.s fd, rj, si12表示將rj+有符號立即數si12作為虛擬地址,從該地址取出一個單精度浮點數數據寫入fd。

(4)轉移指令

下面對loongarch中的轉移指令進行介紹:

  • 無條件跳轉指令b。如b offs26表示無條件跳轉到地址pc+offs26*4,其中offs26為26位的立即數偏移量,且4字節對齊。
  • 無條件跳轉指令jirl。和b的區別是,會將pc+4的值進行保存。如jirl rd, rj, offs16表示無條件跳轉到地址pc+offs16*4,然后將pc+4寫入rd。其中offs16為16位的立即數偏移量,且4字節對齊。
  • 無條件跳轉指令bl。和jirl的區別是,pc+4的值固定保存在r1中。r1別名ra,一般用作保存返回地址。如bl offs26表示無條件跳轉到地址pc+offs26*4,然后將pc+4寫入r1。其中offs26為26位的立即數偏移量,且4字節對齊。
  • 條件轉移指令beq、bne、blt等。如beq rj, rd, offs16表示當rj和rd相等時才跳轉到地址pc+offs16*4。

(5)一些補充的基礎指令

在閱讀linux上loongarch架構相關代碼的時候,遇到了一些loongarch資料中沒有寫出來的指令。本小節中將這些指令列出,其中指令的含義是根據上下文推測出來的。

  • move:如move rd, rj將rj中值復制到rd。
  • li:如li.w rd, 1將rd中值置為1。
  • la:如la.abs rd, label將label對應地址賦值給rd。
  • jr:如jr ra跳轉到ra中地址,可能會有一些額外的操作。

4、匯編案例說明

#loongarch架構介紹#[一]基礎指令-開源基礎軟件社區

上圖中描述了loongarch中寄存器的使用約定,與其他的架構其實大同小異。有棧指針寄存器,有通用和浮點的傳參寄存器,有返回地址寄存器等。下面結合代碼進行說明。

以下為一段c語言代碼:

...
extern long
nested(long a, long b, long c, long d,
long e, long f, long g, long h, long i);

long normal(void) {
return nested(1, 2, 3, 4, 5, 6, 7, 8, 9);
}

對應loongarch匯編如下:

normal:
// 分配棧幀
addi.d $sp, $sp, -32
// 傳參9,傳參寄存器不夠,儲存在棧上
addi.w $t0, $zero, 9
stptr.d $t0, $sp, 0
// 傳參8-1,使用傳出寄存器a7-a0
addi.w $a7, $zero, 8
addi.w $a6, $zero, 7
addi.w $a5, $zero, 6
addi.w $a4, $zero, 5
addi.w $a3, $zero, 4
addi.w $a2, $zero, 3
addi.w $a1, $zero, 2
addi.w $a0, $zero, 1

// 將返回地址保存到棧上
st.d $ra, $sp, 24

// 調用nested函數
bl %plt(nested)

// 恢復返回地址到ra
ld.d $ra, $sp, 24

// 恢復棧幀
addi.d $sp, $sp, 32

// 函數返回
jr $ra

loongarch的棧幀可用下圖表示:

#loongarch架構介紹#[一]基礎指令-開源基礎軟件社區

總結

本文介紹了loongarch架構中的一些基礎指令,如整數和浮點運算指令、轉移指令、訪存指令,并結合案例對loongarch匯編語言的寫法進行了說明。下一篇文章將會介紹loongarch中的原子指令、柵障指令,及其用法。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-01-04 15:20:51

loongarch架構

2023-03-01 14:59:08

TLB維護架構

2023-02-03 14:41:03

地址翻譯模式loongarch

2023-02-21 16:46:04

loongarch架構

2019-11-06 10:55:32

虛擬化VMware vSph架構

2021-01-21 10:02:45

Consul架構安裝

2011-12-20 15:52:03

PhoneGap架構基礎工作原理

2013-07-19 12:52:50

iOS中BlockiOS開發學習

2009-12-11 15:59:00

Linux grep指

2009-12-25 14:24:59

Linux指令od

2022-10-08 11:16:04

UbuntuLoongArch

2020-12-24 07:29:32

云計算云基礎云原生DevOps

2010-11-01 06:43:21

PowerShell

2011-07-14 16:26:01

2010-03-05 10:24:33

2012-07-23 16:18:52

Linux集群HPC架構

2011-06-30 18:39:35

SEO

2023-07-10 16:00:56

AT指令建立網絡連接

2011-06-21 14:42:37

ECMAScriptJavaScript

2009-09-22 09:27:29

Hibernate P
點贊
收藏

51CTO技術棧公眾號

欧美性suv| 99久久久久国产精品| 中文字幕av一区二区三区人妻少妇| 精品一二线国产| 中文字幕亚洲欧美日韩| 欧美视频裸体精品| 亚洲青青一区| 日本wwwwwww| 日韩电影中文字幕| 欧美综合在线视频观看| 亚洲精品视频导航| 国产亚洲视频中文字幕视频| 999精品色在线播放| 欧美另类一区二区| 亚洲自拍偷拍一区| 国产精品嫩草久久久久| 啦啦啦中文在线观看日本| 尤物av无码色av无码| 欧美三级日本三级少妇99| 久久久久蜜桃| 中文字幕欧美色图| 欧美动漫一区二区| 亚洲成av人片| 在线免费看av| 国产aaa一级片| 亚洲欧美日韩一区在线| 久久精品999| 91精品人妻一区二区三区果冻| 国产精品va在线播放我和闺蜜| 亚洲福利专区| 亚洲成人黄色片| 一级黄色录像免费看| 欧美精品777| 欧美全黄视频| 免费看黄网站在线观看| 先锋影音男人资源| 黄色一区二区三区| 亚洲啊v在线观看| 国产视频第一页| 欧美a级黄色大片| 亚洲成年网站在线观看| 日韩精品91亚洲二区在线观看| 亚洲精品一区二区口爆| 日韩激情视频| 在线观看三级视频欧美| 色琪琪久久se色| 国产午夜免费视频| 色爽爽爽爽爽爽爽爽| 精品美女被调教视频大全网站| 久久影院资源站| 女同久久另类69精品国产| 69视频在线播放| 亚洲摸摸操操av| 91麻豆精品| 久久精品视频久久| 日本一区二区三区在线视频| 亚洲精品国产精品国自产观看浪潮| 欧美日韩ab| 国产在线观看高清视频| 手机免费看av网站| 日本亚洲欧洲色α| 国产精品国产精品国产专区不蜜| 欧美久久天堂| 久久久久久久久久网站| 成人黄色短视频在线观看| 亚洲图片有声小说| 国产免费av一区二区三区| 头脑特工队2在线播放| 只有这里有精品| 亚洲国产婷婷香蕉久久久久久| 久久亚洲在线| 日本综合在线| 无码人中文字幕| 鲁丝一区二区三区免费| 中文字幕自拍vr一区二区三区| 六月天综合网| 99re6在线精品视频免费播放| 国产美女视频免费看| 日韩av黄色在线观看| 色美美综合视频| 久久青草久久| 岛国在线大片| 久久黄色免费网站| 国产精品igao激情视频| 色狠狠av一区二区三区香蕉蜜桃| 国产在线一区观看| 北条麻妃一区二区三区在线观看| www青青草原| 美国av在线播放| 丝袜美腿精品国产二区| 亚洲国产精品ⅴa在线观看| 女生裸体视频一区二区三区| 2018av在线| 少妇一级淫片免费放中国 | 国产欧美日韩丝袜精品一区| 欧美在线free| 久久精品国产第一区二区三区| 国产理论电影在线| av黄色在线播放| 熟妇人妻va精品中文字幕| 91探花福利精品国产自产在线| 一区二区三区在线免费播放| 亚洲国产一区二区三区a毛片| 成人av福利| 国产中文字幕免费| 红桃av在线播放| 欧美一区二区在线| 久久国产精品久久精品| 亚洲成av人片一区二区三区| 成人18精品视频| 国产精品亚洲二区| 色偷偷偷在线视频播放| www.激情五月.com| 男人的天堂av网| 亚洲第一天堂久久| 最新视频 - x88av| 欧美诱惑福利视频| 欧美性xxxxxxxxx| 精品在线一区二区三区| 一区二区三区视频播放| 黄页在线观看免费| 九九精品在线观看视频 | 五月天开心婷婷| 国产欧美一区二区三区久久| 久久这里只有精品视频首页| 欧美视频在线一区二区三区| 自拍偷拍国产精品| 亚洲人成免费网站| 主播大秀视频在线观看一区二区| 国产高清视频免费| av天堂一区二区| 一区二区视频在线观看| 成人综合国产精品| 久久五月天综合| 精品1区2区在线观看| 亚洲精品国产成人久久av盗摄 | 免费黄在线观看| 欧美成熟毛茸茸复古| 国产精品人人做人人爽| 日韩精品在线观看网站| 亚洲欧美日韩国产成人精品影院 | 一区二区激情视频| 成人激情av网| 在线亚洲精品| 97精品视频在线看| www.成人网| 成人免费网站www网站高清| 女人偷人在线视频| 在线中文字幕网站| 男女曰b免费视频| 男女爱爱视频网站| 91精品国产色综合久久不卡98口| 在线观看成人小视频| 亚洲精品国产成人久久av盗摄 | 精品人妻一区二区三区潮喷在线| 成人羞羞国产免费网站| 一二三在线视频| 麻豆亚洲一区| 国产成人精品自拍| 日本91av在线播放| 久久精品成人一区二区三区| 亚洲国产日韩精品在线| 亚洲综合成人网| 久久精品一区蜜桃臀影院| 粉嫩在线一区二区三区视频| 青青草精品视频| 亚洲区欧美区| 91精品综合久久久久久久久久久 | 红桃成人av在线播放| 成人天堂yy6080亚洲高清| 欧美6一10sex性hd| fc2ppv国产精品久久| 日本韩国欧美中文字幕| 日韩乱码在线观看| 亚洲熟女www一区二区三区| 欧美老女人性生活视频| 中文字幕人妻一区二区三区| 国产精品嫩草av| 精产国品一区二区三区| 大陆极品少妇内射aaaaaa| 国产在线一区二| 久久一区二区三区欧美亚洲| 97人人模人人爽人人喊38tv| 91在线网站视频| 91久久在线播放| 成人xxxx视频| 成人在线免费观看一区| 91系列在线播放| 国内成+人亚洲| 日韩一区二区三区资源| 亚洲日本精品| 久热免费在线观看| 欧美成人手机在线视频| 男人天堂资源网| 日本成人一区| 国产精品流白浆在线观看| 韩日精品视频一区| 亚洲国产一区二区三区| 亚洲欧洲一区二区在线播放| 国产精品久久午夜夜伦鲁鲁| 国产精品久久久久久久久免费丝袜| 麻豆专区一区二区三区四区五区| 成人动漫视频在线观看完整版| 亚洲国产天堂网精品网站| 日韩国产精品视频| 6080国产精品一区二区| 精品久久久久久无| 亚洲精品中文字| 超碰97人人做人人爱少妇| 亚洲成人精品视频| 欧美日精品一区视频| 欧美不卡一区二区| 日韩麻豆第一页| www.xxxx欧美| 亚洲 日韩 国产第一| 97精品视频在线观看| 亚洲综合日韩在线| 欧洲成人免费aa| 国产精品一区二区三区四区五区| 国产在线999| 精品乱色一区二区中文字幕| 亚洲国产精品一区二区第一页| 国产精品三区在线| 国产不卡av在线| 欧美日韩国产一二| 女人色极品影院| 日韩精品――色哟哟| 亚洲激情图片网| 久久国产视频精品| 亚洲av激情无码专区在线播放| 国产一区二区三区视频免费观看| 国产乱淫a∨片免费观看| 色婷婷av一区二区三区之e本道| 亚洲综合五月天婷婷丁香| 日本国产在线| 丁香花在线观看完整版电影| 国产精品115| 久久99伊人| 老司机免费视频久久| 久久99这里只有精品| 亚洲国产成人自拍| 欧美日韩在线播放一区| 欧美电影在线免费观看| 日韩一区二区三区视频在线观看 | 国产在线一区二区| 26uuu成人网一区二区三区| 欧美色videos| 精品国内产的精品视频在线观看| 九九视频这里只有精品| 久久精彩视频| 熟妇人妻无乱码中文字幕真矢织江| 在线免费av播放| 一区二区视频免费看| 性色av蜜臀av| www视频在线观看| 日韩中文在线电影| 极品少妇一区二区三区精品视频| 国产高清在线精品| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品毛片大码女人| 欧美一区二区免费| 91精品国产色综合久久不卡98口| 3d动漫精品啪啪一区二区三区免费| 国产高清精品一区二区| 亚洲激情一区二区三区| av黄色一级片| 亚洲一级在线播放| 国产精品粉嫩| 91成人看片| 久久精品在线免费观看| 欧美成人精精品一区二区频| 91精品国产综合久久香蕉的用户体验| 99久久精品无码一区二区毛片| 亚洲精品视频一区二区三区| av漫画在线观看| 夜夜爽妓女8888视频免费观看| www夜片内射视频日韩精品成人| 好了av在线| 嫩草影视亚洲| 91亚洲精品乱码久久久久久蜜桃| 亚洲视频一二三区| 国产一区二区三区高清在线观看| 欧美中文在线字幕| 91免费黄视频| 国产精品99re| 免费看男女www网站入口在线| 日本免费一区二区视频| 欧美人成网站| 一区二区三区在线视频免费| 久久色精品视频| 黄色一级片网址| 久久精品女人天堂| 国产亚洲欧美激情| 伊人青青综合网站| 国产精品成人aaaaa网站| 日产精品一线二线三线芒果| 免费看黄色aaaaaa 片| 香蕉视频免费看| 亚洲第一精品影视| 在线观看视频日韩| 夜夜揉揉日日人人青青一国产精品| 国产成人精品免费视| 97精品电影院| 在线观看日韩欧美| 亚洲精品蜜桃久久久久久| 亚洲承认视频| 国产香蕉视频在线看| 久久av免费| 国产精品美日韩| 日韩成人激情在线| 成年人视频大全| 夜夜添无码一区二区三区| 久久精品视频5| 成人a在线观看高清电影| 国产一区二区三区观看| 色综合欧美在线| 热久久免费视频精品| 中文字幕一区二区三区乱码不卡| 亚洲综合图片网| 婷婷综合六月| 日韩电影在线观看电影| 欧美午夜电影网| 久久久久久久久久码影片| 日韩福利小视频| 夜鲁夜鲁夜鲁视频在线播放| 国产精品入口| 精品中文字幕久久久久久| 男人添女人荫蒂免费视频| 欧美黄色一级生活片| 激情黄产视频在线免费观看| 久久国产精品色| 亚洲三级av在线| 999在线观看视频| 精品黑人一区二区三区国语馆| 国产精品久久久久久av公交车| 日韩av一区二区三区| 日韩电影中文字幕在线| 人妻激情另类乱人伦人妻| 日本妇乱大交xxxxx| xvideos.蜜桃一区二区| 一区二区三区在线免费| 国产精成人品localhost| 久久99久久久| 超碰在线cao| 成人高清视频在线| 亚洲欧美日韩国产成人| 亚洲理论电影在线观看| 亚洲AV午夜精品| 亚洲激情成人| 亚洲欧美一区二区三区在线| 免费试看一区| 中文字幕你懂的| 91精品婷婷色在线观看| 欧美片在线播放| 在线观看17c| 婷婷丁香一区二区三区| 久久综合九色| 欧美一级一区二区| 男人草女人视频| 亚洲国产一二三区| 亚洲欧洲日本mm| 国产视频精品xxxx| 九九九九九九九九| 免费一级在线观看播放网址| 久久精品午夜| 欧美老女人性视频| 我和岳m愉情xxxⅹ视频| 欧美亚洲天堂| 91免费视频大全| 国产大片精品免费永久看nba| 毛毛毛毛毛毛毛片123| 尤物视频在线看| 国产日韩欧美激情| 99久久久久国产精品免费| 欧美a∨亚洲欧美亚洲| 日韩免费视频| 亚洲国产日韩欧美在线99| 日韩国产精品毛片| 国产精品美女一区| 奇米精品一区二区三区在线观看一| 亚洲欧美日韩久久久久久| 无码av免费精品一区二区三区| 国产第一页在线| 懂色av一区二区三区蜜臀| 草民午夜欧美限制a级福利片| 国产喷水theporn| 欧美成人资源| 色八戒一区二区三区| 久久久久久免费看| 黑人精品视频| 亚洲精品福利视频网站| 美国av在线播放| www久久久com| 激情五月激情综合网| www国产精品视频| jizz亚洲少妇| 亚洲黄网站黄| 国产精品久久久一区| 国产一区二区三区中文字幕| 韩国精品在线观看|