Apple instructions
title: Apple プロプライエタリ命令 summry: A46 命令セットに対する Apple のプロプライエタリな拡張
2025/3/1時点のapple-instructionsの翻訳
Appleのプロプライエタリな命令が0x0020xxxxの範囲にあります。
00200000 - 002007ff MUL53、 https://gist.github.com/TrungNguyen1909/5b323edda9a21550a1621af506e8ce5f を参照
00200800|rD << 5|rS wkdmc、 メモリページの圧縮
- rS は圧縮元ページアドレス(ページ境界にアライン、下位ビットは無視)
- rDは圧縮先データアドレス(64b境界にアライン、下位ビットは無視)
- ステータス/情報はrSで返す
00200c00|rD << 5|rS wkdmd、メモリページの伸長
- rSは圧縮済データアドレス(64b境界にアライン、下位ビットは無視)
- rDは圧縮データ伸長先アドレス(ページ境界にアライン、下位ビットは無視)
- ステータス/情報はrSで返す
00201000 - 002012df AMX、 https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f を参照
AMXが有効でない場合(デフォルト)、ESR_EL2 = 0xfe000003でフォールト発生
...222~23f 未知の命令の『ホール(hole)』
002012e0 - 0020143f 未知の命令によるフォールト
*00201400 gexit ガードモードを終了。macOSで使用。何らかの有効化が必要(デフォルトではフォールト)
*00201420 genter | imm5 ガードモードを開始。macOSで使用。何らかの有効化が必要(デフォルトではフォールト)
imm5 は ESR_GLx[5:0] に保存
00201440|rA at_as1elx、アドレスを変換。同じレジスターで返す。
[63:56] 変換用 MAIR 属性 (インデックスではない!)
[??:12] 物理アドレス
[11:00] フラグ/ステータス/その他。 0x80x = unmapped, x はフォールトが発生したPTレベルに応じて変化?
これはPAR_EL1システムレジスタと同じのようで、ARMの*公式*翻訳アドレス命令の出力として使用されるらしいです。
00201460 sdsb osh
00201461 sdsb nsh
00201462 sdsb ish - iBootトランポリンが使用
00201463 sdsb sy
00201464 ~ 未知の命令によるフォールト