- 159 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/04/24(水) 20:18:03.33 ID:q7k07uRI0.net]
- 従来式のシンプルなコードを吐くコーディングと比べると、
予想通りの二度手間だ⇒オペランド内のswitchと、(this->*_opTable[opCode])()すなわちswitchの。 当然この書き方じゃ、1バイトの命令でもこれが呼ばれる。 他、FetchOperand()が呼ばれる前に、 inline展開くさい遅いswitch(if-else化)がばら撒かれてる感じ。 あっ、コアの中でドン引き見つけた。 MemoryManager::Read内 _console->GetCheatManager()->ApplyRamCodes(addr, value); やっぱネタ作者だな。 宣伝が多いというのはお察しだ。 >>155 全部、高速な従来式に見えるね。 switch一回で、オペコードとオペランドのアドレッシングが解決している。 インラインでもマクロでもない関数を呼ぶなんてバカな真似はしてない。 一見C++風に見えるが記述が名前空間::関数なだけで、static関数なソースのやつがあったと思う。 おそらくコア動作中thisポインタすらレジスタに入ってない。 正直、言い過ぎたかと思ったら、予想よりひどかった。 ソース見なくても起動してすぐにお察しだった。
|
|