page0014
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* JITコンパイラの中身
-(by [[K]], 2013.03.27)
** もくてき
-JITコンパイラっていうのは、結局バイト列をバイト列に変換...
-最適化があるともっと複雑になるだろうけど、最適化なんてい...
** ver.0.07 (x86-32bitへのJITCの例)
-基本
--レジスタはすべてメモリに割り当てています。手抜きです。
---R00: (int) [EBP+0]
---R01: (int) [EBP+4]
---R3F: (int) [EBP+252]
--Pxxレジスタには256bit(32バイト)を割り当てています。
---P01: [EBP+288]
---P02: [EBP+320]
---P1F: [EBP+1248]
-JITC実例
NOP 00
(何も出力していません)
LOADINT R12, 0x01234567 02 12 01 23 45 67
MOV EAX,0x01234567 B8 67 45 23 01
MOV [EBP+72],EAX 89 85 48 00 00 00 /* R12:[...
COPYINT R12, R34 10 12 34 FF
MOV EAX,[EBP+208] 8B 85 D0 00 00 00 /* R34:[...
MOV [EBP+72],EAX 89 85 48 00 00 00 /* R12:[...
ANDINT R12, R23, R34 12 12 23 34
MOV EAX,[EBP+140] 8B 85 8C 00 00 00 /* R23:[...
AND EAX,[EBP+208] 23 85 D0 00 00 00 /* R34:[...
MOV [EBP+72],EAX 89 85 48 00 00 00 /* R12:[...
SUBINT R12, R23, R34 15 12 23 34
MOV EAX,[EBP+140] 8B 85 8C 00 00 00
SUB EAX,[EBP+208] 2B 85 D0 00 00 00
MOV [EBP+72],EAX 89 85 48 00 00 00
COPYPTR P01, P12 1E 01 12
MOV EAX,[EBP+832]
MOV [EBP+288],EAX
MOV EAX,[EBP+836]
MOV [EBP+292],EAX
MOV EAX,[EBP+840]
MOV [EBP+296],EAX
MOV EAX,[EBP+844]
MOV [EBP+300],EAX
MOV EAX,[EBP+848]
MOV [EBP+304],EAX
MOV EAX,[EBP+852]
MOV [EBP+308],EAX
MOV EAX,[EBP+856]
MOV [EBP+312],EAX
MOV EAX,[EBP+860]
MOV [EBP+316],EAX
COMPL R12, R23, R34 22 12 23 34
MOV EAX,[EBP+140] 8B 85 8C 00 00 00
CMP EAX,[EBP+208] 3B 85 D0 00 00 00
SETL AL 0F 9C C0
MOVZX EAX,AL 0F B6 C0
NEG EAX F7 D8
MOV [EBP+72],EAX 89 85 48 00 00 00
** こめんと欄
-このページにこめんと欄はありません。このページの内容にコ...
終了行:
* JITコンパイラの中身
-(by [[K]], 2013.03.27)
** もくてき
-JITコンパイラっていうのは、結局バイト列をバイト列に変換...
-最適化があるともっと複雑になるだろうけど、最適化なんてい...
** ver.0.07 (x86-32bitへのJITCの例)
-基本
--レジスタはすべてメモリに割り当てています。手抜きです。
---R00: (int) [EBP+0]
---R01: (int) [EBP+4]
---R3F: (int) [EBP+252]
--Pxxレジスタには256bit(32バイト)を割り当てています。
---P01: [EBP+288]
---P02: [EBP+320]
---P1F: [EBP+1248]
-JITC実例
NOP 00
(何も出力していません)
LOADINT R12, 0x01234567 02 12 01 23 45 67
MOV EAX,0x01234567 B8 67 45 23 01
MOV [EBP+72],EAX 89 85 48 00 00 00 /* R12:[...
COPYINT R12, R34 10 12 34 FF
MOV EAX,[EBP+208] 8B 85 D0 00 00 00 /* R34:[...
MOV [EBP+72],EAX 89 85 48 00 00 00 /* R12:[...
ANDINT R12, R23, R34 12 12 23 34
MOV EAX,[EBP+140] 8B 85 8C 00 00 00 /* R23:[...
AND EAX,[EBP+208] 23 85 D0 00 00 00 /* R34:[...
MOV [EBP+72],EAX 89 85 48 00 00 00 /* R12:[...
SUBINT R12, R23, R34 15 12 23 34
MOV EAX,[EBP+140] 8B 85 8C 00 00 00
SUB EAX,[EBP+208] 2B 85 D0 00 00 00
MOV [EBP+72],EAX 89 85 48 00 00 00
COPYPTR P01, P12 1E 01 12
MOV EAX,[EBP+832]
MOV [EBP+288],EAX
MOV EAX,[EBP+836]
MOV [EBP+292],EAX
MOV EAX,[EBP+840]
MOV [EBP+296],EAX
MOV EAX,[EBP+844]
MOV [EBP+300],EAX
MOV EAX,[EBP+848]
MOV [EBP+304],EAX
MOV EAX,[EBP+852]
MOV [EBP+308],EAX
MOV EAX,[EBP+856]
MOV [EBP+312],EAX
MOV EAX,[EBP+860]
MOV [EBP+316],EAX
COMPL R12, R23, R34 22 12 23 34
MOV EAX,[EBP+140] 8B 85 8C 00 00 00
CMP EAX,[EBP+208] 3B 85 D0 00 00 00
SETL AL 0F 9C C0
MOVZX EAX,AL 0F B6 C0
NEG EAX F7 D8
MOV [EBP+72],EAX 89 85 48 00 00 00
** こめんと欄
-このページにこめんと欄はありません。このページの内容にコ...
ページ名: