page0072
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Rev2のベタ命令セット(バックエンド命令セット)
-(by [[K]], 2014.04.24)
** (1) 基本構成
-最初に3バイトのシグネチャがある。
05 E2 00
--なお、OSECPU-VM命令セットは、他の様々な用途に応用される...
---応用を示唆する例: [[すべてがOSECPUアプリになる?>page...
--というか、そもそもここに書く命令セットは「ベタ」であっ...
-シグネチャの後はhh4エンコードで命令列を並べる。データ系...
--hh4: http://osask.net/w/634.html
--[Q]なぜ以前のようにバイト列で定義しないのですか?
--[A]OSECPU-VMは32bitに限定されない仕様に近づくから。・・...
--32bit前提じゃなくなると、immやtypが32bit固定だとは言い...
-命令表: (rはRxxのこと、pはPxxのこと、bitは定数32を入れ...
|+0|+1 |+2 |+3 |+4 |+5 |+6|+7|命令表記 |説...
|00| | | | | | | |NOP(); | ...
|01|uimm|opt| | | | | |LB(opt, uimm); | ...
|02|imm |r |bit | | | | |LIMM(bit, r, imm); | ...
|03|uimm|p | | | | | |PLIMM(p, uimm); | ...
|04|r | | | | | | |CND(r); |CN...
|05| | | | | | | |(reserve) |AP...
|06| | | | | | | |(reserve) |ル...
|07| | | | | | | |(reserve) |ル...
|08|p |typ|0 |r |bit| | |LMEM(bit, r, typ, p, 0);|...
|09|r |bit|p |typ|0 | | |SMEM(bit, r, typ, p, 0);|...
|0A|p1 |typ|0 |p0 | | | |-PLMEM(p0, typ, p1, 0);| ...
|0B|p0 |p1 |typ |0 | | | |-PSMEM(p0, typ, p1, 0);| ...
|0C| | | | | | | |(LEA) | ...
|0D| | | | | | | |(reserve) |型...
|0E|p1 |typ|r |bit|p0 | | |PADD(bit, p0, typ, p1, r)...
|0F|p0 |p1 |typ |r |bit| | |-PDIF(r, typ, p0, p1); | ...
|10|r1 |r2 |r0 |bit| | | |OR(bit, r0, r1, r2); |r1...
|11|r1 |r2 |r0 |bit| | | |XOR(bit, r0, r1, r2); | ...
|12|r1 |r2 |r0 |bit| | | |AND(bit, r0, r1, r2); | ...
|13|r1 |r2 |r0 |bit| | | |SBX(bit, r0, r1, r2); |符...
|14|r1 |r2 |r0 |bit| | | |ADD(bit, r0, r1, r2); | ...
|15|r1 |r2 |r0 |bit| | | |SUB(bit, r0, r1, r2); | ...
|16|r1 |r2 |r0 |bit| | | |MUL(bit, r0, r1, r2); | ...
|17| | | | | | | | | ...
|18|r1 |r2 |r0 |bit| | | |SHL(bit, r0, r1, r2); | ...
|19|r1 |r2 |r0 |bit| | | |SAR(bit, r0, r1, r2); | ...
|1A|r1 |r2 |r0 |bit| | | |DIV(bit, r0, r1, r2); | ...
|1B|r1 |r2 |r0 |bit| | | |MOD(bit, r0, r1, r2); | ...
|1C| | | | | | | |(PLMT0) | ...
|1D| | | | | | | |(PLMT1) | ...
|1E|p1 |p0 | | | | | |PCP(p0, p1); | ...
|1F| | | | | | | |(PCST) | ...
|20|r1 |r2 |bit1|r0 |bit0| | |CMPE(bit0, bit1, r0, r1, ...
|21| | | | | | | |CMPNE | ...
|22| | | | | | | |CMPL | ...
|23| | | | | | | |CMPGE | ...
|24| | | | | | | |CMPLE | ...
|25| | | | | | | |CMPG | ...
|26| | | | | | | |TSTZ | ...
|27| | | | | | | |TSTNZ | ...
|28|p0 |p1 |r |bit| | | |-PCMPE(r, p0, p1); | ...
|29| | | | | | | |PCMPNE | ...
|2A| | | | | | | |PCMPL | ...
|2B| | | | | | | |PCMPGE | ...
|2C| | | | | | | |PCMPLE | ...
|2D| | | | | | | |PCMPG | ...
|2E|typ |len|... | | | | |data |ty...
|2F|uimm| | | | | | |(reserve) |各...
|30|r0 |bit0|r1 |bit1|p | | |talloc |r0...
|31|p |r0 |bit0|r1 |bit1| | |tfree | ...
|32|r0 |bit0|r1 |bit1|p | | |malloc | ...
|33|p |r0 |bit0|r1 |bit1| | |mfree | ...
|34| | | | | | | | | ...
|35| | | | | | | | | ...
|36| | | | | | | | | ...
|37| | | | | | | | | ...
|38| | | | | | | |(reserve) |PA...
|39| | | | | | | |(reserve) |PA...
|3A| | | | | | | |(reserve) |PA...
|3B| | | | | | | |(reserve) |PA...
|3C|rn |bit0|pn |fn |bit1|0| |ENTER |rn...
|3D|rn |bit0|pn |fn |bit1|0| |LEAVE | ...
|3E| | | | | | | |(reserve) |ca...
|3F| | | | | | | |(reserve) |ca...
|40|mod|fimm|f |bit| | | |FLIMM | ...
|41|f1 |bit1|f0 |bit0| | | |FCP |bi...
|42|r |bit1|f |bit0| | | |CNVIF | ...
|43|f |bit1|r |bit0| | | |CNVFI | ...
|44| | | | | | | |(FLMEM) | ...
|45| | | | | | | |(FSMEM) | ...
|46| | | | | | | |(reserve) |PA...
|47| | | | | | | |(reserve) |PA...
|48|f1 |f2 |bit1|r |bit0| | |FCMPE | ...
|49| | | | | | | |FCMPNE | ...
|4A| | | | | | | |FCMPL | ...
|4B| | | | | | | |FCMPGE | ...
|4C| | | | | | | |FCMPLE | ...
|4D| | | | | | | |FCMPG | ...
|4E| | | | | | | | |Na...
|4F| | | | | | | | |Na...
|50| | | | | | | |FADD | ...
|51| | | | | | | |FSUB | ...
|52| | | | | | | |FMUL | ...
|53| | | | | | | |FDIV | ...
|54| | | | | | | |(reserve) | ...
|55| | | | | | | |(reserve) | ...
|56| | | | | | | |(reserve) | ...
|57| | | | | | | |(reserve) | ...
|58| | | | | | | |FCOS | ...
|59| | | | | | | |FSIN | ...
|5A| | | | | | | |FTAN | ...
|5B| | | | | | | |(reserve) |FC...
|78| | | | | | | |(reserve) |bi...
|79| | | | | | | |(reserve) |bi...
|FD|imm |dr | | | | | |LIDR |lo...
|FE|uimm|len| | | | | |remark | ...
//レジスタの一部のデータだけが保存されることを理解してい...
-2013年のころのバイトコードと比較すると、データの流れが左...
--なぜ?・・・そのほうがデコーダを書きやすいから。
-typはpの直後に来る。
--なぜ?・・・そのほうが型推論を書きやすいから。
-bitってなんですか?
--Rxxの演算精度のこと。bit=32の場合、Rxxは32bitかそれ以上...
--これが何のために必要かというと、今まではcharの演算で済...
--「第三世代OSASK」では、bitは64や256などを指定してもよく...
--このようにアーキテクチャが固有の標準bitを持たないことを...
-C0~DFまでは独自拡張用に開けておくので勝手に使って構わな...
-E0~EFは内部エラー通知用。
* こめんと欄
-[[hikarupsp_WebCPU-VM_internal]]をすごく参考にしています...
-(こちらにあったhikarupspさんの質問とその回答は[[page008...
#comment
終了行:
* Rev2のベタ命令セット(バックエンド命令セット)
-(by [[K]], 2014.04.24)
** (1) 基本構成
-最初に3バイトのシグネチャがある。
05 E2 00
--なお、OSECPU-VM命令セットは、他の様々な用途に応用される...
---応用を示唆する例: [[すべてがOSECPUアプリになる?>page...
--というか、そもそもここに書く命令セットは「ベタ」であっ...
-シグネチャの後はhh4エンコードで命令列を並べる。データ系...
--hh4: http://osask.net/w/634.html
--[Q]なぜ以前のようにバイト列で定義しないのですか?
--[A]OSECPU-VMは32bitに限定されない仕様に近づくから。・・...
--32bit前提じゃなくなると、immやtypが32bit固定だとは言い...
-命令表: (rはRxxのこと、pはPxxのこと、bitは定数32を入れ...
|+0|+1 |+2 |+3 |+4 |+5 |+6|+7|命令表記 |説...
|00| | | | | | | |NOP(); | ...
|01|uimm|opt| | | | | |LB(opt, uimm); | ...
|02|imm |r |bit | | | | |LIMM(bit, r, imm); | ...
|03|uimm|p | | | | | |PLIMM(p, uimm); | ...
|04|r | | | | | | |CND(r); |CN...
|05| | | | | | | |(reserve) |AP...
|06| | | | | | | |(reserve) |ル...
|07| | | | | | | |(reserve) |ル...
|08|p |typ|0 |r |bit| | |LMEM(bit, r, typ, p, 0);|...
|09|r |bit|p |typ|0 | | |SMEM(bit, r, typ, p, 0);|...
|0A|p1 |typ|0 |p0 | | | |-PLMEM(p0, typ, p1, 0);| ...
|0B|p0 |p1 |typ |0 | | | |-PSMEM(p0, typ, p1, 0);| ...
|0C| | | | | | | |(LEA) | ...
|0D| | | | | | | |(reserve) |型...
|0E|p1 |typ|r |bit|p0 | | |PADD(bit, p0, typ, p1, r)...
|0F|p0 |p1 |typ |r |bit| | |-PDIF(r, typ, p0, p1); | ...
|10|r1 |r2 |r0 |bit| | | |OR(bit, r0, r1, r2); |r1...
|11|r1 |r2 |r0 |bit| | | |XOR(bit, r0, r1, r2); | ...
|12|r1 |r2 |r0 |bit| | | |AND(bit, r0, r1, r2); | ...
|13|r1 |r2 |r0 |bit| | | |SBX(bit, r0, r1, r2); |符...
|14|r1 |r2 |r0 |bit| | | |ADD(bit, r0, r1, r2); | ...
|15|r1 |r2 |r0 |bit| | | |SUB(bit, r0, r1, r2); | ...
|16|r1 |r2 |r0 |bit| | | |MUL(bit, r0, r1, r2); | ...
|17| | | | | | | | | ...
|18|r1 |r2 |r0 |bit| | | |SHL(bit, r0, r1, r2); | ...
|19|r1 |r2 |r0 |bit| | | |SAR(bit, r0, r1, r2); | ...
|1A|r1 |r2 |r0 |bit| | | |DIV(bit, r0, r1, r2); | ...
|1B|r1 |r2 |r0 |bit| | | |MOD(bit, r0, r1, r2); | ...
|1C| | | | | | | |(PLMT0) | ...
|1D| | | | | | | |(PLMT1) | ...
|1E|p1 |p0 | | | | | |PCP(p0, p1); | ...
|1F| | | | | | | |(PCST) | ...
|20|r1 |r2 |bit1|r0 |bit0| | |CMPE(bit0, bit1, r0, r1, ...
|21| | | | | | | |CMPNE | ...
|22| | | | | | | |CMPL | ...
|23| | | | | | | |CMPGE | ...
|24| | | | | | | |CMPLE | ...
|25| | | | | | | |CMPG | ...
|26| | | | | | | |TSTZ | ...
|27| | | | | | | |TSTNZ | ...
|28|p0 |p1 |r |bit| | | |-PCMPE(r, p0, p1); | ...
|29| | | | | | | |PCMPNE | ...
|2A| | | | | | | |PCMPL | ...
|2B| | | | | | | |PCMPGE | ...
|2C| | | | | | | |PCMPLE | ...
|2D| | | | | | | |PCMPG | ...
|2E|typ |len|... | | | | |data |ty...
|2F|uimm| | | | | | |(reserve) |各...
|30|r0 |bit0|r1 |bit1|p | | |talloc |r0...
|31|p |r0 |bit0|r1 |bit1| | |tfree | ...
|32|r0 |bit0|r1 |bit1|p | | |malloc | ...
|33|p |r0 |bit0|r1 |bit1| | |mfree | ...
|34| | | | | | | | | ...
|35| | | | | | | | | ...
|36| | | | | | | | | ...
|37| | | | | | | | | ...
|38| | | | | | | |(reserve) |PA...
|39| | | | | | | |(reserve) |PA...
|3A| | | | | | | |(reserve) |PA...
|3B| | | | | | | |(reserve) |PA...
|3C|rn |bit0|pn |fn |bit1|0| |ENTER |rn...
|3D|rn |bit0|pn |fn |bit1|0| |LEAVE | ...
|3E| | | | | | | |(reserve) |ca...
|3F| | | | | | | |(reserve) |ca...
|40|mod|fimm|f |bit| | | |FLIMM | ...
|41|f1 |bit1|f0 |bit0| | | |FCP |bi...
|42|r |bit1|f |bit0| | | |CNVIF | ...
|43|f |bit1|r |bit0| | | |CNVFI | ...
|44| | | | | | | |(FLMEM) | ...
|45| | | | | | | |(FSMEM) | ...
|46| | | | | | | |(reserve) |PA...
|47| | | | | | | |(reserve) |PA...
|48|f1 |f2 |bit1|r |bit0| | |FCMPE | ...
|49| | | | | | | |FCMPNE | ...
|4A| | | | | | | |FCMPL | ...
|4B| | | | | | | |FCMPGE | ...
|4C| | | | | | | |FCMPLE | ...
|4D| | | | | | | |FCMPG | ...
|4E| | | | | | | | |Na...
|4F| | | | | | | | |Na...
|50| | | | | | | |FADD | ...
|51| | | | | | | |FSUB | ...
|52| | | | | | | |FMUL | ...
|53| | | | | | | |FDIV | ...
|54| | | | | | | |(reserve) | ...
|55| | | | | | | |(reserve) | ...
|56| | | | | | | |(reserve) | ...
|57| | | | | | | |(reserve) | ...
|58| | | | | | | |FCOS | ...
|59| | | | | | | |FSIN | ...
|5A| | | | | | | |FTAN | ...
|5B| | | | | | | |(reserve) |FC...
|78| | | | | | | |(reserve) |bi...
|79| | | | | | | |(reserve) |bi...
|FD|imm |dr | | | | | |LIDR |lo...
|FE|uimm|len| | | | | |remark | ...
//レジスタの一部のデータだけが保存されることを理解してい...
-2013年のころのバイトコードと比較すると、データの流れが左...
--なぜ?・・・そのほうがデコーダを書きやすいから。
-typはpの直後に来る。
--なぜ?・・・そのほうが型推論を書きやすいから。
-bitってなんですか?
--Rxxの演算精度のこと。bit=32の場合、Rxxは32bitかそれ以上...
--これが何のために必要かというと、今まではcharの演算で済...
--「第三世代OSASK」では、bitは64や256などを指定してもよく...
--このようにアーキテクチャが固有の標準bitを持たないことを...
-C0~DFまでは独自拡張用に開けておくので勝手に使って構わな...
-E0~EFは内部エラー通知用。
* こめんと欄
-[[hikarupsp_WebCPU-VM_internal]]をすごく参考にしています...
-(こちらにあったhikarupspさんの質問とその回答は[[page008...
#comment
ページ名: