横田宏幸の略歴:井田小、葵中、城西高、中部大中退、SCRN正社員4.5年、ソフト作家
小学3年になった時に「横田自動車工業で機械設計をしていた父が使用していた CASIO FX-702P」をもらって、添付された数値計算処理プログラミングガイドを見ながら、BASIC言語のプログラミングを始めた。最初は「数を入力して減算して勝負するゲーム」を入力して遊び、その後「インスタントラーメンを食べるときに3分タイマーがあると便利だと思って、カウントダウンタイマー」を自作した。小学5年生になる頃には「2次元行列計算」「3次元行列計算」「微分方程式の解法」というプログラムを勉強していたけれど、3次元行列は理解できても、微分方程式は「ブラックボックス」に見えた。ソフトウェア開発は CASIO FX-702P を使って勉強していましたが、電子工作については「鴨田町にあった成田無線の組み立てキットで学習」しており、最初に作ったものは「ゲルマニウムラジオ」でした。電池はないのにイヤホンから声がして、電波というのは「エネルギーを伴う力」であり、それを受信すると「電気を作る」という最も簡単な「電磁気学」を学んでいました。その後、小学5年生では「電撃組み立てキットを用いて、お菓子箱に電撃の罠を仕掛けたもの」を夏休みの自由研究にしていました。これは高度な研究に思えたのですが、リニアモーターカーの模型を自作した中根たちに注目が集まっており、妥協していると負けてしまうという感覚に囚われるようになりました。
井田小学校の卒業文集に「第一級アマチュア無線家になる」と書いたのですけれど、これは実現できていません。アマチュア無線の電話級を受験したのは大学生になってからでした。その当時は暗記本があって、その暗記をすれば簡単に合格できましたけれど、受験会場にいた受験生は小学生が99%という状況で、高校生以上は見つけられません。それから、アマチュア無線1級を目指していても、中部大学工学部電子工学科で学んでいることは活かせないと思い始め、最高難度である「第一級陸上無線技術士」「第一級総合通信士」の国家資格を目指しています。しかし、モールス信号は「音を信号として聞けず、論理的に解析できない」という課題を抱えており、この能力を鍛えることは困難でした。資格取得で暗記したら技術課題に取り組めなくなると考えて、「暗記は禁止」「京都大学の教授であった三上教授の言う通りに、定義の根拠を確実に学ぶ」という方針へ転換して、中部大学の図書館で調べられない時は「名古屋工業大学の図書館」「愛知県図書館」「岡崎市図書館」へ行き、細かい解釈を調べようとしていました。これは結局どうなったら勉強できるのか?米国から「英語技術専門書」を取り寄せて勉強すると、日本の技術専門書は「コピー本」であると分かり、以降は英語で勉強するのが習慣になっていきました。
合唱について。井田小学校や葵中学校は「音楽で活躍してる親戚が多い」という傾向から、全国的にみて「ハイレベル」と思います。葵中学校では「女子から合唱をやってみたら?」と言われ続けており、それでも葵中学校合唱部は「桜女学校」という感じで接近できず、岡崎城西高校男声合唱部から合唱を始めました。国士舘大学出身であった「数学教師わたなべ」先生が顧問で、「ハーモニーが揃っているのか、意味不明な状態」で、「雑魚キャラの合唱団として、NHK合唱コンクールへ出場する」という地獄を経験していました。愛知県立岡崎高校や光が丘女子高校は金賞を取っていたのですが、「ハーモニーが揃っていると思えない、意味不明な状態」でも金賞、難しい曲に挑戦している自由曲であるという理由で金賞を取れている感覚がありました。男声合唱は「低音を豊かに響かせるために、女声よりも神経質に音程を揃えなければ難しい」という根拠から「入賞するのは極端に難しい」と今は思っています。高校卒業まで1ヶ月となった時に「チケットぴあで慶応ワグネル・ソサエティの名古屋公演のペアチケットが当選した」ので、「数学教師わたなべ」先生と行き、「ワグネルの素晴らしい男声合唱」に感動しました。その時に先生が「早稲田」「同志社」「関学」「慶応」の音楽CDを買っていたので、それを借りてカセットテープに録音して、「早稲田大学校歌、都の西北」を歌えるようにしました。久遠の理想って、なんだろう?
グリークラブから混声合唱団へ、入学式の後、団員の多数決で決まった話
私ひとりの体質を知っていれば、「グリークラブ」のままでは「悪評の連鎖は避けられない」という結論の元、「混声合唱団」とする多数決となった。入学式後の「部員勧誘」では「ノノヤマ先輩やタケダ先輩から、ナンパして部員を勧誘してこい!特に女子部員を希望だ!」と言われても、ナンパした事がなく、何を言ったらいいのか、分からない。「ノノヤマ先輩やタケダ先輩は岡崎城西高校の吹奏楽部出身で、あり得ないぐらい女子のナンパに慣れていた」ので、DISCO「KingAndQueen」で雑誌ブルゾン企画による「ねるとんパーティ」という司会をやるほど社交性に長けていた。私ひとりのイメージでは「松浦亜弥の Good-by 夏男 というと、この2人の先輩」を夏男と表現できる。中部大学女子短大の卒業式では「2人の先輩から、ガードしてくれんか、女遊びをやり過ぎたかもしれん」と言われ、近寄ってくる女子卒業生を近づけさせない、ひたすらガードする任務を与えられた。この夏男という2人の先輩、合唱指揮において女子を指導する事に関しては極めて優秀、絶対音感に優れており音程は練習においてもズレた場面を見たことがない、そして女子に人気の歌を完璧に歌いこなすカラオケをやるし、それだけ優秀なら卒業できるだろうと思っていたけれど、この2人の先輩は「大学中退」を選択した。大学中退後も、練習場所に訪れては「女をナンパできるようになったか?」と気にしてる様子だった。
2人の夏男から「マハラジャEAST」へ行こうと誘われ、そこへ行くけれど、なんだこれは・・・「桜蘭高校ホスト部」・・・を見ている感覚に襲われる。だいたい、どういうダンスをすればよいか、分かったけれど・・・、踊るよりも会話から女を楽しませることが重要と思って見ていた。でも、落ち着いたときに他の先輩から「この音楽は分かるか?」と尋ねられて、ああ、これが本当の目的なんだと理解した。たぶん、中部大学グリークラブに来た理由は「夜のディスコで流れる音楽を知っておく」事だろうと思うようになった。その後、色々な女たちに絡む機会はあるんだけど、いつも「クラブへ行ってる?」と聞かれ、「混声合唱やってる」と答えると、以降無視されて相手にされなかった。ナンパは「声をかける」「女と会話できる状態にする」「どこかデートに行く話をする」、ここまでは出来るようになったけれど、そこから先へ大学生をしていた時は進まなかった。「アシある?」と聞かれて「歩き」というと、「車を買わないと女に相手にされないよ」と言われており、私の父母へ相談しても「そんな女は相手にしない方がいい」と言い、自動車免許を取らせてくれなかった。自動車免許を大学生で持っていない人は、大学2年になった時には中部大学で30%未満という状態で、「横田の父母はアホや」という噂が立っていた。
SINC( (100/400+Samples)×円周率 ) , 100 謎値 , AD40.0kHz
Samples -8192 ... 0 ... +8192 , Sinc(x) = Sin(x) ÷ x
DSD 2.8MHz = AD176.4kHz, DSD 5.6MHz = AD352.8kHz
2021年ミリオンセラーとなったCDを分析すると、DSDレコーディング DSD 2.8MHz してから、DSD-PCM変換して 44.1kHz、PCM 44.1kHz へ環境エフェクトを追加して、最後に DSD 2.8MHz 変換後、DSD-PCM 44.1kHz AD176.4kHz マスター作成。
リサンプル処理
音楽データ
○○○参照点前○○○○○○信号値○○○○○○参照点後○○○
信号値の前後を演算対象として、SINCテーブルを掛け算して合計値をリサンプル処理値とします。SINCテーブルを掛け算すると、足したり引いたりして、SIN関数を使った音波として予測値を得る。声や楽器を録音する時はSIN関数を使う。SIN関数を使わないで作った音はスタジオでうまく編集できない。
これは位相を変化させているからsin(x*pi)/pi が正しいとして演算すると雑音へ変換されます。教科書では sin((0.5+x)*pi)/((0.5+x)*pi) と書いてありますが、SINCノイズと言われるポワンポワン鳴る状態になります。この計算式は最も正確に音を鳴らせる条件になります。
変数 x -4,1,9
結果 8点 SINCリサンプル処理
円周率精度の問題
参照点数を増やしていくと、円周率精度の小数点桁を増やさないと、信号値から大きく離れたサンプル値は 0桁 の多い結果を示す。円周率精度の小数点は27桁で対応しており、FPU 80ビット演算により倍精度の演算テーブルを作成しています。音を悪くする方向へ変更したいときは、円周率精度の小数点桁を小さくすれば、アナログ感覚の劣化になりますけれど、音程はおかしくなります。「Junk Pi」(ElementaryではKogane)では1秒あたり周期的に円周率精度の劣化を引き起こす処理によって、ジッターレス条件下でジッターサウンドを楽しめます。
リサンプル処理で音が悪くなる条件
Sisters Resampler / Sisters Elementary
fripSide 2nd 南條愛乃の歌を少しでも気持ちよく聞くために作ったバージョンです。fripSide 2nd のほか、妖精帝國を聞く用途にも使えます。録音前の声を再現しており高評価です。
想定ゲーミングヘッドセット:USB 24bits WASAPI
想定ドライバー:ONKYO チタンコーティング 50mm
推奨されるパソコンの性能
Intel Core i3-10300 3.7GHz 4C8T TB-OFF 以上の性能を推薦
メモリ 8GB 以上、Window 11 Home 64ビット
SSDかHDDを使用している条件時で動作確認。
NASは作者環境で導入していないので操作や再生の確認はしていません。あまりにも遅くセットアップしているNASではドライブレターへ割り当てていてもロードできません。
再生可能フォーマット
WAV( .wav )、FLAC( .flac )、MP3( .mp3 )、ALAC( .m4a )、DSDIFF-PCM( .dsf .dff )周波数 44100Hz でPCM変換します。
低域補間処理とは?
SINCリサンプル処理を本の通りにやってみたら、音が良くなかった。そこで参照するサンプルを奇数列と偶数列に分けて、実質としては半分の周波数でリサンプル処理したら、録音されていない音が聞こえてきた。特許にできそうな話であったけれど、誰もこの話を信用してくれなくて科学的根拠がないと断言されていた。その後、超低ジッターを模索した研究開発を継続していると音は正しく聞こえるのに低音がない現象を確認。その根拠を考えていくと、音楽編集ソフトでリサンプル処理した際に参照点数が少なかったと分析、そして、スマホ難聴問題の原因でもあると分かったので情報共有した。
x1 x2 x4 x8 をクリックしますと、サウンドスペルを選べます。
おすすめ:Tester x2 x4 x8 , Master 1 2 , Black x2 x4
参照点数 青色の 1024 をクリックしますと、参照点数を選べます。
Self sound optimizer
自分でサウンドスペルをセレクトできます。最高24Linesまでセットアップ可能です。
処理時間の増大ルール
サウンドスペルについて
Elegant 上品な処理であり、きれいな音波の方向性
操作について
Windows 11 フォト は、ノートパソコンで使用される用途に最適化されておらず、使いにくい。デジカメの写真は PCIE NVMe SSD でもローディング時間が長くなり、全体的に遅く感じています。複数画面へ対応する時期は「未定」、このような内容は慎重に進めなければ、ソフトウェア開発は続行不能になります。自分で画面の位置を変更するユーティリティなどを使い、使い方を工夫すれば良いと思います。
MajiorityCleanES を実行している状態で「写真の色」を確認しています。コスプレイヤーの早瀬あみの写真を表示して、期待した画質で表示できているかを毎日確認しています。ローパスフィルターレスの撮影では「陰影が消えて平坦に見える」、もっと低ノイズの表示を追求すると「それでも陰影はあって、立体感を感じられる」、となります。表示する時に「CPUキャッシュメモリ」に対して、「写真データ」「表示処理プログラム」をキャッシュ化してから表示処理しているので、写真の表示は正確な色を実現できていると思います。
Windows 11 では印刷設定画面で「ページ設定の下にある『その他の設定』から印刷設定」します。
ファイル名(大小区別する、拡張子を除く)を入力する機能では、下記のファイルが実行形式のあるフォルダーに必要です。写真のあるフォルダーをセットしてください。PhotoFolder ファイルパスは最後は「¥」(Pictures\)となるように設定してください。PNG = 0 にすると PNG は検索しません。
"ArtPhotoPrefs.txt" ASCII
PhotoFolder = C:\Users\Public\Pictures\
JPG = 1
PNG = 1
TIFF = 1
SCREEN は「半導体製造」の分野で洗浄装置を作っていますけれど、それを作るには露光技術の研究にも参加していなければならない。その都合を考えているとき、「インテルの多重露光が失敗しており、10nm世代のCPU製造を開始できない」という報道が日本で繰り返されて、MajiorityCleanES や Rewrite data だけでなく Art photo print が必要と思い、作ってみたら不思議な報道は止まりました。これは半導体製造技術の改善に役立っているかもしれません。
2013年から10年間と続く「地獄の沼」は放置すれば、世界中の子供達を難聴にさせてしまい、成人して就職する頃には「音が聞こえない」という地獄を生むものでした。犯人を作るのは簡単です。今までの音楽業界は「犯人を作る」「犯人を始末する」「問題の根源は消滅してない」、問題分析に立ち上がった科学者は「犯人にされる」「犯人として始末される」「問題の根源は消滅してない」、これは「聴覚被害者は音量を上げすぎた」「スタジオは悪くない」「音楽に問題はない」という根拠に基づくものです。
しかし、問題の根幹に何があるのか? 音響処理を行う基本数学式が間違っており、リサンプル式の基礎研究を誰もやっていない。オーディオで水晶発振器の精度をフェムトにすれば、音楽は高精度円周率を根拠に作り直す必要があった。SINC 8点 で十分とされた説は、サンプリング周波数 100Hz を前提とした仮定式であり、サンプリング周波数 44100Hz になれば 441倍である 3528点 にしなければ十分と言えなかった。シンセサイザーに収録された音を復元できるリスクがあり、日本の楽器メーカーが隠し続けた。それは音楽再生プレイヤー「MDウォークマン」の技術者が現場を離れたあと、後継者の引き継ぎで伝えられる教材はなく、業界機密になり、そして「ロストテクノロジー」となった。シニア技術者は「韓国」「中国」のメーカーへ移籍したあと、この問題に気づき対応しようとしたけれど、音楽業界は魔女狩りの最中にあり、対応不能になっていました。
スタジオマスターの再生確認では「Elementary Normal」「Nontallion High」が使われます。超低ジッター条件における無変更の音楽再生を確認できます。オーディオマニアが素晴らしい、特に優れていると評価しているのは、ノーマル出力です。JPLAY forum では「グランドマスター」、ジェダイの騎士でいうジェダイ・マスターのうち「地上最強」を意味する、偉大な評価をされました。その後、ドイツの HIGH END で再生環境に選ばれて、裏から「もっとよくしろ!」の繰り返しでした。今は外国から岡崎市へ来て、裏のシステムが「すれ違い法」で会わせてあげるサービスを開始しているようで、すごい金持ちのファミリーに囲まれたりします。その時に限って、「最新のフェラーリ」「最新のポルシェ」だけでなく、日本で売ってないという数億円のスポーツカーで「すれ違い法」で、すれ違うシーンをよく経験する。もっと良くする方向性を示されて、ひたすら「Normal」を良くしてきました。それで Windows 11 で動作する音楽再生ソフトが、世界最高の高級サウンドプレイヤー(ハード機器、裏によると1人2億円)を超えれば、もっと音はよくできるということで、すべての特許や権利を無視して研究を続けてほしいと願いを託されていました。
この説明に問題点はあります。「XOR命令を使用して初期化すれば解決する」という説明でしたが、CPU演算基準はマザーボードを壊しやすくなる原因と分かってきて、そこで研究開発を中止しようと思いました。でも、神社で参拝しますと「歩みを止めてはならない」といって、次の改善方法を伝えてきました。レジスタのシフト命令によって「0」のビットをセットしますが、その「0」はどこから来たのでしょうか? それはつまり、キャッシュメモリから来た「0」という考えになれば、NOP QWORD [Rip] NOP QWORD [Rip] MOV Rax, 0 という命令であれば、キャッシュ化した「0」をRaxへセットする処理になります。これで完全に解決するかというと、CPU設計が変更されると再び基準の作り方を工夫しなければなりません。
この説明に不十分な記載があるとすると、Rax Eax の混在は何を引き起こすのか? それを確認していません。MOV Rax, 5 XOR Eax,Eax を実行すると、Rax は 0 になります。MOV Eax, 5 XOR Rax, Rax を実行すると Eax は 0 になります。ここを厳しく考えると Rax と Eax は物理レジスタとして独立している? と考えられるでしょう。低ジッタープログラミングをする時は、できるだけ Rax だけで作ろうとしていないと、画質や音質は良くなりません。PureBasic 変数でいうと Integer 64bits だけで変数定義を考えるほうが、トラブルを抑制できます。
Windowsプログラミングでは 32bit API の呼び出しは PUSH PUSH PUSH POP POP POP という方法で、Esp レジスタへ「複数の電子ビット基準に更新されて、ジッター現象」となる。64bit API の呼び出しは Rcx Rdx R8 R9 PUSH PUSH POP POP という方法になり、ジッター現象を回避しやすい。ソフトウェアによっては R8 R9 である第3引数と第4引数へ限定すれば、もっと良くなる。Rewrite data の現在バージョンでは Rcx Rdx を未使用になるよう注意しており、圧倒的な低ジッター記録を実現しています。
PCIE NVMe SSD とは、メモリからPCIEバスを通じてデータを書き出す仕組みです。SATA SSD とは、メモリからPCIEバスを通じてSATAコントローラーで再処理してデータを書き出す仕組みです。NAS NVMe SSD とは、メモリからPCIEバスを通じてネットワークへデータを送り出し、NASではネットワークからデータを受け取るとPCIEバスを通じてメモリへ転送後、メモリからPCIEバスを通じてデータを書き出す仕組みです。
AlderLake RapterLake の Zeroイディオム最適化
使用前に「GetDeviceName」を使い、使用している ASIO No. を記録します。この No. はスタジオによっては、毎日変更されており、Windowsログイン後にファイルサーバーから "GetAsioDeviceName.txt" が転送されて来るそうです。編集機によっては、ネットワークASIO出力のセットアップがあり、その出力管理をするために、この方式は都合良いということで、この方法を採用しています。"GetAsioDeviceName.txt" を最初から読んでいき、その番号で BASS_ASIO_Init(Asio_Device) and BASS_ASIO_CheckRate(44100.0) の時に使用可能と判断しています。返り値が 0 である場合、次の行へ進み、その番号で確認しています。その後、何度も再確認して BASS_ASIO_Free() にて解放していますが、これは裏から正規ASIOドライバ以外を使用不能にせよ、と指図されているからです。今より品質を上げても良いという場合、BASSASIO.dll を MemoryModuleLibrary によって、Executables の中へ内蔵して「命令キャッシュ化」しておく方法により、電子ビット基準を安定させることはできると思います。しかし、ユーザー様のほうで改造してある BASSASIO.DLL を使用禁止とするため、この最適化は回避しています。
BASSライブラリは「音量設定」「デコード処理」「転送処理」で高級オーディオ対応にできる音量設定 2020年 10月のマニュアルから抜粋
Q:音量設定の仕様について、教えて下さい。
ASIOは音量最大にしています。Digital bit stabilizer の処理を音量値に対して実施して、高解像度のサウンドを実現しました。WASAPIの場合は音量100(音量最大)の条件に限って、 Digital bit stabilizer の処理を音量値に対して実施しています。
具体的には、符号 1ビット 指数部 8ビット 仮数部 23ビット
Float 0.000 , 00000000000000000000000000000000 , INT 0
Float 0.999 , 00111111011111111111111111111111 , INT 1065353215
Float 0.999 , 00111111011111111111111111111111 , INT 1065353215
Float 1.000 , 00111111100000000000000000000000 , INT 8388607
Float 0.999 , 00111111011111111111111111111111 , INT 1065353215
Float 1.000 , 00111111100000000000000000000000 , INT 8388607
Float 0.000 , 00000000000000000000000000000000 , INT 0
Float 0.999 , 00111111011111111111111111111111 , INT 1065353215
Float 0.999 , 00111111011111111111111111111111 , INT 1065353215
Float 1.000 , 00111111100000000000000000000000 , INT 8388607
Float 0.999 , 00111111011111111111111111111111 , INT 1065353215
Float 1.000 , 00111111100000000000000000000000 , INT 8388607
という音量値のセットを行い、下位16ビットで起きやすい電子ビット基準のズレをできるだけ抑えています。音量調整機能を作る場合、どの音量でもこの手順で安定化処理を行わないと不鮮明な音になります。
Q:左右のバランスを調整できない理由を教えて下さい。
左右のバランスが崩れないパターンはきっとDAC以降のアナログ回路がディスクリートやオペアンプになっておらず、DACにアンプが含まれている様なフルデジタルで処理した場合に限られると思います。しかし、左右のバランスを崩さないように片方の音量を下げるのは極めて難しい。左右のバランスが崩れた状態でUSB-DACを使い続けますと、ハードウェアとして左右のバランスが崩れていき、アナログ回路とデジタル回路の両方を破損する恐れがあります。破損の状態になったら左右を同じ音量にしても片方でパワーが出ない現象になります。
Q:16ビット整数出力しない理由はなぜですか?
CPUの設計か製造上の問題により、レジスタの最下位8ビットは不安定になりやすい。16ビット整数で出力すると、電子ビット基準が不安定なので、左の音が強く、右の音は弱い、バランスのおかしい出力になります。32ビット浮動小数点データにしておけば、仮数部23ビットとなり、右だけ 仮数部 正確 15ビット 不安定 最下位8ビット となり、安定します。
この問題が起きますのでデータ転送処理は64ビットのMMXレジスタで処理するようにして、左右のバランスを完全に安定化させて出力しています。WASAPI転送やASIO転送は手書きアセンブラで記述しておかないと、ダイナミックレンジが狭くなり、S/Nの品質を良くできません。16ビット整数の処理をMMXで書くのは難解になるので避けています。
Nontallion 14.30 で採用している音量設定のソースコード
Macro ASIO_ChannelSetVolume_Stabilizer
;
CALL_ALL_REGISTER_INC255_DEC255
SetR8_SHL_CL_Full
!PXOR mm5, mm5
!MOVQ mm5, R8
!PXOR mm3, mm3
!MOVQ mm3, R8
!PXOR mm7, mm7
!MOVQ mm7, R8
!MOVQ2DQ xmm2, mm5
XOR_R8_R8
XOR_R9_R9
!LEA R8, [p.v_False]
NEG_to_NEG_R8
After_NEG_to_NEG_R8
!LEA R9, [p.v_DM1]
NEG_to_NEG_R9
After_NEG_to_NEG_R9
!NOP QWORD [Rip]
!NOP QWORD [R8]
!MOVQ mm3, [R8]
!NOP QWORD [Rip]
!NOP QWORD [R9]
!MOVQ mm7, [R9]
!MOVQ2DQ xmm2, mm7
MacroMakeFloat
XOR_Rcx_Rcx_x2
XOR_Rdx_Rdx_x2
XOR_Rax_Rax_x2
XOR_R8_R8_x2
; 8 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rcx, mm3
!MOVQ Rdx, mm7
!MOVQ2DQ xmm2, mm5
!MOVSS xmm2, xmm2
!EMMS
;BASS_ASIO_ChannelSetVolume(False, DM1, NFloat_1_000)
!CALL QWORD BASS_ASIO_ChannelSetVolume
; 8 @@ End
;
CALL_ALL_REGISTER_INC255_DEC255_in
SetR8_SHL_CL_Full
!PXOR mm5, mm5
!MOVQ mm5, R8
!PXOR mm3, mm3
!MOVQ mm3, R8
!PXOR mm7, mm7
!MOVQ mm7, R8
!MOVQ2DQ xmm2, mm5
XOR_R8_R8
XOR_R9_R9
!LEA R8, [p.v_False]
NEG_to_NEG_R8
After_NEG_to_NEG_R8
!LEA R9, [p.v_DM1]
NEG_to_NEG_R9
After_NEG_to_NEG_R9
!NOP QWORD [Rip]
!NOP QWORD [R8]
!MOVQ mm3, [R8]
!NOP QWORD [Rip]
!NOP QWORD [R9]
!MOVQ mm7, [R9]
!MOVQ2DQ xmm2, mm7
MacroMakeFloatFF
XOR_Rcx_Rcx_x2
XOR_Rdx_Rdx_x2
XOR_Rax_Rax_x2
XOR_R8_R8_x2
; 8 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rcx, mm3
!MOVQ Rdx, mm7
!MOVQ2DQ xmm2, mm5
!MOVSS xmm2, xmm2
!EMMS
;BASS_ASIO_ChannelSetVolume(False, DM1, NFloat_1_000)
!CALL QWORD BASS_ASIO_ChannelSetVolume
; 8 @@ End
;
CALL_ALL_REGISTER_INC255_DEC255_in
SetR8_SHL_CL_Full
!PXOR mm5, mm5
!MOVQ mm5, R8
!PXOR mm3, mm3
!MOVQ mm3, R8
!PXOR mm7, mm7
!MOVQ mm7, R8
!MOVQ2DQ xmm2, mm5
XOR_R8_R8
XOR_R9_R9
!LEA R8, [p.v_False]
NEG_to_NEG_R8
After_NEG_to_NEG_R8
!LEA R9, [p.v_DM1]
NEG_to_NEG_R9
After_NEG_to_NEG_R9
!NOP QWORD [Rip]
!NOP QWORD [R8]
!MOVQ mm3, [R8]
!NOP QWORD [Rip]
!NOP QWORD [R9]
!MOVQ mm7, [R9]
!MOVQ2DQ xmm2, mm7
MacroMakeFloat
XOR_Rcx_Rcx_x2
XOR_Rdx_Rdx_x2
XOR_Rax_Rax_x2
XOR_R8_R8_x2
; 8 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rcx, mm3
!MOVQ Rdx, mm7
!MOVQ2DQ xmm2, mm5
!MOVSS xmm2, xmm2
!EMMS
;BASS_ASIO_ChannelSetVolume(False, DM1, Float_1_000)
!CALL QWORD BASS_ASIO_ChannelSetVolume
; 8 @@ End
;
CALL_ALL_REGISTER_INC255_DEC255_in
SetR8_SHL_CL_Full
!PXOR mm5, mm5
!MOVQ mm5, R8
!PXOR mm3, mm3
!MOVQ mm3, R8
!PXOR mm7, mm7
!MOVQ mm7, R8
!MOVQ2DQ xmm2, mm5
XOR_R8_R8
XOR_R9_R9
!LEA R8, [p.v_False]
NEG_to_NEG_R8
After_NEG_to_NEG_R8
!LEA R9, [p.v_DM1]
NEG_to_NEG_R9
After_NEG_to_NEG_R9
!NOP QWORD [Rip]
!NOP QWORD [R8]
!MOVQ mm3, [R8]
!NOP QWORD [Rip]
!NOP QWORD [R9]
!MOVQ mm7, [R9]
!MOVQ2DQ xmm2, mm7
MacroMakeFloatFF
XOR_Rcx_Rcx_x2
XOR_Rdx_Rdx_x2
XOR_Rax_Rax_x2
XOR_R8_R8_x2
; 8 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rcx, mm3
!MOVQ Rdx, mm7
!MOVQ2DQ xmm2, mm5
!MOVSS xmm2, xmm2
!EMMS
;BASS_ASIO_ChannelSetVolume(False, DM1, NFloat_1_000)
!CALL QWORD BASS_ASIO_ChannelSetVolume
; 8 @@ End
;
CALL_ALL_REGISTER_INC255_DEC255_in
SetR8_SHL_CL_Full
!PXOR mm5, mm5
!MOVQ mm5, R8
!PXOR mm3, mm3
!MOVQ mm3, R8
!PXOR mm7, mm7
!MOVQ mm7, R8
!MOVQ2DQ xmm2, mm5
XOR_R8_R8
XOR_R9_R9
!LEA R8, [p.v_False]
NEG_to_NEG_R8
After_NEG_to_NEG_R8
!LEA R9, [p.v_DM1]
NEG_to_NEG_R9
After_NEG_to_NEG_R9
!NOP QWORD [Rip]
!NOP QWORD [R8]
!MOVQ mm3, [R8]
!NOP QWORD [Rip]
!NOP QWORD [R9]
!MOVQ mm7, [R9]
!MOVQ2DQ xmm2, mm7
MacroMakeFloat
XOR_Rcx_Rcx_x2
XOR_Rdx_Rdx_x2
XOR_Rax_Rax_x2
XOR_R8_R8_x2
; 8 @@
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!MOVQ Rcx, mm3
!MOVQ Rdx, mm7
!MOVQ2DQ xmm2, mm5
!MOVSS xmm2, xmm2
!EMMS
;BASS_ASIO_ChannelSetVolume(False, DM1, Float_1_000)
!CALL QWORD BASS_ASIO_ChannelSetVolume
; 8 @@ End
XOR_Rax_Rax
EndMacro
この ASIO 音量設定を「短時間に繰り返せないドライバーに対応していない」ので注意です。高級オーディオのUSB-DACによっては、ドライバー内部に「厳密に調整された 1.000 の音量設定を採用」して、返り値は「常に True を返す」という仕様になっていれば問題ありません。ドライバー側で音量調整について独自に作っている場合、この方法は機能しないと思います。これは XMOS ドライバー を基準に作っていますが、音を悪くする方向へ調整するなら、音量設定値のビットを不安定にさせると著しく悪化します。
Nontallion では Float_1_000 を INC SHL によって作成して、Macroで規定して、MacroMakeFloat MacroMakeFloatFF により、電子ビット基準の正確な音量設定を行っています。これで圧倒的な高音質を達成しています。ソースコードは下記のとおりです。
Macro MacroMakeFloat XOR_Rcx_Rcx_x2 Set_CL1 MOVZX_Rcx !MOVQ mm5, Rcx !PSLLW mm1, mm5 ;1 Left 1bit shift !PSLLW mm1, mm5 ;2 Left 1bit shift !PSLLW mm1, mm5 ;3 Left 1bit shift !PSLLW mm1, mm5 ;4 Left 1bit shift !PSLLW mm1, mm5 ;5 Left 1bit shift !PSLLW mm1, mm5 ;6 Left 1bit shift !PSLLW mm1, mm5 ;7 Left 1bit shift !PSLLW mm1, mm5 ;8 Left 1bit shift !PSLLW mm1, mm5 ;9 Left 1bit shift !PSLLW mm1, mm5 ;A Left 1bit shift !PSLLW mm1, mm5 ;B Left 1bit shift !PSLLW mm1, mm5 ;C Left 1bit shift !PSLLW mm1, mm5 ;D Left 1bit shift !PSLLW mm1, mm5 ;E Left 1bit shift !PSLLW mm1, mm5 ;F Left 1bit shift !PSLLW mm1, mm5 ;0 Left 1bit shift !MOVQ mm1, mm5 !PSLLW mm5, mm1 ;1 Left 1bit shift !PSLLW mm5, mm1 ;2 Left 1bit shift !PSLLW mm5, mm1 ;3 Left 1bit shift !PSLLW mm5, mm1 ;4 Left 1bit shift !PSLLW mm5, mm1 ;5 Left 1bit shift !PSLLW mm5, mm1 ;6 Left 1bit shift !PSLLW mm5, mm1 ;7 Left 1bit shift !PSLLW mm5, mm1 ;8 Left 1bit shift !PSLLW mm5, mm1 ;9 Left 1bit shift !PSLLW mm5, mm1 ;A Left 1bit shift !PSLLW mm5, mm1 ;B Left 1bit shift !PSLLW mm5, mm1 ;C Left 1bit shift !PSLLW mm5, mm1 ;D Left 1bit shift !PSLLW mm5, mm1 ;E Left 1bit shift !PSLLW mm5, mm1 ;F Left 1bit shift !PSLLW mm5, mm1 ;0 Left 1bit shift ; mm5 = 0000 , mm1 = 001 ; ;1 = SHL R8, cl + INC R8b ;PSLLQ mm5, mm1 ;PADDQ mm5, mm1 ; ;0 = SHL R8, cl ;PSLLQ mm5, mm1 ; !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 EndMacro Macro MacroMakeFloatFF XOR_Rcx_Rcx_x2 Set_CL1 MOVZX_Rcx !MOVQ mm5, Rcx !PSLLW mm1, mm5 ;1 Left 1bit shift !PSLLW mm1, mm5 ;2 Left 1bit shift !PSLLW mm1, mm5 ;3 Left 1bit shift !PSLLW mm1, mm5 ;4 Left 1bit shift !PSLLW mm1, mm5 ;5 Left 1bit shift !PSLLW mm1, mm5 ;6 Left 1bit shift !PSLLW mm1, mm5 ;7 Left 1bit shift !PSLLW mm1, mm5 ;8 Left 1bit shift !PSLLW mm1, mm5 ;9 Left 1bit shift !PSLLW mm1, mm5 ;A Left 1bit shift !PSLLW mm1, mm5 ;B Left 1bit shift !PSLLW mm1, mm5 ;C Left 1bit shift !PSLLW mm1, mm5 ;D Left 1bit shift !PSLLW mm1, mm5 ;E Left 1bit shift !PSLLW mm1, mm5 ;F Left 1bit shift !PSLLW mm1, mm5 ;0 Left 1bit shift !MOVQ mm1, mm5 !PSLLW mm5, mm1 ;1 Left 1bit shift !PSLLW mm5, mm1 ;2 Left 1bit shift !PSLLW mm5, mm1 ;3 Left 1bit shift !PSLLW mm5, mm1 ;4 Left 1bit shift !PSLLW mm5, mm1 ;5 Left 1bit shift !PSLLW mm5, mm1 ;6 Left 1bit shift !PSLLW mm5, mm1 ;7 Left 1bit shift !PSLLW mm5, mm1 ;8 Left 1bit shift !PSLLW mm5, mm1 ;9 Left 1bit shift !PSLLW mm5, mm1 ;A Left 1bit shift !PSLLW mm5, mm1 ;B Left 1bit shift !PSLLW mm5, mm1 ;C Left 1bit shift !PSLLW mm5, mm1 ;D Left 1bit shift !PSLLW mm5, mm1 ;E Left 1bit shift !PSLLW mm5, mm1 ;F Left 1bit shift !PSLLW mm5, mm1 ;0 Left 1bit shift ; mm5 = 0000 , mm1 = 001 ; ;1 = SHL R8, cl + INC R8b ;PSLLQ mm5, mm1 ;PADDQ mm5, mm1 ; ;0 = SHL R8, cl ;PSLLQ mm5, mm1 ; !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 EndMacro Macro XOR_Rcx_Rcx_x2 !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOV Rcx, QWORD 0 !MOV Rcx, QWORD 0 !NOP QWORD [Rip-32] EndMacro Macro Set_mm5_SHL_mm3_SetCL1_Full XOR_Rcx_Rcx_x2 Set_CL1 MOVZX_Rcx !MOVQ mm5, Rcx !PSLLW mm1, mm5 ;1 Left 1bit shift !PSLLW mm1, mm5 ;2 Left 1bit shift !PSLLW mm1, mm5 ;3 Left 1bit shift !PSLLW mm1, mm5 ;4 Left 1bit shift !PSLLW mm1, mm5 ;5 Left 1bit shift !PSLLW mm1, mm5 ;6 Left 1bit shift !PSLLW mm1, mm5 ;7 Left 1bit shift !PSLLW mm1, mm5 ;8 Left 1bit shift !PSLLW mm1, mm5 ;9 Left 1bit shift !PSLLW mm1, mm5 ;A Left 1bit shift !PSLLW mm1, mm5 ;B Left 1bit shift !PSLLW mm1, mm5 ;C Left 1bit shift !PSLLW mm1, mm5 ;D Left 1bit shift !PSLLW mm1, mm5 ;E Left 1bit shift !PSLLW mm1, mm5 ;F Left 1bit shift !PSLLW mm1, mm5 ;0 Left 1bit shift !MOVQ mm1, mm5 !PSLLW mm5, mm1 ;1 Left 1bit shift !PSLLW mm5, mm1 ;2 Left 1bit shift !PSLLW mm5, mm1 ;3 Left 1bit shift !PSLLW mm5, mm1 ;4 Left 1bit shift !PSLLW mm5, mm1 ;5 Left 1bit shift !PSLLW mm5, mm1 ;6 Left 1bit shift !PSLLW mm5, mm1 ;7 Left 1bit shift !PSLLW mm5, mm1 ;8 Left 1bit shift !PSLLW mm5, mm1 ;9 Left 1bit shift !PSLLW mm5, mm1 ;A Left 1bit shift !PSLLW mm5, mm1 ;B Left 1bit shift !PSLLW mm5, mm1 ;C Left 1bit shift !PSLLW mm5, mm1 ;D Left 1bit shift !PSLLW mm5, mm1 ;E Left 1bit shift !PSLLW mm5, mm1 ;F Left 1bit shift !PSLLW mm5, mm1 ;0 Left 1bit shift ; mm5 = 0000 , mm1 = 001 ; ;1 = SHL R8, cl + INC R8b ;PSLLQ mm5, mm1 ;PADDQ mm5, mm1 ; ;0 = SHL R8, cl ;PSLLQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 !PSLLQ mm5, mm1 !PADDQ mm5, mm1 EndMacro
XOR_R8_R8 XOR_Rcx_Rcx !INC cl MOVZX_Rcx !INC R8b ; 1 !SHL R8b, cl !INC R8b ; 2 !SHL R8b, cl !INC R8b ; 3 !SHL R8b, cl !INC R8b ; 4 !SHL R8b, cl !INC R8b ; 5 !SHL R8b, cl !INC R8b ; 6 !SHL R8b, cl !INC R8b ; 7 !SHL R8b, cl !INC R8b ; 8 !MOVZX R8, R8b !SHL R8w, cl !INC R8b ; 9 !SHL R8w, cl !INC R8b ; 10 !SHL R8w, cl !INC R8b ; 11 !SHL R8w, cl !INC R8b ; 12 !SHL R8w, cl !INC R8b ; 13 !SHL R8w, cl !INC R8b ; 14 !SHL R8w, cl !INC R8b ; 15 !SHL R8w, cl !INC R8b ; 16 !MOVZX R8, R8w !SHL R8, cl !INC R8b ; 17 !SHL R8, cl !INC R8b ; 18 !SHL R8, cl !INC R8b ; 19 !SHL R8, cl
デコード処理
自分でデコード処理を書くことはできるけれど、FLAC の場合、提供されたソースコードから「静的ライブラリを作り、内部処理として動作」する仕組みにするしかない。それで問題がなければいいけれど、実際に起きたことは「FLACのデコード処理はできたけれど、日本で公開しようとすると動作しない」という不可解な問題が起きた。それで、un4seen社 BASS Audio Library SDK を使用している。でも、デコード処理に問題があるようで、正しく処理できているとは思えない。その対策コードを考えていくうち、レジスタの安定した電子ビット基準の適用概念を思いつき、以下のソースコードによって、正確さでは世界最高といえるデコード処理となっていく。
BeforeProcedureRegisters_SMSW SIMPLE_MOVE_REGISTERS_Up_and_Down BeforeProcedureRegisters_RDRAND SIMPLE_MOVE_REGISTERS_Up_and_Down IncludeFile "NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F278_MMX.pbi" SIMPLE_MOVE_REGISTERS_Up_and_Down XORPS_xmm15_to_xmm0_xmm15 ; 115 @@
!NOP QWORD [Rip+72] !NOP QWORD [Rip+88] !NOP QWORD [Rip+104] !NOP QWORD [Rip+120] !NOP QWORD [Rip+136] !NOP QWORD [Rip+152] !NOP QWORD [Rip+168] !NOP QWORD [Rip+184] !NOP QWORD [Rip] !NOP QWORD [Rip] Bass_ChannelGetData(MultiSelect()\chan, *bufferDecode, Digital_Bit_Stabilizer_ToRax64(GD0,GD0, Bass_flags_FFFFFFF|BASS_DATA_FLOAT) ) ; 115 @@ End BeforeProcedureRegisters_SMSW SIMPLE_MOVE_REGISTERS_Up_and_Down BeforeProcedureRegisters_RDRAND SIMPLE_MOVE_REGISTERS_Up_and_Down IncludeFile "NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F278_MMX.pbi" SIMPLE_MOVE_REGISTERS_Up_and_Down XORPS_xmm15_to_xmm0_xmm15 Macro XORPS_xmm15_to_xmm0_xmm15 XOR_Rax_Rax_x2 ; 64 @@ !NOP QWORD [Rip+40] !NOP QWORD [Rip+56] !NOP QWORD [Rip+72] !NOP QWORD [Rip+88] !NOP QWORD [Rip+104] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOVQ xmm15, Rax !MOVQ xmm0, xmm15 !MOVQ xmm14, xmm15 !MOVQ xmm1, xmm15 !MOVQ xmm13, xmm15 !MOVQ xmm2, xmm15 !MOVQ xmm12, xmm15 !MOVQ xmm3, xmm15 !MOVQ xmm11, xmm15 !MOVQ xmm4, xmm15 !MOVQ xmm10, xmm15 !MOVQ xmm5, xmm15 !MOVQ xmm9, xmm15 !MOVQ xmm6, xmm15 !MOVQ xmm8, xmm15 !MOVQ xmm7, xmm15 !MOVQ Rax, xmm0 ; 64 @@ End EndMacro Procedure.i Digital_Bit_Stabilizer_ToRax64(a.i, b.i, *target) !NOP QWORD [Rip] !NOP QWORD [Rsp-16] !NOP QWORD [Rip] !NOP QWORD [Rsp] !NOP QWORD [Rip] !NOP QWORD [Rip] BeforeProcedureRegisters_SMSW SIMPLE_MOVE_REGISTERS_Up_and_Down BeforeProcedureRegisters_RDRAND SIMPLE_MOVE_REGISTERS_Up_and_Down IncludeFile "NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F278_MMX.pbi" SIMPLE_MOVE_REGISTERS_Up_and_Down Protected result.i ; PSLLD_PSRLD_Setup_Perfect16bits XOR_R9_R9_255 !LEA R9, [p.p_target] NEG_to_NEG_R9 After_NEG_to_NEG_R9 PSLLD_PSRLD_Conditioner_Perfect16bits PSLLD_PSRLD_ShapeUp_Perfect16bits ; Set_mm5_SHL_mm3_SetCL1_Full XOR_Rax_Rax_x2 !MOVQ Rax, mm5 XOR_Rax_Rax_x2 !MOVQ Rax, mm5 ;;;; !EMMS !MOVQ2DQ xmm0, mm5 !MOVQ2DQ xmm0, mm3 !MOVDQ2Q mm0, xmm0 !MOVDQ2Q mm1, xmm0 !MOVDQ2Q mm2, xmm0 !MOVDQ2Q mm3, xmm0 !MOVDQ2Q mm4, xmm0 !MOVDQ2Q mm5, xmm0 !MOVDQ2Q mm6, xmm0 !MOVDQ2Q mm7, xmm0 ;set 1 to mm7 !PSLLW mm0, mm7 ;1 Left 1bit shift !PSLLW mm0, mm7 ;2 Left 1bit shift !PSLLW mm0, mm7 ;3 Left 1bit shift !PSLLW mm0, mm7 ;4 Left 1bit shift !PSLLW mm0, mm7 ;5 Left 1bit shift !PSLLW mm0, mm7 ;6 Left 1bit shift !PSLLW mm0, mm7 ;7 Left 1bit shift !PSLLW mm0, mm7 ;8 Left 1bit shift !PSLLW mm0, mm7 ;9 Left 1bit shift !PSLLW mm0, mm7 ;A Left 1bit shift !PSLLW mm0, mm7 ;B Left 1bit shift !PSLLW mm0, mm7 ;C Left 1bit shift !PSLLW mm0, mm7 ;D Left 1bit shift !PSLLW mm0, mm7 ;E Left 1bit shift !PSLLW mm0, mm7 ;F Left 1bit shift !PSLLW mm0, mm7 ;0 Left 1bit shift !MOVQ mm0, mm7 ;set 1 to mm0 !PSLLW mm1, mm0 ;1 Left 1bit shift !PSLLW mm1, mm0 ;2 Left 1bit shift !PSLLW mm1, mm0 ;3 Left 1bit shift !PSLLW mm1, mm0 ;4 Left 1bit shift !PSLLW mm1, mm0 ;5 Left 1bit shift !PSLLW mm1, mm0 ;6 Left 1bit shift !PSLLW mm1, mm0 ;7 Left 1bit shift !PSLLW mm1, mm0 ;8 Left 1bit shift !PSLLW mm1, mm0 ;9 Left 1bit shift !PSLLW mm1, mm0 ;A Left 1bit shift !PSLLW mm1, mm0 ;B Left 1bit shift !PSLLW mm1, mm0 ;C Left 1bit shift !PSLLW mm1, mm0 ;D Left 1bit shift !PSLLW mm1, mm0 ;E Left 1bit shift !PSLLW mm1, mm0 ;F Left 1bit shift !PSLLW mm1, mm0 ;0 Left 1bit shift !PSLLW mm2, mm0 ;1 Left 1bit shift !PSLLW mm2, mm0 ;2 Left 1bit shift !PSLLW mm2, mm0 ;3 Left 1bit shift !PSLLW mm2, mm0 ;4 Left 1bit shift !PSLLW mm2, mm0 ;5 Left 1bit shift !PSLLW mm2, mm0 ;6 Left 1bit shift !PSLLW mm2, mm0 ;7 Left 1bit shift !PSLLW mm2, mm0 ;8 Left 1bit shift !PSLLW mm2, mm0 ;9 Left 1bit shift !PSLLW mm2, mm0 ;A Left 1bit shift !PSLLW mm2, mm0 ;B Left 1bit shift !PSLLW mm2, mm0 ;C Left 1bit shift !PSLLW mm2, mm0 ;D Left 1bit shift !PSLLW mm2, mm0 ;E Left 1bit shift !PSLLW mm2, mm0 ;F Left 1bit shift !PSLLW mm2, mm0 ;0 Left 1bit shift !PSLLW mm3, mm0 ;1 Left 1bit shift !PSLLW mm3, mm0 ;2 Left 1bit shift !PSLLW mm3, mm0 ;3 Left 1bit shift !PSLLW mm3, mm0 ;4 Left 1bit shift !PSLLW mm3, mm0 ;5 Left 1bit shift !PSLLW mm3, mm0 ;6 Left 1bit shift !PSLLW mm3, mm0 ;7 Left 1bit shift !PSLLW mm3, mm0 ;8 Left 1bit shift !PSLLW mm3, mm0 ;9 Left 1bit shift !PSLLW mm3, mm0 ;A Left 1bit shift !PSLLW mm3, mm0 ;B Left 1bit shift !PSLLW mm3, mm0 ;C Left 1bit shift !PSLLW mm3, mm0 ;D Left 1bit shift !PSLLW mm3, mm0 ;E Left 1bit shift !PSLLW mm3, mm0 ;F Left 1bit shift !PSLLW mm3, mm0 ;0 Left 1bit shift !PSLLW mm4, mm0 ;1 Left 1bit shift !PSLLW mm4, mm0 ;2 Left 1bit shift !PSLLW mm4, mm0 ;3 Left 1bit shift !PSLLW mm4, mm0 ;4 Left 1bit shift !PSLLW mm4, mm0 ;5 Left 1bit shift !PSLLW mm4, mm0 ;6 Left 1bit shift !PSLLW mm4, mm0 ;7 Left 1bit shift !PSLLW mm4, mm0 ;8 Left 1bit shift !PSLLW mm4, mm0 ;9 Left 1bit shift !PSLLW mm4, mm0 ;A Left 1bit shift !PSLLW mm4, mm0 ;B Left 1bit shift !PSLLW mm4, mm0 ;C Left 1bit shift !PSLLW mm4, mm0 ;D Left 1bit shift !PSLLW mm4, mm0 ;E Left 1bit shift !PSLLW mm4, mm0 ;F Left 1bit shift !PSLLW mm4, mm0 ;0 Left 1bit shift !PSLLW mm5, mm0 ;1 Left 1bit shift !PSLLW mm5, mm0 ;2 Left 1bit shift !PSLLW mm5, mm0 ;3 Left 1bit shift !PSLLW mm5, mm0 ;4 Left 1bit shift !PSLLW mm5, mm0 ;5 Left 1bit shift !PSLLW mm5, mm0 ;6 Left 1bit shift !PSLLW mm5, mm0 ;7 Left 1bit shift !PSLLW mm5, mm0 ;8 Left 1bit shift !PSLLW mm5, mm0 ;9 Left 1bit shift !PSLLW mm5, mm0 ;A Left 1bit shift !PSLLW mm5, mm0 ;B Left 1bit shift !PSLLW mm5, mm0 ;C Left 1bit shift !PSLLW mm5, mm0 ;D Left 1bit shift !PSLLW mm5, mm0 ;E Left 1bit shift !PSLLW mm5, mm0 ;F Left 1bit shift !PSLLW mm5, mm0 ;0 Left 1bit shift !PSLLW mm6, mm0 ;1 Left 1bit shift !PSLLW mm6, mm0 ;2 Left 1bit shift !PSLLW mm6, mm0 ;3 Left 1bit shift !PSLLW mm6, mm0 ;4 Left 1bit shift !PSLLW mm6, mm0 ;5 Left 1bit shift !PSLLW mm6, mm0 ;6 Left 1bit shift !PSLLW mm6, mm0 ;7 Left 1bit shift !PSLLW mm6, mm0 ;8 Left 1bit shift !PSLLW mm6, mm0 ;9 Left 1bit shift !PSLLW mm6, mm0 ;A Left 1bit shift !PSLLW mm6, mm0 ;B Left 1bit shift !PSLLW mm6, mm0 ;C Left 1bit shift !PSLLW mm6, mm0 ;D Left 1bit shift !PSLLW mm6, mm0 ;E Left 1bit shift !PSLLW mm6, mm0 ;F Left 1bit shift !PSLLW mm6, mm0 ;0 Left 1bit shift !PSLLW mm7, mm0 ;1 Left 1bit shift !PSLLW mm7, mm0 ;2 Left 1bit shift !PSLLW mm7, mm0 ;3 Left 1bit shift !PSLLW mm7, mm0 ;4 Left 1bit shift !PSLLW mm7, mm0 ;5 Left 1bit shift !PSLLW mm7, mm0 ;6 Left 1bit shift !PSLLW mm7, mm0 ;7 Left 1bit shift !PSLLW mm7, mm0 ;8 Left 1bit shift !PSLLW mm7, mm0 ;9 Left 1bit shift !PSLLW mm7, mm0 ;A Left 1bit shift !PSLLW mm7, mm0 ;B Left 1bit shift !PSLLW mm7, mm0 ;C Left 1bit shift !PSLLW mm7, mm0 ;D Left 1bit shift !PSLLW mm7, mm0 ;E Left 1bit shift !PSLLW mm7, mm0 ;F Left 1bit shift !PSLLW mm7, mm0 ;0 Left 1bit shift !NOP QWORD [Rip] !NOP QWORD [Rip] !NOP QWORD [R9] !MOVQ mm0, QWORD [R9] ;load memory chip reference !MOVQ mm1, QWORD [R9] ;load memory chip reference !MOVQ mm2, QWORD [R9] ;load memory chip reference !MOVQ mm3, QWORD [R9] ;load memory chip reference !MOVQ mm4, QWORD [R9] ;load memory chip reference !MOVQ mm5, QWORD [R9] ;load memory chip reference !MOVQ mm6, QWORD [R9] ;load memory chip reference !MOVQ mm7, QWORD [R9] ;load memory chip reference !MOVQ mm3, mm0 ;mmx stabilizer !MOVQ mm1, mm3 ;mmx stabilizer !MOVQ mm7, mm1 ;mmx stabilizer !MOVQ mm2, mm7 ;mmx stabilizer !MOVQ mm6, mm2 ;mmx stabilizer !MOVQ mm4, mm6 ;mmx stabilizer !MOVQ mm5, mm4 ;mmx stabilizer !MOVQ Rax, mm5 ;mmx stabilizer !EMMS ProcedureReturn IncludeFile "FNOPx512.txt" EndProcedure
Macro BeforeProcedureRegisters_RDRAND ALL_MMX_CLEAR_SHIFTWORD_INC_CL MOV_Rax_Rax_Up_Down MOV_Rdx_Rdx_Up_Down MOV_Rsp_Rsp_Up_Down MOV_Rsi_Rsi_Up_Down MOV_R9_R9_Up_Down MOV_R11_R11_Up_Down MOV_R13_R13_Up_Down MOV_R15_R15_Up_Down MOV_Rcx_Rcx_Up_Down MOV_Rbx_Rbx_Up_Down MOV_Rbp_Rbp_Up_Down MOV_Rdi_Rdi_Up_Down MOV_R8_R8_Up_Down MOV_R10_R10_Up_Down MOV_R12_R12_Up_Down MOV_R14_R14_Up_Down ; 17 @@ !NOP QWORD [Rip+16] !NOP QWORD [Rip+32] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOVQ mm0, Rax !MOVQ mm1, Rdx !MOVQ mm2, Rsp !MOVQ mm3, Rsi !MOVQ mm4, R9 !MOVQ mm5, R11 !MOVQ mm6, R13 !MOVQ mm7, R15 ; 17 @@ End !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rax !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rdx !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rsp !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rsi !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R9 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R11 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R13 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R15 !NOP QWORD [Rip-32] !NOP QWORD [Rip] !NOP QWORD [Rip] ; 49 @@ !NOP QWORD [Rip+32] !NOP QWORD [Rip+48] !NOP QWORD [Rip+64] !NOP QWORD [Rip+80] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOVQ Rax, mm0 !MOVQ Rdx, mm1 !MOVQ Rsp, mm2 !MOVQ Rsi, mm3 !MOVQ R9, mm4 !MOVQ R11, mm5 !MOVQ R13, mm6 !MOVQ R15, mm7 !MOVQ mm0, Rcx !MOVQ mm1, Rbx !MOVQ mm2, Rbp !MOVQ mm3, Rdi !MOVQ mm4, R8 !MOVQ mm5, R10 !MOVQ mm6, R12 !MOVQ mm7, R14 ; 49 @@ End !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rcx !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rbx !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rbp !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND Rdi !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R8 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R10 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R12 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !RDRAND R14 !NOP QWORD [Rip] !NOP QWORD [Rip] ; 19 @@ !NOP QWORD [Rip+24] !NOP QWORD [Rip+40] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOVQ Rcx, mm0 !MOVQ Rbx, mm1 !MOVQ Rbp, mm2 !MOVQ Rdi, mm3 !MOVQ R8, mm4 !MOVQ R10, mm5 !MOVQ R12, mm6 !MOVQ R14, mm7 !EMMS ; 19 @@ End MOV_Rax_Rax_Up_Down MOV_Rdx_Rdx_Up_Down MOV_Rsp_Rsp_Up_Down MOV_Rsi_Rsi_Up_Down MOV_R9_R9_Up_Down MOV_R11_R11_Up_Down MOV_R13_R13_Up_Down MOV_R15_R15_Up_Down MOV_Rcx_Rcx_Up_Down MOV_Rbx_Rbx_Up_Down MOV_Rbp_Rbp_Up_Down MOV_Rdi_Rdi_Up_Down MOV_R8_R8_Up_Down MOV_R10_R10_Up_Down MOV_R12_R12_Up_Down MOV_R14_R14_Up_Down EndMacro Macro BeforeProcedureRegisters_SMSW ALL_MMX_CLEAR_SHIFTWORD_INC_CL MOV_Rax_Rax_Up_Down MOV_Rdx_Rdx_Up_Down MOV_Rsp_Rsp_Up_Down MOV_Rsi_Rsi_Up_Down MOV_R9_R9_Up_Down MOV_R11_R11_Up_Down MOV_R13_R13_Up_Down MOV_R15_R15_Up_Down MOV_Rcx_Rcx_Up_Down MOV_Rbx_Rbx_Up_Down MOV_Rbp_Rbp_Up_Down MOV_Rdi_Rdi_Up_Down MOV_R8_R8_Up_Down MOV_R10_R10_Up_Down MOV_R12_R12_Up_Down MOV_R14_R14_Up_Down ; 17 @@ !NOP QWORD [Rip+16] !NOP QWORD [Rip+32] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOVQ mm0, Rax !MOVQ mm1, Rdx !MOVQ mm2, Rsp !MOVQ mm3, Rsi !MOVQ mm4, R9 !MOVQ mm5, R11 !MOVQ mm6, R13 !MOVQ mm7, R15 ; 17 @@ End !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rax !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rdx !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rsp !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rsi !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R9 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R11 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R13 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R15 !NOP QWORD [Rip-32] !NOP QWORD [Rip] !NOP QWORD [Rip] ; 49 @@ !NOP QWORD [Rip+32] !NOP QWORD [Rip+48] !NOP QWORD [Rip+64] !NOP QWORD [Rip+80] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOVQ Rax, mm0 !MOVQ Rdx, mm1 !MOVQ Rsp, mm2 !MOVQ Rsi, mm3 !MOVQ R9, mm4 !MOVQ R11, mm5 !MOVQ R13, mm6 !MOVQ R15, mm7 !MOVQ mm0, Rcx !MOVQ mm1, Rbx !MOVQ mm2, Rbp !MOVQ mm3, Rdi !MOVQ mm4, R8 !MOVQ mm5, R10 !MOVQ mm6, R12 !MOVQ mm7, R14 ; 49 @@ End !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rcx !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rbx !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rbp !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW Rdi !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R8 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R10 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R12 !NOP QWORD [Rip-32] !NOP QWORD [Rip+16] !NOP QWORD [Rip] !NOP QWORD [Rip] !SMSW R14 !NOP QWORD [Rip-32] !NOP QWORD [Rip] !NOP QWORD [Rip] ; 19 @@ !NOP QWORD [Rip+24] !NOP QWORD [Rip+40] !NOP QWORD [Rip] !NOP QWORD [Rip] !MOVQ Rcx, mm0 !MOVQ Rbx, mm1 !MOVQ Rbp, mm2 !MOVQ Rdi, mm3 !MOVQ R8, mm4 !MOVQ R10, mm5 !MOVQ R12, mm6 !MOVQ R14, mm7 !EMMS ; 19 @@ End MOV_Rax_Rax_Up_Down MOV_Rdx_Rdx_Up_Down MOV_Rsp_Rsp_Up_Down MOV_Rsi_Rsi_Up_Down MOV_R9_R9_Up_Down MOV_R11_R11_Up_Down MOV_R13_R13_Up_Down MOV_R15_R15_Up_Down MOV_Rcx_Rcx_Up_Down MOV_Rbx_Rbx_Up_Down MOV_Rbp_Rbp_Up_Down MOV_Rdi_Rdi_Up_Down MOV_R8_R8_Up_Down MOV_R10_R10_Up_Down MOV_R12_R12_Up_Down MOV_R14_R14_Up_Down EndMacro Macro MOV_Rax_Rax_Up_Down !MOV al, al !MOV ah, ah !MOV ax, ax !MOV Rax, Rax !MOV ax, ax !MOV ah, ah !MOV al, al EndMacro Macro MOV_Rbx_Rbx_Up_Down !MOV bl, bl !MOV bh, bh !MOV bx, bx !MOV Rbx, Rbx !MOV bx, bx !MOV bh, bh !MOV bl, bl EndMacro Macro MOV_Rcx_Rcx_Up_Down !MOV cl, cl !MOV ch, ch !MOV cx, cx !MOV Rcx, Rcx !MOV cx, cx !MOV ch, ch !MOV cl, cl EndMacro Macro MOV_Rdx_Rdx_Up_Down !MOV dl, dl !MOV dh, dh !MOV dx, dx !MOV Rdx, Rdx !MOV dx, dx !MOV dh, dh !MOV dl, dl EndMacro Macro MOV_R8_R8_Up_Down !MOV R8b, R8b !MOV R8w, R8w !MOV R8, R8 !MOV R8w, R8w !MOV R8b, R8b EndMacro Macro MOV_R9_R9_Up_Down !MOV R9b, R9b !MOV R9w, R9w !MOV R9, R9 !MOV R9w, R9w !MOV R9b, R9b EndMacro Macro MOV_R10_R10_Up_Down !MOV R10b, R10b !MOV R10w, R10w !MOV R10, R10 !MOV R10w, R10w !MOV R10b, R10b EndMacro Macro MOV_R11_R11_Up_Down !MOV R11b, R11b !MOV R11w, R11w !MOV R11, R11 !MOV R11w, R11w !MOV R11b, R11b EndMacro Macro MOV_R12_R12_Up_Down !MOV R12b, R12b !MOV R12w, R12w !MOV R12, R12 !MOV R12w, R12w !MOV R12b, R12b EndMacro Macro MOV_R13_R13_Up_Down !MOV R13b, R13b !MOV R13w, R13w !MOV R13, R13 !MOV R13w, R13w !MOV R13b, R13b EndMacro Macro MOV_R14_R14_Up_Down !MOV R14b, R14b !MOV R14w, R14w !MOV R14, R14 !MOV R14w, R14w !MOV R14b, R14b EndMacro Macro MOV_R15_R15_Up_Down !MOV R15b, R15b !MOV R15w, R15w !MOV R15, R15 !MOV R15w, R15w !MOV R15b, R15b EndMacro Macro MOV_Rsp_Rsp_Up_Down !MOV spl, spl !MOV sp, sp !MOV Rsp, Rsp !MOV sp, sp !MOV spl, spl EndMacro Macro MOV_Rbp_Rbp_Up_Down !MOV bpl, bpl !MOV bp, bp !MOV Rbp, Rbp !MOV bp, bp !MOV bpl, bpl EndMacro Macro MOV_Rsi_Rsi_Up_Down !MOV sil, sil !MOV si, si !MOV Rsi, Rsi !MOV si, si !MOV sil, sil EndMacro Macro MOV_Rdi_Rdi_Up_Down !MOV dil, dil !MOV di, di !MOV Rdi, Rdi !MOV di, di !MOV dil, dil EndMacro
Macro SIMPLE_MOVE_REGISTERS_Up_and_Down ; 249 @@ !NOP QWORD [Rip+136] !NOP QWORD [Rip+152] !NOP QWORD [Rip+168] !NOP QWORD [Rip+184] !NOP QWORD [Rip+200] !NOP QWORD [Rip+216] !NOP QWORD [Rip+232] !NOP QWORD [Rip+248] !NOP QWORD [Rip+264] !NOP QWORD [Rip+280] !NOP QWORD [Rip+296] !NOP QWORD [Rip+312] !NOP QWORD [Rip+328] !NOP QWORD [Rip+344] !NOP QWORD [Rip+360] !NOP QWORD [Rip+376] !NOP QWORD [Rip] !NOP QWORD [Rip] MOV_Rax_Rax_Up_Down MOV_Rdx_Rdx_Up_Down MOV_Rsp_Rsp_Up_Down MOV_Rsi_Rsi_Up_Down MOV_R9_R9_Up_Down MOV_R11_R11_Up_Down MOV_R13_R13_Up_Down MOV_R15_R15_Up_Down MOV_Rcx_Rcx_Up_Down MOV_Rbx_Rbx_Up_Down MOV_Rbp_Rbp_Up_Down MOV_Rdi_Rdi_Up_Down MOV_R8_R8_Up_Down MOV_R10_R10_Up_Down MOV_R12_R12_Up_Down MOV_R14_R14_Up_Down ; 249 @@ End EndMacro Intel Core Processor Manual は「論理レジスタ」で記述されて、マイクロ命令でRISC設計の実行になる時に「論理レジスタから物理レジスタ」へ同期される。その同期処理は「オーバークロック状態で転送されると考えると、ジッター原因である」という想定により、SIMPLE_MOVE_REGISTERS_Up_and_Down のように意図的に記述していれば、不信感の同期処理は回避できる。
BeforeProcedureRegisters_SMSW SIMPLE_MOVE_REGISTERS_Up_and_Down BeforeProcedureRegisters_RDRAND SIMPLE_MOVE_REGISTERS_Up_and_Down IncludeFile "NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F278_MMX.pbi" SIMPLE_MOVE_REGISTERS_Up_and_Down XORPS_xmm15_to_xmm0_xmm15 ; v_RN NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F278_MMX.pbi Macro INIT_MMX_R8 Debug "XOR_Rcx_Rcx" Debug "Set_CL1" Debug "MOVZX_Rcx" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!XORPS xmm0, xmm0" Debug "!MOVDQ2Q mm0, xmm0" Debug "!MOVDQ2Q mm1, xmm0" Debug "!MOVDQ2Q mm2, xmm0" Debug "!MOVDQ2Q mm3, xmm0" Debug "!MOVDQ2Q mm4, xmm0" Debug "!MOVDQ2Q mm5, xmm0" Debug "!MOVDQ2Q mm6, xmm0" Debug "!MOVDQ2Q mm7, xmm0" Debug "!MOVQ mm7, Rcx" Debug "!PSLLW mm0, mm7 ;1 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;2 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;3 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;4 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;5 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;6 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;7 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;8 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;9 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;A Left 1bit shift" Debug "!PSLLW mm0, mm7 ;B Left 1bit shift" Debug "!PSLLW mm0, mm7 ;C Left 1bit shift" Debug "!PSLLW mm0, mm7 ;D Left 1bit shift" Debug "!PSLLW mm0, mm7 ;E Left 1bit shift" Debug "!PSLLW mm0, mm7 ;F Left 1bit shift" Debug "!PSLLW mm0, mm7 ;0 Left 1bit shift" Debug "!MOVQ mm0, mm7" Debug "!PSLLW mm1, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;A Left 1bit shift" Debug "!PSLLW mm1, mm0 ;B Left 1bit shift" Debug "!PSLLW mm1, mm0 ;C Left 1bit shift" Debug "!PSLLW mm1, mm0 ;D Left 1bit shift" Debug "!PSLLW mm1, mm0 ;E Left 1bit shift" Debug "!PSLLW mm1, mm0 ;F Left 1bit shift" Debug "!PSLLW mm1, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;A Left 1bit shift" Debug "!PSLLW mm2, mm0 ;B Left 1bit shift" Debug "!PSLLW mm2, mm0 ;C Left 1bit shift" Debug "!PSLLW mm2, mm0 ;D Left 1bit shift" Debug "!PSLLW mm2, mm0 ;E Left 1bit shift" Debug "!PSLLW mm2, mm0 ;F Left 1bit shift" Debug "!PSLLW mm2, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;A Left 1bit shift" Debug "!PSLLW mm3, mm0 ;B Left 1bit shift" Debug "!PSLLW mm3, mm0 ;C Left 1bit shift" Debug "!PSLLW mm3, mm0 ;D Left 1bit shift" Debug "!PSLLW mm3, mm0 ;E Left 1bit shift" Debug "!PSLLW mm3, mm0 ;F Left 1bit shift" Debug "!PSLLW mm3, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;A Left 1bit shift" Debug "!PSLLW mm4, mm0 ;B Left 1bit shift" Debug "!PSLLW mm4, mm0 ;C Left 1bit shift" Debug "!PSLLW mm4, mm0 ;D Left 1bit shift" Debug "!PSLLW mm4, mm0 ;E Left 1bit shift" Debug "!PSLLW mm4, mm0 ;F Left 1bit shift" Debug "!PSLLW mm4, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;A Left 1bit shift" Debug "!PSLLW mm5, mm0 ;B Left 1bit shift" Debug "!PSLLW mm5, mm0 ;C Left 1bit shift" Debug "!PSLLW mm5, mm0 ;D Left 1bit shift" Debug "!PSLLW mm5, mm0 ;E Left 1bit shift" Debug "!PSLLW mm5, mm0 ;F Left 1bit shift" Debug "!PSLLW mm5, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;A Left 1bit shift" Debug "!PSLLW mm6, mm0 ;B Left 1bit shift" Debug "!PSLLW mm6, mm0 ;C Left 1bit shift" Debug "!PSLLW mm6, mm0 ;D Left 1bit shift" Debug "!PSLLW mm6, mm0 ;E Left 1bit shift" Debug "!PSLLW mm6, mm0 ;F Left 1bit shift" Debug "!PSLLW mm6, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;A Left 1bit shift" Debug "!PSLLW mm7, mm0 ;B Left 1bit shift" Debug "!PSLLW mm7, mm0 ;C Left 1bit shift" Debug "!PSLLW mm7, mm0 ;D Left 1bit shift" Debug "!PSLLW mm7, mm0 ;E Left 1bit shift" Debug "!PSLLW mm7, mm0 ;F Left 1bit shift" Debug "!PSLLW mm7, mm0 ;0 Left 1bit shift" EndMacro Macro INIT_MMX_R9 Debug "XOR_Rcx_Rcx" Debug "Set_CL1" Debug "MOVZX_Rcx" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!XORPS xmm0, xmm0" Debug "!MOVDQ2Q mm0, xmm0" Debug "!MOVDQ2Q mm1, xmm0" Debug "!MOVDQ2Q mm2, xmm0" Debug "!MOVDQ2Q mm3, xmm0" Debug "!MOVDQ2Q mm4, xmm0" Debug "!MOVDQ2Q mm5, xmm0" Debug "!MOVDQ2Q mm6, xmm0" Debug "!MOVDQ2Q mm7, xmm0" Debug "!MOVQ mm7, Rcx" Debug "!PSLLW mm0, mm7 ;1 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;2 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;3 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;4 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;5 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;6 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;7 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;8 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;9 Left 1bit shift" Debug "!PSLLW mm0, mm7 ;A Left 1bit shift" Debug "!PSLLW mm0, mm7 ;B Left 1bit shift" Debug "!PSLLW mm0, mm7 ;C Left 1bit shift" Debug "!PSLLW mm0, mm7 ;D Left 1bit shift" Debug "!PSLLW mm0, mm7 ;E Left 1bit shift" Debug "!PSLLW mm0, mm7 ;F Left 1bit shift" Debug "!PSLLW mm0, mm7 ;0 Left 1bit shift" Debug "!MOVQ mm0, mm7" Debug "!PSLLW mm1, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm1, mm0 ;A Left 1bit shift" Debug "!PSLLW mm1, mm0 ;B Left 1bit shift" Debug "!PSLLW mm1, mm0 ;C Left 1bit shift" Debug "!PSLLW mm1, mm0 ;D Left 1bit shift" Debug "!PSLLW mm1, mm0 ;E Left 1bit shift" Debug "!PSLLW mm1, mm0 ;F Left 1bit shift" Debug "!PSLLW mm1, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm2, mm0 ;A Left 1bit shift" Debug "!PSLLW mm2, mm0 ;B Left 1bit shift" Debug "!PSLLW mm2, mm0 ;C Left 1bit shift" Debug "!PSLLW mm2, mm0 ;D Left 1bit shift" Debug "!PSLLW mm2, mm0 ;E Left 1bit shift" Debug "!PSLLW mm2, mm0 ;F Left 1bit shift" Debug "!PSLLW mm2, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm3, mm0 ;A Left 1bit shift" Debug "!PSLLW mm3, mm0 ;B Left 1bit shift" Debug "!PSLLW mm3, mm0 ;C Left 1bit shift" Debug "!PSLLW mm3, mm0 ;D Left 1bit shift" Debug "!PSLLW mm3, mm0 ;E Left 1bit shift" Debug "!PSLLW mm3, mm0 ;F Left 1bit shift" Debug "!PSLLW mm3, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm4, mm0 ;A Left 1bit shift" Debug "!PSLLW mm4, mm0 ;B Left 1bit shift" Debug "!PSLLW mm4, mm0 ;C Left 1bit shift" Debug "!PSLLW mm4, mm0 ;D Left 1bit shift" Debug "!PSLLW mm4, mm0 ;E Left 1bit shift" Debug "!PSLLW mm4, mm0 ;F Left 1bit shift" Debug "!PSLLW mm4, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm5, mm0 ;A Left 1bit shift" Debug "!PSLLW mm5, mm0 ;B Left 1bit shift" Debug "!PSLLW mm5, mm0 ;C Left 1bit shift" Debug "!PSLLW mm5, mm0 ;D Left 1bit shift" Debug "!PSLLW mm5, mm0 ;E Left 1bit shift" Debug "!PSLLW mm5, mm0 ;F Left 1bit shift" Debug "!PSLLW mm5, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm6, mm0 ;A Left 1bit shift" Debug "!PSLLW mm6, mm0 ;B Left 1bit shift" Debug "!PSLLW mm6, mm0 ;C Left 1bit shift" Debug "!PSLLW mm6, mm0 ;D Left 1bit shift" Debug "!PSLLW mm6, mm0 ;E Left 1bit shift" Debug "!PSLLW mm6, mm0 ;F Left 1bit shift" Debug "!PSLLW mm6, mm0 ;0 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;1 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;2 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;3 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;4 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;5 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;6 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;7 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;8 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;9 Left 1bit shift" Debug "!PSLLW mm7, mm0 ;A Left 1bit shift" Debug "!PSLLW mm7, mm0 ;B Left 1bit shift" Debug "!PSLLW mm7, mm0 ;C Left 1bit shift" Debug "!PSLLW mm7, mm0 ;D Left 1bit shift" Debug "!PSLLW mm7, mm0 ;E Left 1bit shift" Debug "!PSLLW mm7, mm0 ;F Left 1bit shift" Debug "!PSLLW mm7, mm0 ;0 Left 1bit shift" EndMacro Macro Load_memory_chip_referene_R8 Debug "!MOVQ mm1, [R8] ;load memory chip reference" Debug "!MOVQ mm2, [R8] ;load memory chip reference" Debug "!MOVQ mm3, [R8] ;load memory chip reference" Debug "!MOVQ mm4, [R8] ;load memory chip reference" Debug "!MOVQ mm5, [R8] ;load memory chip reference" Debug "!MOVQ mm6, [R8] ;load memory chip reference" Debug "!MOVQ mm7, [R8] ;load memory chip reference" EndMacro Macro Load_memory_chip_referene_R9 Debug "!MOVQ mm1, [R9] ;load memory chip reference" Debug "!MOVQ mm2, [R9] ;load memory chip reference" Debug "!MOVQ mm3, [R9] ;load memory chip reference" Debug "!MOVQ mm4, [R9] ;load memory chip reference" Debug "!MOVQ mm5, [R9] ;load memory chip reference" Debug "!MOVQ mm6, [R9] ;load memory chip reference" Debug "!MOVQ mm7, [R9] ;load memory chip reference" EndMacro Macro NEG_to_NEG_R8 Debug "!NEG R8" Debug "!NOT R8b" Debug "!XCHG R8, R8" Debug "!NOT R8b" Debug "!NEG R8" Debug "After_NEG_to_NEG_R8" EndMacro Macro NEG_to_NEG_R9 Debug "!NEG R9" Debug "!NOT R9b" Debug "!XCHG R9, R9" Debug "!NOT R9b" Debug "!NEG R9" Debug "After_NEG_to_NEG_R9" EndMacro Macro Isolate_MMX Debug "!MOVQ mm1, mm3" Debug "!MOVQ mm7, mm1" Debug "!MOVQ mm2, mm7" Debug "!MOVQ mm6, mm2" Debug "!MOVQ mm4, mm6" Debug "!MOVQ mm5, mm4" EndMacro Macro FINCSTP_x8 Debug "!FINCSTP" Debug "!FINCSTP" Debug "!FINCSTP" Debug "!FINCSTP" Debug "!FINCSTP" Debug "!FINCSTP" Debug "!FINCSTP" Debug "!FINCSTP" EndMacro Macro FINIT_FILD_R8 Debug "!FILD qword [R8]" Debug "!FILD qword [R8]" Debug "!FILD qword [R8]" Debug "!FILD qword [R8]" Debug "!FILD qword [R8]" Debug "!FILD qword [R8]" Debug "!FILD qword [R8]" Debug "!FILD qword [R8]" EndMacro Macro FINIT_FLD_R8 Debug "!FLD qword [R8]" Debug "!FLD qword [R8]" Debug "!FLD qword [R8]" Debug "!FLD qword [R8]" Debug "!FLD qword [R8]" Debug "!FLD qword [R8]" Debug "!FLD qword [R8]" Debug "!FLD qword [R8]" EndMacro Macro FINIT_FILD_R9 Debug "!FILD qword [R9]" Debug "!FILD qword [R9]" Debug "!FILD qword [R9]" Debug "!FILD qword [R9]" Debug "!FILD qword [R9]" Debug "!FILD qword [R9]" Debug "!FILD qword [R9]" Debug "!FILD qword [R9]" EndMacro Macro FINIT_FLD_R9 Debug "!FLD qword [R9]" Debug "!FLD qword [R9]" Debug "!FLD qword [R9]" Debug "!FLD qword [R9]" Debug "!FLD qword [R9]" Debug "!FLD qword [R9]" Debug "!FLD qword [R9]" Debug "!FLD qword [R9]" EndMacro Debug "XOR_R8_R8_255" Debug "XOR_R8_R8_255" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!SMSW R8" Debug "!NOP QWORD [Rip-32]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!LEA R8, [v_RN]" NEG_to_NEG_R8 Debug "!MOVQ mm5, R8" Debug "XOR_R8_R8_255" Debug "!MOVQ R8, mm5" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [R8]" Debug "XOR_R9_R9_255" Debug "!MOVQ mm5, R9" Debug "!MOVQ mm5, [R8]" Debug "XOR_R9_R9_255" Debug "XOR_R9_R9_255" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!SMSW R9" Debug "!NOP QWORD [Rip-32]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!MOVQ R9, mm5" Debug "MOVZX_R9" Debug "!LEA R9, [v_RN]" NEG_to_NEG_R9 Debug "!MOVQ mm5, R9" Debug "XOR_R9_R9_255" Debug "!MOVQ R9, mm5" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [R9]" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!EMMS" Debug "!FINIT" FINCSTP_x8 FINIT_FLD_R9 FINCSTP_x8 FINIT_FLD_R9 FINCSTP_x8 FINIT_FLD_R9 FINCSTP_x8 FINIT_FLD_R9 FINCSTP_x8 FINIT_FILD_R9 FINCSTP_x8 FINIT_FILD_R9 FINCSTP_x8 FINIT_FILD_R9 FINCSTP_x8 FINIT_FILD_R9 FINCSTP_x8 Debug "!FINIT" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_Rdi_Rdi_Up_Down" Debug "!MOVQ mm0, Rdi" Debug "XOR_Rdi_Rdi_255" Debug "XOR_Rdi_Rdi_255" Debug "!MOVQ Rdi, mm5 ; Clear Rdi" Debug "MOVZX_Rdi" Load_memory_chip_referene_R9 Debug "!MOVQ Rdi, mm5 ; Set Electronic Reference" Debug "MOVZX_Rdi" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rdi, mm5 ;mmx stabilizer" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_Rbp_Rbp_Up_Down" Debug "!MOVQ mm0, Rbp" Debug "XOR_Rbp_Rbp_255" Debug "XOR_Rbp_Rbp_255" Debug "!MOVQ Rbp, mm5 ; Clear Rbp" Debug "MOVZX_Rbp" Load_memory_chip_referene_R9 Debug "!MOVQ Rbp, mm5 ; Set Electronic Reference" Debug "MOVZX_Rbp" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rbp, mm5 ;mmx stabilizer" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_Rbx_Rbx_Up_Down" Debug "!MOVQ mm0, Rbx" Debug "XOR_Rbx_Rbx_255" Debug "XOR_Rbx_Rbx_255" Debug "!MOVQ Rbx, mm5 ; Clear Rbx" Debug "MOVZX_Rbx" Load_memory_chip_referene_R9 Debug "!MOVQ Rbx, mm5 ; Set Electronic Reference" Debug "MOVZX_Rbx" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rbx, mm5 ;mmx stabilizer" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_Rcx_Rcx_Up_Down" Debug "!MOVQ mm0, Rcx" Debug "XOR_Rcx_Rcx_255" Debug "XOR_Rcx_Rcx_255" Debug "!MOVQ Rcx, mm5 ; Clear Rcx" Debug "MOVZX_Rcx" Load_memory_chip_referene_R9 Debug "!MOVQ Rcx, mm5 ; Set Electronic Reference" Debug "MOVZX_Rcx" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rcx, mm5 ;mmx stabilizer" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_R8_R8_Up_Down" Debug "!MOVQ mm0, R8" Debug "XOR_R8_R8_255" Debug "XOR_R8_R8_255" Debug "!MOVQ R8, mm5 ; Clear R8" Debug "MOVZX_R8" Load_memory_chip_referene_R9 Debug "!MOVQ R8, mm5 ; Set Electronic Reference" Debug "MOVZX_R8" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R8, mm5 ;mmx stabilizer" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_R10_R10_Up_Down" Debug "!MOVQ mm0, R10" Debug "XOR_R10_R10_255" Debug "XOR_R10_R10_255" Debug "!MOVQ R10, mm5 ; Clear R10" Debug "MOVZX_R10" Load_memory_chip_referene_R9 Debug "!MOVQ R10, mm5 ; Set Electronic Reference" Debug "MOVZX_R10" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R10, mm5 ;mmx stabilizer" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_R12_R12_Up_Down" Debug "!MOVQ mm0, R12" Debug "XOR_R12_R12_255" Debug "XOR_R12_R12_255" Debug "!MOVQ R12, mm5 ; Clear R12" Debug "MOVZX_R12" Load_memory_chip_referene_R9 Debug "!MOVQ R12, mm5 ; Set Electronic Reference" Debug "MOVZX_R12" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R12, mm5 ;mmx stabilizer" INIT_MMX_R9 Debug "!MOVQ mm0, [R9] ;load memory chip reference" Debug "MOV_R14_R14_Up_Down" Debug "!MOVQ mm0, R14" Debug "XOR_R14_R14_255" Debug "XOR_R14_R14_255" Debug "!MOVQ R14, mm5 ; Clear R14" Debug "MOVZX_R14" Load_memory_chip_referene_R9 Debug "!MOVQ R14, mm5 ; Set Electronic Reference" Debug "MOVZX_R14" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R14, mm5 ;mmx stabilizer" Debug "XOR_R9_R9_255" Debug "XOR_R9_R9_255" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!SMSW R9" Debug "!NOP QWORD [Rip-32]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!LEA R9, [v_RN]" NEG_to_NEG_R9 Debug "!MOVQ mm5, R9" Debug "XOR_R9_R9_255" Debug "!MOVQ R9, mm5" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [R9]" Debug "XOR_R8_R8_255" Debug "!MOVQ mm5, R8" Debug "!MOVQ mm5, [R9]" Debug "XOR_R8_R8_255" Debug "XOR_R8_R8_255" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!SMSW R8" Debug "!NOP QWORD [Rip-32]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!MOVQ R8, mm5" Debug "MOVZX_R8" Debug "!LEA R8, [v_RN]" NEG_to_NEG_R8 Debug "!MOVQ mm5, R8" Debug "XOR_R8_R8_255" Debug "!MOVQ R8, mm5" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [R8]" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!EMMS" Debug "!FINIT" FINCSTP_x8 FINIT_FLD_R8 FINCSTP_x8 FINIT_FLD_R8 FINCSTP_x8 FINIT_FLD_R8 FINCSTP_x8 FINIT_FLD_R8 FINCSTP_x8 FINIT_FILD_R8 FINCSTP_x8 FINIT_FILD_R8 FINCSTP_x8 FINIT_FILD_R8 FINCSTP_x8 FINIT_FILD_R8 FINCSTP_x8 Debug "!FINIT" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_Rsi_Rsi_Up_Down" Debug "!MOVQ mm0, Rsi" Debug "XOR_Rsi_Rsi_255" Debug "XOR_Rsi_Rsi_255" Debug "!MOVQ Rsi, mm5 ; Clear Rsi" Debug "MOVZX_Rsi" Load_memory_chip_referene_R8 Debug "!MOVQ Rsi, mm5 ; Set Electronic Reference" Debug "MOVZX_Rsi" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rsi, mm5 ;mmx stabilizer" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_Rsp_Rsp_Up_Down" Debug "!MOVQ mm0, Rsp" Debug "XOR_Rsp_Rsp_255" Debug "XOR_Rsp_Rsp_255" Debug "!MOVQ Rsp, mm5 ; Clear Rsp" Debug "MOVZX_Rsp" Load_memory_chip_referene_R8 Debug "!MOVQ Rsp, mm5 ; Set Electronic Reference" Debug "MOVZX_Rsp" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rsp, mm5 ;mmx stabilizer" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_Rax_Rax_Up_Down" Debug "!MOVQ mm0, Rax" Debug "XOR_Rax_Rax_255" Debug "XOR_Rax_Rax_255" Debug "!MOVQ Rax, mm5 ; Clear Rax" Debug "MOVZX_Rax" Load_memory_chip_referene_R8 Debug "!MOVQ Rax, mm5 ; Set Electronic Reference" Debug "MOVZX_Rax" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rax, mm5 ;mmx stabilizer" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_Rdx_Rdx_Up_Down" Debug "!MOVQ mm0, Rdx" Debug "XOR_Rdx_Rdx_255" Debug "XOR_Rdx_Rdx_255" Debug "!MOVQ Rdx, mm5 ; Clear Rdx" Debug "MOVZX_Rdx" Load_memory_chip_referene_R8 Debug "!MOVQ Rdx, mm5 ; Set Electronic Reference" Debug "MOVZX_Rdx" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ Rdx, mm5 ;mmx stabilizer" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_R9_R9_Up_Down" Debug "!MOVQ mm0, R9" Debug "XOR_R9_R9_255" Debug "XOR_R9_R9_255" Debug "!MOVQ R9, mm5 ; Clear R9" Debug "MOVZX_R9" Load_memory_chip_referene_R8 Debug "!MOVQ R9, mm5 ; Set Electronic Reference" Debug "MOVZX_R9" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R9, mm5 ;mmx stabilizer" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_R11_R11_Up_Down" Debug "!MOVQ mm0, R11" Debug "XOR_R11_R11_255" Debug "XOR_R11_R11_255" Debug "!MOVQ R11, mm5 ; Clear R11" Debug "MOVZX_R11" Load_memory_chip_referene_R8 Debug "!MOVQ R11, mm5 ; Set Electronic Reference" Debug "MOVZX_R11" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R11, mm5 ;mmx stabilizer" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_R13_R13_Up_Down" Debug "!MOVQ mm0, R13" Debug "XOR_R13_R13_255" Debug "XOR_R13_R13_255" Debug "!MOVQ R13, mm5 ; Clear R13" Debug "MOVZX_R13" Load_memory_chip_referene_R8 Debug "!MOVQ R13, mm5 ; Set Electronic Reference" Debug "MOVZX_R13" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R13, mm5 ;mmx stabilizer" INIT_MMX_R8 Debug "!MOVQ mm0, [R8] ;load memory chip reference" Debug "MOV_R15_R15_Up_Down" Debug "!MOVQ mm0, R15" Debug "XOR_R15_R15_255" Debug "XOR_R15_R15_255" Debug "!MOVQ R15, mm5 ; Clear R15" Debug "MOVZX_R15" Load_memory_chip_referene_R8 Debug "!MOVQ R15, mm5 ; Set Electronic Reference" Debug "MOVZX_R15" Debug "!MOVQ mm3, mm0 ;load target data" Isolate_MMX Debug "!MOVQ R15, mm5 ;mmx stabilizer" Debug "XOR_R9_R9_255" Debug "XOR_R9_R9_255" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!SMSW R9" Debug "!NOP QWORD [Rip-32]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!LEA R9, [v_RN]" NEG_to_NEG_R9 Debug "!MOVQ mm5, R9" Debug "XOR_R9_R9_255" Debug "!MOVQ R9, mm5" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [R9]" Debug "XOR_R8_R8_255" Debug "!MOVQ mm5, R8" Debug "!MOVQ mm5, [R9]" ;_WasapiProcB Debug "XOR_R8_R8_255" Debug "XOR_R8_R8_255" Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!SMSW R8" Debug "!NOP QWORD [Rip-32]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!MOVQ R8, mm5" Debug "MOVZX_R8" Debug "!LEA R8, [v_RN]" NEG_to_NEG_R8 Debug "!MOVQ mm5, R8" Debug "XOR_R8_R8_255" Debug "!MOVQ R8, mm5" INIT_MMX_R8 ; Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [R8]" Debug "!MOVQ mm0, [R8] ;load memory chip reference" Load_memory_chip_referene_R8 Debug "!MOVQ mm1, mm3" Debug "!MOVQ mm7, mm1" Debug "!MOVQ mm2, mm7" Debug "!MOVQ mm6, mm2" Debug "!MOVQ mm4, mm6" Debug "!MOVQ mm5, mm4" ; step 1 For I=0 To 7 Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!PXOR xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVQ2DQ xmm"+Str(I)+", mm3" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm1" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm7" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm2" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm6" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm4" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm5" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!PUNPCKLDQ xmm"+Str(I)+", xmm"+Str(I) Debug "!PUNPCKLWD xmm"+Str(I)+", xmm"+Str(I) Debug "!PUNPCKLBW xmm"+Str(I)+", xmm"+Str(I) Next ; step 2 , 2kai kurikaesu For I=0 To 7 Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!XORPS xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPS xmm"+Str(I)+", [R8]" Debug "!MOVHPS xmm"+Str(I)+", [R8]" Debug "!XORPD xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPD xmm"+Str(I)+", [R8]" Debug "!MOVHPD xmm"+Str(I)+", [R8]" Next For I=0 To 7 Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!XORPS xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPS xmm"+Str(I)+", [R8]" Debug "!MOVHPS xmm"+Str(I)+", [R8]" Debug "!XORPD xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPD xmm"+Str(I)+", [R8]" Debug "!MOVHPD xmm"+Str(I)+", [R8]" Next ; ; step 1 For I=8 To 15 Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!PXOR xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVQ2DQ xmm"+Str(I)+", mm3" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm1" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm7" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm2" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm6" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm4" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!MOVQ2DQ xmm"+Str(I)+", mm5" Debug "!PUNPCKLQDQ xmm"+Str(I)+", xmm"+Str(I) ; Debug "!PUNPCKLDQ xmm"+Str(I)+", xmm"+Str(I) Debug "!PUNPCKLWD xmm"+Str(I)+", xmm"+Str(I) Debug "!PUNPCKLBW xmm"+Str(I)+", xmm"+Str(I) Next ; step 2 , 2kai kurikaesu For I=8 To 15 Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!XORPS xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPS xmm"+Str(I)+", [R8]" Debug "!MOVHPS xmm"+Str(I)+", [R8]" Debug "!XORPD xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPD xmm"+Str(I)+", [R8]" Debug "!MOVHPD xmm"+Str(I)+", [R8]" Next For I=8 To 15 Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!XORPS xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPS xmm"+Str(I)+", [R8]" Debug "!MOVHPS xmm"+Str(I)+", [R8]" Debug "!XORPD xmm"+Str(I)+", xmm"+Str(I) Debug "!MOVLPD xmm"+Str(I)+", [R8]" Debug "!MOVHPD xmm"+Str(I)+", [R8]" Next For I=0 To 15 If I=>8 Debug "!MINSS xmm"+Str(I)+", xmm"+Str(I-8) Else Debug "!MINSS xmm"+Str(I+8)+", xmm"+Str(I) EndIf If I=>8 Debug "!MINSD xmm"+Str(I)+", xmm"+Str(I-8) Else Debug "!MINSD xmm"+Str(I+8)+", xmm"+Str(I) EndIf Next For I=0 To 15 If I=>8 Debug "!MINSS xmm"+Str(I)+", xmm"+Str(I-8) Else Debug "!MINSS xmm"+Str(I+8)+", xmm"+Str(I) EndIf If I=>8 Debug "!MINSD xmm"+Str(I)+", xmm"+Str(I-8) Else Debug "!MINSD xmm"+Str(I+8)+", xmm"+Str(I) EndIf Next Debug "!NOP QWORD [Rip+24]" Debug "!NOP QWORD [Rip+16]" Debug "!NOP QWORD [Rip]" Debug "!NOP QWORD [Rip]" Debug "!EMMS" CallDebugger
Debug "; "+Str(?NOPMemoryQ_E_1-?NOPMemoryQ_S_1-15) + " @@" For I=0 To ?NOPMemoryQ_E_1-?NOPMemoryQ_S_1-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_1-?NOPMemoryQ_S_1)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_2-?NOPMemoryQ_S_2-15) + " @@" For I=0 To ?NOPMemoryQ_E_2-?NOPMemoryQ_S_2-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_2-?NOPMemoryQ_S_2)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_3-?NOPMemoryQ_S_3-15) + " @@" For I=0 To ?NOPMemoryQ_E_3-?NOPMemoryQ_S_3-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_3-?NOPMemoryQ_S_3)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_4-?NOPMemoryQ_S_4-15) + " @@" For I=0 To ?NOPMemoryQ_E_4-?NOPMemoryQ_S_4-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_4-?NOPMemoryQ_S_4)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_5-?NOPMemoryQ_S_5-15) + " @@" For I=0 To ?NOPMemoryQ_E_5-?NOPMemoryQ_S_5-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_5-?NOPMemoryQ_S_5)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_6-?NOPMemoryQ_S_6-15) + " @@" For I=0 To ?NOPMemoryQ_E_6-?NOPMemoryQ_S_6-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_6-?NOPMemoryQ_S_6)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_7-?NOPMemoryQ_S_7-15) + " @@" For I=0 To ?NOPMemoryQ_E_7-?NOPMemoryQ_S_7-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_7-?NOPMemoryQ_S_7)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_8-?NOPMemoryQ_S_8-15) + " @@" For I=0 To ?NOPMemoryQ_E_8-?NOPMemoryQ_S_8-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_8-?NOPMemoryQ_S_8)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_9-?NOPMemoryQ_S_9-15) + " @@" For I=0 To ?NOPMemoryQ_E_9-?NOPMemoryQ_S_9-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_9-?NOPMemoryQ_S_9)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" Debug "; "+Str(?NOPMemoryQ_E_10-?NOPMemoryQ_S_10-15) + " @@" For I=0 To ?NOPMemoryQ_E_10-?NOPMemoryQ_S_10-15 Step 16 Debug " !NOP QWORD [Rip+"+Str(Int(Round((?NOPMemoryQ_E_10-?NOPMemoryQ_S_10)/16, #PB_Round_Up))*8+I)+"]" Next Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug "-----------" CallDebugger; 適用する範囲をラベルで指定しておく
NOPMemoryQ_S_1: MainThread_No = RN | Digital_Bit_Stabilizer_ToRax64(RN, RN, CreateThread(MT_Thread_MainThread, MT_D0) ) NOPMemoryQ_E_1:; Debug 実行して、下記のように命令キャッシュを指定する
; 92 @@ !NOP QWORD [Rip+56] !NOP QWORD [Rip+72] !NOP QWORD [Rip+88] !NOP QWORD [Rip+104] !NOP QWORD [Rip+120] !NOP QWORD [Rip+136] !NOP QWORD [Rip] !NOP QWORD [Rip] MainThread_No = RN | Digital_Bit_Stabilizer_ToRax64(RN, RN, CreateThread(MT_Thread_MainThread, MT_D0) ) ; 92 @@ End
この範囲について「電子ビット基準は、CPUのキャッシュメモリ」になっていると想定しながら記述しなければならないので、十分に品質を高めるときは注意しなければならない。素早く参照すると困るパターンがあるからです。
転送処理
通常は SSE命令 を使用した転送処理となる。しかし、CPUのメモリアクセスを考えていくと、すべて MMXレジスタ で使われてるメモリアクセス処理で実現しているとしか思えなくなる。SSE命令の悪いところは「汎用処理命令よりも、クロック上昇、CPU電圧上昇、この原因によって、デジタルジッターを生じる」という点に問題がある。それで RapterLake CPU では、メモリ転送処理に関して E-Core を使用している雰囲気で、正確に鳴りやすいが遅くなりやすい。Nontallion では MMXによる転送処理によって実現しており、ジッター現象は起きにくい。
Macro CopyMemoryMace_Inside !NOP QWORD [Rip] !NOP QWORD [Rip] !FNOP !FNOP !FNOP !FNOP !XCHG cl, cl MOVZX_Rcx !NOP QWORD [Rip] !NOP QWORD [R8] ; !MOVQ mm1, [R8] !PSLLW mm1, mm7 ;1 Left 1bit shift !PSLLW mm1, mm7 ;2 Left 1bit shift !PSLLW mm1, mm7 ;3 Left 1bit shift !PSLLW mm1, mm7 ;4 Left 1bit shift !PSLLW mm1, mm7 ;5 Left 1bit shift !PSLLW mm1, mm7 ;6 Left 1bit shift !PSLLW mm1, mm7 ;7 Left 1bit shift !PSLLW mm1, mm7 ;8 Left 1bit shift !PSLLW mm1, mm7 ;9 Left 1bit shift !PSLLW mm1, mm7 ;A Left 1bit shift !PSLLW mm1, mm7 ;B Left 1bit shift !PSLLW mm1, mm7 ;C Left 1bit shift !PSLLW mm1, mm7 ;D Left 1bit shift !PSLLW mm1, mm7 ;E Left 1bit shift !PSLLW mm1, mm7 ;F Left 1bit shift !PSLLW mm1, mm7 ;0 Left 1bit shift ; !MOVQ mm3, [R8] !PSLLW mm3, mm7 ;1 Left 1bit shift !PSLLW mm3, mm7 ;2 Left 1bit shift !PSLLW mm3, mm7 ;3 Left 1bit shift !PSLLW mm3, mm7 ;4 Left 1bit shift !PSLLW mm3, mm7 ;5 Left 1bit shift !PSLLW mm3, mm7 ;6 Left 1bit shift !PSLLW mm3, mm7 ;7 Left 1bit shift !PSLLW mm3, mm7 ;8 Left 1bit shift !PSLLW mm3, mm7 ;9 Left 1bit shift !PSLLW mm3, mm7 ;A Left 1bit shift !PSLLW mm3, mm7 ;B Left 1bit shift !PSLLW mm3, mm7 ;C Left 1bit shift !PSLLW mm3, mm7 ;D Left 1bit shift !PSLLW mm3, mm7 ;E Left 1bit shift !PSLLW mm3, mm7 ;F Left 1bit shift !PSLLW mm3, mm7 ;0 Left 1bit shift ; !MOVQ mm5, [R8] !PSLLW mm5, mm7 ;1 Left 1bit shift !PSLLW mm5, mm7 ;2 Left 1bit shift !PSLLW mm5, mm7 ;3 Left 1bit shift !PSLLW mm5, mm7 ;4 Left 1bit shift !PSLLW mm5, mm7 ;5 Left 1bit shift !PSLLW mm5, mm7 ;6 Left 1bit shift !PSLLW mm5, mm7 ;7 Left 1bit shift !PSLLW mm5, mm7 ;8 Left 1bit shift !PSLLW mm5, mm7 ;9 Left 1bit shift !PSLLW mm5, mm7 ;A Left 1bit shift !PSLLW mm5, mm7 ;B Left 1bit shift !PSLLW mm5, mm7 ;C Left 1bit shift !PSLLW mm5, mm7 ;D Left 1bit shift !PSLLW mm5, mm7 ;E Left 1bit shift !PSLLW mm5, mm7 ;F Left 1bit shift !PSLLW mm5, mm7 ;0 Left 1bit shift ; !NOP QWORD [Rip] !NOP QWORD [R9] ; [12.05] !MOVQ mm3, [R9] !MOVQ mm3, [R9] ; for Natural !MOVQ mm5, mm3 !PXOR mm3, mm0 ; !REVERSE! !REVERSE! ; !NOP QWORD [Rip] !NOP QWORD [R8] ; [12.05] !MOVNTQ [R8], mm1 ; 0 !MOVNTQ [R8], mm3 ; Reverse !MOVNTQ [R8], mm5 ; Set ; !NOP QWORD [Rip] !NOP QWORD [R8] ; !MOVQ mm1, [R8] !PSLLW mm1, mm7 ;1 Left 1bit shift !PSLLW mm1, mm7 ;2 Left 1bit shift !PSLLW mm1, mm7 ;3 Left 1bit shift !PSLLW mm1, mm7 ;4 Left 1bit shift !PSLLW mm1, mm7 ;5 Left 1bit shift !PSLLW mm1, mm7 ;6 Left 1bit shift !PSLLW mm1, mm7 ;7 Left 1bit shift !PSLLW mm1, mm7 ;8 Left 1bit shift !PSLLW mm1, mm7 ;9 Left 1bit shift !PSLLW mm1, mm7 ;A Left 1bit shift !PSLLW mm1, mm7 ;B Left 1bit shift !PSLLW mm1, mm7 ;C Left 1bit shift !PSLLW mm1, mm7 ;D Left 1bit shift !PSLLW mm1, mm7 ;E Left 1bit shift !PSLLW mm1, mm7 ;F Left 1bit shift !PSLLW mm1, mm7 ;0 Left 1bit shift ; !MOVQ mm3, [R8] !PSLLW mm3, mm7 ;1 Left 1bit shift !PSLLW mm3, mm7 ;2 Left 1bit shift !PSLLW mm3, mm7 ;3 Left 1bit shift !PSLLW mm3, mm7 ;4 Left 1bit shift !PSLLW mm3, mm7 ;5 Left 1bit shift !PSLLW mm3, mm7 ;6 Left 1bit shift !PSLLW mm3, mm7 ;7 Left 1bit shift !PSLLW mm3, mm7 ;8 Left 1bit shift !PSLLW mm3, mm7 ;9 Left 1bit shift !PSLLW mm3, mm7 ;A Left 1bit shift !PSLLW mm3, mm7 ;B Left 1bit shift !PSLLW mm3, mm7 ;C Left 1bit shift !PSLLW mm3, mm7 ;D Left 1bit shift !PSLLW mm3, mm7 ;E Left 1bit shift !PSLLW mm3, mm7 ;F Left 1bit shift !PSLLW mm3, mm7 ;0 Left 1bit shift ; !MOVQ mm5, [R8] !PSLLW mm5, mm7 ;1 Left 1bit shift !PSLLW mm5, mm7 ;2 Left 1bit shift !PSLLW mm5, mm7 ;3 Left 1bit shift !PSLLW mm5, mm7 ;4 Left 1bit shift !PSLLW mm5, mm7 ;5 Left 1bit shift !PSLLW mm5, mm7 ;6 Left 1bit shift !PSLLW mm5, mm7 ;7 Left 1bit shift !PSLLW mm5, mm7 ;8 Left 1bit shift !PSLLW mm5, mm7 ;9 Left 1bit shift !PSLLW mm5, mm7 ;A Left 1bit shift !PSLLW mm5, mm7 ;B Left 1bit shift !PSLLW mm5, mm7 ;C Left 1bit shift !PSLLW mm5, mm7 ;D Left 1bit shift !PSLLW mm5, mm7 ;E Left 1bit shift !PSLLW mm5, mm7 ;F Left 1bit shift !PSLLW mm5, mm7 ;0 Left 1bit shift ; !MOVQ mm3, [R8] !MOVQ mm3, [R8] ; for Natural !MOVQ mm5, mm3 !PXOR mm3, mm0 ; !REVERSE! !REVERSE! ; !NOP QWORD [Rip] !NOP QWORD [R8] ; [12.05] !MOVNTQ [R8], mm1 ; 0 !MOVNTQ [R8], mm3 ; Reverse !MOVNTQ [R8], mm5 ; Set ; !NOP QWORD [Rip] !NOP QWORD [R8] !PADDQ mm2, mm6 !MOVQ R9, mm2 MOV_R9_R9_Down !PADDQ mm4, mm6 !MOVQ R8, mm4 MOV_R8_R8_Down !DEC cl !FNOP ; for wide !FNOP !FNOP !FNOP ;4 !NOP QWORD [Rip] !NOP QWORD [Rip] EndMacro Procedure CopyMemoryMace(dummy.i, CMM_length.i, *CMM_in, *CMM_out) Protected CMM_D0.i, CMM_D8.i XOR_Rax_Rax !MOVNTI [p.v_CMM_D0], Rax !MOVNTI [p.v_CMM_D8], Rax !INC al !INC al !INC al !INC al ;4 !INC al !INC al !INC al !INC al ;8 MOVZX_Rax !MOVNTI [p.v_CMM_D8], Rax Protected CMM_Cycle.i If CMM_length=CMM_D0 CopyMemory(*CMM_in, *CMM_out, CMM_length) Goto CopyMemoryMace_End EndIf XOR_R8_R8_255 !MOV R8, [v_RNA] MOVZX_R8 !MOV R8, [p.p_CMM_out] ; Dont set NEGtoNEG dame for clear MOV_R8_R8_Up_Down !NOP QWORD [Rip] !NOP QWORD [R8] ; XOR_Rdx_Rdx !MOV Rdx, [p.v_CMM_Cycle] MOV_Rdx_Rdx_Up_Down ; XOR_Rcx_Rcx Set_CL1 MOVZX_Rcx !MOVQ mm7, Rcx ; !MOVQ mm4, [R8] !PSLLW mm4, mm7 ;1 Left 1bit shift !PSLLW mm4, mm7 ;2 Left 1bit shift !PSLLW mm4, mm7 ;3 Left 1bit shift !PSLLW mm4, mm7 ;4 Left 1bit shift !PSLLW mm4, mm7 ;5 Left 1bit shift !PSLLW mm4, mm7 ;6 Left 1bit shift !PSLLW mm4, mm7 ;7 Left 1bit shift !PSLLW mm4, mm7 ;8 Left 1bit shift !PSLLW mm4, mm7 ;9 Left 1bit shift !PSLLW mm4, mm7 ;A Left 1bit shift !PSLLW mm4, mm7 ;B Left 1bit shift !PSLLW mm4, mm7 ;C Left 1bit shift !PSLLW mm4, mm7 ;D Left 1bit shift !PSLLW mm4, mm7 ;E Left 1bit shift !PSLLW mm4, mm7 ;F Left 1bit shift !PSLLW mm4, mm7 ;0 Left 1bit shift !MOVQ mm4, R8 ; !MOVQ mm0, [R8] !PSLLW mm0, mm7 ;1 Left 1bit shift !PSLLW mm0, mm7 ;2 Left 1bit shift !PSLLW mm0, mm7 ;3 Left 1bit shift !PSLLW mm0, mm7 ;4 Left 1bit shift !PSLLW mm0, mm7 ;5 Left 1bit shift !PSLLW mm0, mm7 ;6 Left 1bit shift !PSLLW mm0, mm7 ;7 Left 1bit shift !PSLLW mm0, mm7 ;8 Left 1bit shift !PSLLW mm0, mm7 ;9 Left 1bit shift !PSLLW mm0, mm7 ;A Left 1bit shift !PSLLW mm0, mm7 ;B Left 1bit shift !PSLLW mm0, mm7 ;C Left 1bit shift !PSLLW mm0, mm7 ;D Left 1bit shift !PSLLW mm0, mm7 ;E Left 1bit shift !PSLLW mm0, mm7 ;F Left 1bit shift !PSLLW mm0, mm7 ;0 Left 1bit shift !MOVQ mm0, [v_RDM] ; !MOVQ mm6, [R8] !PSLLW mm6, mm7 ;1 Left 1bit shift !PSLLW mm6, mm7 ;2 Left 1bit shift !PSLLW mm6, mm7 ;3 Left 1bit shift !PSLLW mm6, mm7 ;4 Left 1bit shift !PSLLW mm6, mm7 ;5 Left 1bit shift !PSLLW mm6, mm7 ;6 Left 1bit shift !PSLLW mm6, mm7 ;7 Left 1bit shift !PSLLW mm6, mm7 ;8 Left 1bit shift !PSLLW mm6, mm7 ;9 Left 1bit shift !PSLLW mm6, mm7 ;A Left 1bit shift !PSLLW mm6, mm7 ;B Left 1bit shift !PSLLW mm6, mm7 ;C Left 1bit shift !PSLLW mm6, mm7 ;D Left 1bit shift !PSLLW mm6, mm7 ;E Left 1bit shift !PSLLW mm6, mm7 ;F Left 1bit shift !PSLLW mm6, mm7 ;0 Left 1bit shift XOR_R9_R9 !INC R9b !INC R9b !INC R9b !INC R9b !INC R9b !INC R9b !INC R9b !INC R9b ;8 MOVZX_R9 !MOVQ mm6, R9 ; !MOVQ mm2, [R8] !PSLLW mm2, mm7 ;1 Left 1bit shift !PSLLW mm2, mm7 ;2 Left 1bit shift !PSLLW mm2, mm7 ;3 Left 1bit shift !PSLLW mm2, mm7 ;4 Left 1bit shift !PSLLW mm2, mm7 ;5 Left 1bit shift !PSLLW mm2, mm7 ;6 Left 1bit shift !PSLLW mm2, mm7 ;7 Left 1bit shift !PSLLW mm2, mm7 ;8 Left 1bit shift !PSLLW mm2, mm7 ;9 Left 1bit shift !PSLLW mm2, mm7 ;A Left 1bit shift !PSLLW mm2, mm7 ;B Left 1bit shift !PSLLW mm2, mm7 ;C Left 1bit shift !PSLLW mm2, mm7 ;D Left 1bit shift !PSLLW mm2, mm7 ;E Left 1bit shift !PSLLW mm2, mm7 ;F Left 1bit shift !PSLLW mm2, mm7 ;0 Left 1bit shift XOR_R9_R9_255 !MOV R9, [v_RNA] MOVZX_R9 !MOV R9, [p.p_CMM_in] ; Dont set NEGtoNEG dame for clear MOV_R9_R9_Up_Down !NOP QWORD [Rip] !NOP QWORD [R9] !MOVQ mm2, R9 ; !JMP CopyMemoryMace_LOOP_Start FNOP512_beforeLOOP !CopyMemoryMace_LOOP_Start: !NOP QWORD [Rip] !NOP QWORD [Rip] !FNOP !FNOP !FNOP !FNOP !MOV Rcx, Rdx !SUB Rcx, [v_RD64] !JBE CopyMemoryMace_LOOP_Finish_Start !MOV Rdx, Rcx XOR_Rcx_Rcx !INC cl !INC cl !INC cl !INC cl !SHL cl, cl ; cx = 64 !JMP CopyMemoryMace_LOOP FNOP512_beforeLOOP !CopyMemoryMace_LOOP: CopyMemoryMace_Inside !JNZ CopyMemoryMace_LOOP !XCHG cl, cl MOVZX_Rcx !JMP CopyMemoryMace_LOOP_Start ; !CopyMemoryMace_LOOP_Finish_Start: !NOP QWORD [Rip] !NOP QWORD [Rip] !FNOP !FNOP !FNOP !FNOP !MOV Rcx, Rdx MOV_Rcx_Rcx_Down !JMP CopyMemoryMace_LOOP_Finish FNOP512_beforeLOOP !CopyMemoryMace_LOOP_Finish: CopyMemoryMace_Inside !JNZ CopyMemoryMace_LOOP_Finish !XCHG cl, cl MOVZX_Rcx !EMMS CopyMemoryMace_End: !NOP QWORD [Rip] !NOP QWORD [Rip] EndProcedure
ES111 と ES112 の違いについて、どのように判断して変更したのか、理解できますか?
MajiorityCamisole ES112 Generate source codeDebug "; MajiorityCamisole ExtremeStabilizer 112 (2023 01 23)" Debug "; RDSEED BLSRx64 CPU reg. Stabilizer for network streaming anime video" Debug "; Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)" Debug "; Design based by Military LAB-AI designed (Customized Hiroyuki Yokota)" Debug "" Debug "MessageRequester("+Chr(34)+"END"+Chr(34)+","+Chr(34)+"Compiler options Executable Format Console And CPU With MMX"+Chr(34)+") : End" Debug "" !extrn PB_RandomSeed Global NewList Reg64.s() AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx" AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx" AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi" AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi" AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9" AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11" AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13" AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15" Global NewList Reg64A.s() AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx" AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi" AddElement(Reg64A()) : Reg64A() ="R9" : AddElement(Reg64A()) : Reg64A() ="R11" AddElement(Reg64A()) : Reg64A() ="R13" : AddElement(Reg64A()) : Reg64A() ="R15" Global NewList Reg64B.s() AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx" AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi" AddElement(Reg64B()) : Reg64B() ="R8" : AddElement(Reg64B()) : Reg64B() ="R10" AddElement(Reg64B()) : Reg64B() ="R12" : AddElement(Reg64B()) : Reg64B() ="R14" !RDRAND Rcx !CALL QWORD PB_RandomSeed RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) NewMap Reg16.s() Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx" Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di" Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w" Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w" NewMap Reg8.s() Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl" Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil" Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b" Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b" ForEach Reg64() Debug "Macro BLSR_"+Reg64()+"_x64" For Loop=1 To 64 Debug " !BLSR "+Reg64()+", "+Reg64() Next Debug "EndMacro" Debug "" Next ForEach Reg64() Debug "Macro SHR_"+Reg64()+"_x64" For Loop=1 To 64 Debug " !SHR "+Reg64()+", 1" Next Debug "EndMacro" Debug "" Next ForEach Reg64() Debug "Macro MOV_"+Reg64()+"_Up_Down" Debug " !MOV "+Reg8(Reg64())+", "+Reg8(Reg64()) If Len(Reg8(Reg64()))=2 Debug " !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h") EndIf Debug " !MOV "+Reg16(Reg64())+", "+Reg16(Reg64()) Debug " !MOV "+Reg64()+", "+Reg64() Debug " !MOV "+Reg16(Reg64())+", "+Reg16(Reg64()) If Len(Reg8(Reg64()))=2 Debug " !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h") EndIf Debug " !MOV "+Reg8(Reg64())+", "+Reg8(Reg64()) Debug "EndMacro" Debug "" Next Debug "Macro Set_CL1" Debug " BLSR_Rcx_x64" Debug " !INC cl" Debug " ; cx = 1" Debug "EndMacro" Debug "" Debug "Macro Set_CL8" Debug " BLSR_Rcx_x64" Debug " !INC cl" Debug " !INC cl" Debug " !SHL cl, cl" Debug " ; cx = 8" Debug "EndMacro" Debug "" Debug "Macro Set_CL64" Debug " BLSR_Rcx_x64" Debug " !INC cl" Debug " !INC cl" Debug " !INC cl" Debug " !INC cl" Debug " !SHL cl, cl" Debug " ; cx = 64" Debug "EndMacro" Debug "" Debug "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL" Debug " BLSR_Rcx_x64" Debug " Set_CL1" Debug " MOVZX_Rcx" Debug " !MOVQ mm1, Rcx" For Loop=1 To 16 Debug " !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift" Next Debug " !MOVQ mm0, mm1" For Roop=1 To 7 For Loop=1 To 16 Debug " !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift" Next Next Debug "EndMacro" Debug "" Macro SIMPLE_MOVE_REGISTERS_Up_and_Down ForEach Reg64A() Debug " MOV_"+Reg64A()+"_Up_Down" Next ForEach Reg64B() Debug " MOV_"+Reg64B()+"_Up_Down" Next EndMacro Debug "Macro MOVZX_Rcx" Debug " !MOVZX cx, cl" Debug " !MOVZX Rcx, cl" Debug " !MOVZX cx, cl" Debug "EndMacro" Debug "" Macro BeforeProcedureRegisters_1st Debug " ALL_MMX_CLEAR_SHIFTWORD_INC_CL" ForEach Reg64A() Debug " MOV_"+Reg64A()+"_Up_Down" Next Loop=0 ForEach Reg64A() Debug " !MOVQ mm"+Str(Loop)+", "+Reg64A() Loop + 1 Next EndMacro Macro BeforeProcedureRegisters_2nd Loop=0 ForEach Reg64A() Debug " !MOVQ "+Reg64A()+", mm"+Str(Loop) Loop + 1 Next ForEach Reg64A() Debug " MOV_"+Reg64A()+"_Up_Down" Next Debug " ;" ForEach Reg64B() Debug " MOV_"+Reg64B()+"_Up_Down" Next Loop=0 ForEach Reg64B() Debug " !MOVQ mm"+Str(Loop)+", "+Reg64B() Loop + 1 Next EndMacro Macro BeforeProcedureRegisters_3rd Loop=0 ForEach Reg64B() Debug " !MOVQ "+Reg64B()+", mm"+Str(Loop) Loop + 1 Next ForEach Reg64B() Debug " MOV_"+Reg64B()+"_Up_Down" Next Debug " !EMMS" EndMacro Macro BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !SMSW "+Reg64A() Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64A()+"_x64" Next BeforeProcedureRegisters_2nd ForEach Reg64B() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !SMSW "+Reg64B() Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64B()+"_x64" Next BeforeProcedureRegisters_3rd EndMacro Macro BeforeProcedureRegisters_RDSEED_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !RDSEED "+Reg64A() Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64A()+"_x64" Next BeforeProcedureRegisters_2nd ForEach Reg64B() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !RDSEED "+Reg64B() Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64B()+"_x64" Next BeforeProcedureRegisters_3rd EndMacro Macro BeforeProcedureRegisters_SMSW_SHR BeforeProcedureRegisters_1st ForEach Reg64A() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !RDSEED "+Reg64A() Debug " !NOP QWORD [Rip-36]" Debug " SHR_"+Reg64A()+"_x64" Next BeforeProcedureRegisters_2nd ForEach Reg64B() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !RDSEED "+Reg64B() Debug " !NOP QWORD [Rip-36]" Debug " SHR_"+Reg64B()+"_x64" Next BeforeProcedureRegisters_3rd EndMacro ;- Start Debug ";- PureBasicStart" BeforeProcedureRegisters_SMSW_SHR Debug "If OpenConsole("+Chr(34)+"MajiorityCamisole ES112 setup To General-purpose 64-bit registers."+Chr(34)+")" Debug " PrintN("+Chr(34)+"Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)"+Chr(34)+")" Debug " PrintN("+Chr(34)+"-"+Chr(34)+")" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !StartStabilizer:" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " PrintN("+Chr(34)+"Setup 1... SMSW BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down For Roop=1 To 64 Debug " ; "+Str(Roop)+" Setup" BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " BLSR_Rcx_x64" Debug " Set_CL64" Debug " MOVZX_Rcx" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" !RDRAND Rcx !CALL QWORD PB_RandomSeed RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) Next SortList(Reg64(), #PB_Sort_Ascending) SortList(Reg64A(), #PB_Sort_Ascending) SortList(Reg64B(), #PB_Sort_Ascending) BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " PrintN("+Chr(34)+"Finished"+Chr(34)+")" Debug " BLSR_Rax_x64" Debug " BLSR_Rcx_x64" Debug " Set_CL64" Debug " MOVZX_Rcx" Debug " !MOV Rax, Rcx" Debug " Set_CL8" Debug " !SHL Rax, cl" Debug " !MOV Rcx, Rax" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" BeforeProcedureRegisters_SMSW_SHR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !JMP QWORD StartStabilizer" Debug " CloseConsole()" Debug "EndIf" Debug "Sleep_(0)" Debug "End" CallDebugger End
Debug "; MajiorityCamisole ExtremeStabilizer 111 (2023 01 22)" Debug "; RDSEED SHRx64 CPU reg. Stabilizer for network streaming anime video" Debug "; Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)" Debug "; Design based by Military LAB-AI designed (Customized Hiroyuki Yokota)" Debug "" Debug "MessageRequester("+Chr(34)+"END"+Chr(34)+","+Chr(34)+"Compiler options Executable Format Console And CPU With MMX"+Chr(34)+") : End" Debug "" !extrn PB_RandomSeed Global NewList Reg64.s() AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx" AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx" AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi" AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi" AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9" AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11" AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13" AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15" Global NewList Reg64A.s() AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx" AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi" AddElement(Reg64A()) : Reg64A() ="R9" : AddElement(Reg64A()) : Reg64A() ="R11" AddElement(Reg64A()) : Reg64A() ="R13" : AddElement(Reg64A()) : Reg64A() ="R15" Global NewList Reg64B.s() AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx" AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi" AddElement(Reg64B()) : Reg64B() ="R8" : AddElement(Reg64B()) : Reg64B() ="R10" AddElement(Reg64B()) : Reg64B() ="R12" : AddElement(Reg64B()) : Reg64B() ="R14" !RDRAND Rcx !CALL QWORD PB_RandomSeed RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) NewMap Reg16.s() Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx" Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di" Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w" Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w" NewMap Reg8.s() Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl" Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil" Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b" Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b" ForEach Reg64() Debug "Macro SHR_"+Reg64()+"_x64" For Loop=1 To 64 Debug " !SHR "+Reg64()+", 1" Next Debug "EndMacro" Debug "" Next ForEach Reg64() Debug "Macro MOV_"+Reg64()+"_Up_Down" Debug " !MOV "+Reg8(Reg64())+", "+Reg8(Reg64()) If Len(Reg8(Reg64()))=2 Debug " !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h") EndIf Debug " !MOV "+Reg16(Reg64())+", "+Reg16(Reg64()) Debug " !MOV "+Reg64()+", "+Reg64() Debug " !MOV "+Reg16(Reg64())+", "+Reg16(Reg64()) If Len(Reg8(Reg64()))=2 Debug " !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h") EndIf Debug " !MOV "+Reg8(Reg64())+", "+Reg8(Reg64()) Debug "EndMacro" Debug "" Next Debug "Macro Set_CL1" Debug " SHR_Rcx_x64" Debug " !INC cl" Debug " ; cx = 1" Debug "EndMacro" Debug "" Debug "Macro Set_CL8" Debug " SHR_Rcx_x64" Debug " !INC cl" Debug " !INC cl" Debug " !SHL cl, cl" Debug " ; cx = 8" Debug "EndMacro" Debug "" Debug "Macro Set_CL64" Debug " SHR_Rcx_x64" Debug " !INC cl" Debug " !INC cl" Debug " !INC cl" Debug " !INC cl" Debug " !SHL cl, cl" Debug " ; cx = 64" Debug "EndMacro" Debug "" Debug "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL" Debug " SHR_Rcx_x64" Debug " Set_CL1" Debug " MOVZX_Rcx" Debug " !MOVQ mm1, Rcx" For Loop=1 To 16 Debug " !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift" Next Debug " !MOVQ mm0, mm1" For Roop=1 To 7 For Loop=1 To 16 Debug " !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift" Next Next Debug "EndMacro" Debug "" Macro SIMPLE_MOVE_REGISTERS_Up_and_Down ForEach Reg64A() Debug " MOV_"+Reg64A()+"_Up_Down" Next ForEach Reg64B() Debug " MOV_"+Reg64B()+"_Up_Down" Next EndMacro Debug "Macro MOVZX_Rcx" Debug " !MOVZX cx, cl" Debug " !MOVZX Rcx, cl" Debug " !MOVZX cx, cl" Debug "EndMacro" Debug "" Macro BeforeProcedureRegisters_1st Debug " ALL_MMX_CLEAR_SHIFTWORD_INC_CL" ForEach Reg64A() Debug " MOV_"+Reg64A()+"_Up_Down" Next Loop=0 ForEach Reg64A() Debug " !MOVQ mm"+Str(Loop)+", "+Reg64A() Loop + 1 Next ForEach Reg64A() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" EndMacro Macro BeforeProcedureRegisters_2nd Debug " !NOP QWORD [Rip-36]" Debug " SHR_"+Reg64A()+"_x64" Next Loop=0 ForEach Reg64A() Debug " !MOVQ "+Reg64A()+", mm"+Str(Loop) Loop + 1 Next ForEach Reg64A() Debug " MOV_"+Reg64A()+"_Up_Down" Next Debug " ;" ForEach Reg64B() Debug " MOV_"+Reg64B()+"_Up_Down" Next Loop=0 ForEach Reg64B() Debug " !MOVQ mm"+Str(Loop)+", "+Reg64B() Loop + 1 Next ForEach Reg64B() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" EndMacro Macro BeforeProcedureRegisters_3rd Debug " !NOP QWORD [Rip-36]" Debug " SHR_"+Reg64B()+"_x64" Next Loop=0 ForEach Reg64B() Debug " !MOVQ "+Reg64B()+", mm"+Str(Loop) Loop + 1 Next ForEach Reg64B() Debug " MOV_"+Reg64B()+"_Up_Down" Next Debug " !EMMS" EndMacro Macro BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_1st Debug " !SMSW "+Reg64A() BeforeProcedureRegisters_2nd Debug " !SMSW "+Reg64B() BeforeProcedureRegisters_3rd EndMacro Macro BeforeProcedureRegisters_RDSEED_BLSR BeforeProcedureRegisters_1st Debug " !RDSEED "+Reg64A() BeforeProcedureRegisters_2nd Debug " !RDSEED "+Reg64B() BeforeProcedureRegisters_3rd EndMacro ;- Start Debug ";- PureBasicStart" BeforeProcedureRegisters_SMSW_BLSR Debug "If OpenConsole("+Chr(34)+"MajiorityCamisole ES111 setup To General-purpose 64-bit registers."+Chr(34)+")" Debug " PrintN("+Chr(34)+"Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Location: JAPAN , I am finding to very attractive females."+Chr(34)+")" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !StartStabilizer:" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " PrintN("+Chr(34)+"Setup 1... SMSW SHRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED SHRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down For Roop=1 To 64 Debug " ; "+Str(Roop)+" Setup" BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " SHR_Rcx_x64" Debug " Set_CL64" Debug " MOVZX_Rcx" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD PB_Delay" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" !RDRAND Rcx !CALL QWORD PB_RandomSeed RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) Next SortList(Reg64(), #PB_Sort_Ascending) SortList(Reg64A(), #PB_Sort_Ascending) SortList(Reg64B(), #PB_Sort_Ascending) BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " PrintN("+Chr(34)+"Finished"+Chr(34)+")" Debug " SHR_Rax_x64" Debug " SHR_Rcx_x64" Debug " Set_CL64" Debug " MOVZX_Rcx" Debug " !MOV Rax, Rcx" Debug " Set_CL8" Debug " !SHL Rax, cl" Debug " !MOV Rcx, Rax" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD PB_Delay" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !JMP QWORD StartStabilizer" Debug " CloseConsole()" Debug "EndIf" Debug "Delay(800)" Debug "End" CallDebugger End
ES113 は NBOX に乗るとして、その相手の許容度を表すとしよう
MajiorityCamisole ES113 Generate source codeDebug " PrintN("+Chr(34)+"Setup 1... SMSW BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down For Roop=1 To 150 Debug " ; "+Str(Roop)+" Setup" BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " BLSR_Rcx_x64" NBOX = Random(168, 138) Select NBOX Case 138 To 147 Debug " Set_CL64" Case 148 To 151 Debug " !INC ch" Case 152 To 156 Debug " !INC ch" Debug " !INC ch" Case 157 To 161 Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" Case 162 To 168 Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" Debug " !INC ch" EndSelect Debug " MOVZX_Rcx" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]"
ES114 正弦波の周期によって、17ms から 1000ms の調整タイミングへ変更。約114秒の処理を繰り返しています。大きく遅延なら、*5000 にすると最高5秒まで調整を遅延できます。
MajiorityCamisole ES114 Generate source codeDebug " PrintN("+Chr(34)+"Setup 1... SMSW BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down Global SineWave.i, SineBits.i, SineAngels.i, CountBits.i, CountChk.i ; totalWave = 114581 For SineAngels=1 To 178 CountChk = 0 Debug " ; "+Str(SineAngels)+" Setup" BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " BLSR_Rcx_x64" Debug " BLSR_R8_x64" SineWave = Abs(Round(Sin(Radian(SineAngels))*1000, #PB_Round_Nearest)) !MOV Rax, [v_SineWave] !MOV R8, Rax !MOV [v_SineBits], R8 Debug "; "+Str(SineWave) totalWave.i + SineWave Debug " !INC cl" For CountBits=63 To 1 Step -1 If SineBits&(2<<CountBits) CountChk+1 Debug " !INC R8b" Debug " !SHL R8, cl" ElseIf CountChk Debug " !SHL R8, cl" EndIf Next If SineBits&2 Debug " !INC R8b" Debug " !SHL R8, cl" Else Debug " !SHL R8, cl" EndIf If SineBits&1 Debug " !INC R8b" EndIf Debug " !XCHG Rcx, R8" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" !RDRAND Rcx !CALL QWORD PB_RandomSeed RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) Next SortList(Reg64(), #PB_Sort_Ascending) SortList(Reg64A(), #PB_Sort_Ascending) SortList(Reg64B(), #PB_Sort_Ascending) BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " PrintN("+Chr(34)+"Finished"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !JMP QWORD StartStabilizer" Debug " CloseConsole()"
今日は「閏日」です。そこで「Windowsアイコンキャッシュファイルのアクセス日付」を根拠にして、週休4日制を実現しています。高所得の国民が増え過ぎたら、平均年収を超えている人だけ「週休4日制」にしていれば、経済の格差は生まれにくいと思います。
MajiorityCamisole ES115 Generate source codeDebug "Global IconCachePath.s, IconCacheDate.i" Debug "IconCachePath = ReplaceString(GetTemporaryDirectory(), "+Chr(34)+"Temp\"+Chr(34)+", "+Chr(34)+"IconCache.db"+Chr(34)+")" Debug "IconCacheDate = DayOfWeek(GetFileDate(IconCachePath, #PB_Date_Accessed))%2" Debug "; 0 : Sunday 1 : Monday 2 : Tuesday 3 : Wednesday 4 : Thursday 5 : Friday 6 : Saturday" Debug "; 0 : Sunday 1 : Monday 0 : Tuesday 1 : Wednesday 0 : Thursday 1 : Friday 0 : Saturday" Debug "If OpenConsole("+Chr(34)+"MajiorityCamisole ES115 setup To General-purpose 64-bit registers."+Chr(34)+") and IconCacheDate"
RDRAND Word を2つ取得して、最下位2ビットが同じになるまで待機命令を繰り返す。配布した実行形式は ES114 から変更したバージョンです。オーディオに求められるのは「飽きないこと」ですので、その不安定な感覚を意図的に作っています。
MajiorityCamisole ES116 Generate source codeDebug " !StartStabilizer:" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " BLSR_Rcx_x64" Debug " !INC cl" Debug " !INC cl" Debug " !INC cl" Debug " !MOVZX cx, cl" Debug " !RDRAND R8w" Debug " !RDRAND R9w" Debug " !AND R8w, cx" Debug " !AND R9w, cx" Debug " !CMP R8w, R9w" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !JZ QWORD StartStabilizer_in" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" ; Debug " PrintN("+Chr(34)+"Delay process 16384 ms"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down Debug " BLSR_Rax_x64" Debug " BLSR_Rcx_x64" Debug " Set_CL64" Debug " MOVZX_Rcx" Debug " !XCHG Rax, Rcx" Debug " Set_CL8" Debug " !SHL Rax, cl" Debug " !XCHG Rcx, Rax" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !JMP QWORD StartStabilizer" ; Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !StartStabilizer_in:" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " PrintN("+Chr(34)+"Setup 1... SMSW BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")"
計算結果の確認には CASIO 高精度計算サービス を使用しています。円周率を使用した計算では「定数」「倍精度変数」を使用して計算すると、円周率の有効桁数は「ソースコードへ記述した桁数」にならず、その誤差によって「スマホ難聴問題」を引き起こしたと考えられます。この他に、強い光を発して熱により材料を加工するレーザー操作技術にも同様の問題が起きており、半導体露光装置の改善が求められていました。必要のない高精度演算は「軍事技術として監視される対象」であるので、どうしても必要と判断される案件のみ、許可されているようです。禁止されてる精度になれば、裏システムを通じて「それ以上に精度を上げるな」とテレパシーのように聞こえて、インターネット接続しなくてもパソコンの操作を受け付けない状態になります。
倍精度データの畳み込み演算に使用する「4倍精度の円周率」テーブル作成Procedure CreateSincTable(dummy1.i, Mask.i, sample.i, *sinc_table_pv) Protected k.d, kk.d, CST_D0.i, CST_D4.i, CST_D8.i, CST_D25.i, Freq_d1.d, Freq_d2.d Protected Freq_d3.d, Freq_d4.d ; // 1st 3.141592653 BLSR_Rcx_x64 BLSR_R8_x64 !INC cl MOVZX_Rcx MOVZX_R8 ; 100000000001001001000011111101101010100001011111110100100111000 !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl ; !MOVQ xmm5, R8 !MOVSD [p.v_Freq_d1], xmm5 ; // 1st 3.141592653 End ; ; // 2nd 589793 BLSR_Rcx_x64 BLSR_R9_x64 !INC cl MOVZX_Rcx MOVZX_R9 ; 11111000000100010000111101111111000100011110111011100100011001 !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !MOVQ xmm5, R9 !MOVSD [p.v_Freq_d2], xmm5 ; // 2nd 589793 End ; ; // 3rd 238462 BLSR_Rcx_x64 BLSR_R8_x64 !INC cl MOVZX_Rcx MOVZX_R8 ; 11110010110001001011101101100011110100110011000000010010000001 !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !SHL R8, cl !INC R8b !MOVQ xmm5, R8 !MOVSD [p.v_Freq_d3], xmm5 ; // 3rd 238462 End ; ; // 4th 643383 BLSR_Rcx_x64 BLSR_R9_x64 !INC cl MOVZX_Rcx MOVZX_R9 ; 11101110001000010011100110101100100111000100000011010110110011 !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !SHL R9, cl !SHL R9, cl !SHL R9, cl !INC R9b !SHL R9, cl !INC R9b !MOVQ xmm5, R9 !MOVSD [p.v_Freq_d4], xmm5 ; // 4th 643383 End ; ;- PI = 3.1415926535897932384626433832795 ; 3.141592653 589793 238462 643383 ; ; 2022/12/05 18:12 Denshi sukasi kieru taisaku is no think and Let's go! ; ; Debug "StrD(Freq_d1, 35)" ; Debug StrD(Freq_d1, 35) ; Debug "StrD(Freq_d2, 35)" ; Debug StrD(Freq_d2, 35) ; Debug "StrD(Freq_d3, 35)" ; Debug StrD(Freq_d3, 35) ; Debug "StrD(Freq_d4, 35)" ; Debug StrD(Freq_d4, 35) ; Debug "StrD(Freq_d1+Freq_d2, 35)" ; Debug StrD(Freq_d1+Freq_d2, 35) ; Debug "StrD(Freq_d2+Freq_d3, 35)" ; Debug StrD(Freq_d2+Freq_d3, 35) ; Debug "StrD(Freq_d3+Freq_d4, 35)" ; Debug StrD(Freq_d3+Freq_d4, 35) ; CallDebugger ; ; StrD(Freq_d1, 35) ; ; 3.14159265300000000000000000000000000 ; ; StrD(Freq_d2, 35) ; ; 0.00000000058979300000000012000000000 ; ; StrD(Freq_d3, 35) ; ; 0.00000000000000023846200000000002000 ; ; StrD(Freq_d4, 35) ; ; 0.00000000000000000000064338300000000 ; ; StrD(Freq_d1+Freq_d2, 35) ; ; 3.14159265358979310000000000000000000 ; ; StrD(Freq_d2+Freq_d3, 35) ; ; 0.00000000058979323846200008000000000 ; ; StrD(Freq_d3+Freq_d4, 35) ; ; 0.00000000000000023846264338300002000 BLSR_R8_x64 BLSR_Rcx_x64 !INC cl MOVZX_Rcx !SHL R8, cl !SHR R8, cl !MOVNTI [p.v_CST_D0], R8 !NOP QWORD [Rip] !NOP QWORD [p.v_CST_D0] !INC R8b !INC R8b !INC R8b !INC R8b MOVZX_R8 !MOVNTI [p.v_CST_D4], R8 !NOP QWORD [Rip] !NOP QWORD [p.v_CST_D4] !INC R8b !INC R8b !INC R8b !INC R8b MOVZX_R8 !MOVNTI [p.v_CST_D8], R8 !NOP QWORD [Rip] !NOP QWORD [p.v_CST_D8] BLSR_R8_x64 BLSR_Rcx_x64 !INC cl MOVZX_Rcx !SHL R8, cl !SHR R8, cl !INC R8b !SHL R8b, cl !INC R8b !SHL R8b, cl !SHL R8b, cl !SHL R8b, cl !INC R8b MOVZX_R8 !MOVNTI [p.v_CST_D25], R8 !NOP QWORD [Rip] !NOP QWORD [p.v_CST_D25] ; k = 100/480; CST_D25 / (CST_D25*CST_D4) k = (CST_D25/CST_D25)*CST_D25*CST_D4 kfreq = (CST_D25/CST_D25)* Set_inFreq kk = (CST_D25*CST_D4) / (CST_D25*CST_D4) PokeD(*sinc_table_pv+CST_D8*sample), Sin(SincCalc_A)/SincCalc_B) ; EndProcedure Macro SincCalc_A (Freq_d1 * I + k * Freq_d2 / kfreq + Freq_d2 * I + k * Freq_d1 / kfreq ) + (Freq_d3 * I + k * Freq_d4 / kfreq + Freq_d4 * I + k * Freq_d3 / kfreq ) EndMacro Macro SincCalc_B (Freq_d2 * k / kfreq + I * Freq_d1 + Freq_d1 * k / kfreq + I * Freq_d2) + (Freq_d4 * k / kfreq + I * Freq_d3 + Freq_d3 * k / kfreq + I * Freq_d4) EndMacro
ES116 は ES114 よりも良くなったと評価されていません。LZCNT という Zero bits をカウントする処理によって、初期化を2重化して改善してみました。改善処理時間を2分から20秒へ短縮しました。RDRAND を2回呼び出して、LZCNT により Zero bits の結果が同じである時に、改善処理を実行します。ソースコードの差分は ES114 からの更新となります。
CMP R8b, R9b の処理時、MOV_UpDown 処理を含めていませんと、CMP 実行前に物理レジスタの更新処理が「クロック制御なく実行」され、ジッターを生じる原因となります。
MajiorityCamisole ES117 Generate source codeForEach Reg64() Debug "Macro BLSR_"+Reg64()+"_x64" Debug " !LZCNT "+Reg64()+", "+Reg64() For Loop=1 To 64 Debug " !BLSR "+Reg64()+", "+Reg64() Next Debug "EndMacro" Debug "" Next ForEach Reg64() Debug "Macro SHR_"+Reg64()+"_x64" Debug " !LZCNT "+Reg64()+", "+Reg64() For Loop=1 To 64 Debug " !SHR "+Reg64()+", 1" Next Debug "EndMacro" Debug "" Next Debug " !StartStabilizer:" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !RDRAND R8" Debug " !LZCNT R8, R8" Debug " !RDRAND R9" Debug " !LZCNT R9, R9" Debug " !MOV R8, R8" Debug " !MOV R8w, R8w" Debug " !MOV R8b, R8b" Debug " !MOV R9, R9" Debug " !MOV R9w, R9w" Debug " !MOV R9b, R9b" Debug " !CMP R8b, R9b" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !JZ QWORD StartStabilizer_in" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" ; Debug " PrintN("+Chr(34)+"Delay process 16384 ms"+Chr(34)+")" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !MOV cl, 0" Debug " !MOV ch, 64" Debug " !MOV cl, cl" Debug " !MOV ch, ch" Debug " !MOV cx, cx" Debug " !MOVZX Rcx, cx" Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !JMP QWORD StartStabilizer" ; Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !StartStabilizer_in:" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " PrintN("+Chr(34)+"Setup 1... SMSW LZCNT BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED LZCNT BLSRx64 CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down Global SineWave.i, SineBits.i, SineAngels.i, CountBits.i, CountChk.i ; totalWave = 19,356 ms For SineAngels=1 To 178 Step 6 CountChk = 0 Debug " ; "+Str(SineAngels)+" Setup"
ForEach Reg64() Debug "Macro BLSR_"+Reg64()+"_x64" Debug " !LZCNT "+Reg64()+", "+Reg64() For Loop=1 To 32 Debug " !BLSR "+Reg64()+", "+Reg64() Next Debug " !LZCNT "+Reg64()+", "+Reg64() For Loop=1 To 32 Debug " !BLSR "+Reg64()+", "+Reg64() Next Debug "EndMacro" Debug "" Next ForEach Reg64() Debug "Macro BLSR_"+Reg64()+"_x64" Debug " !LZCNT "+Reg64()+", "+Reg64() For Loop=1 To 6 Debug " !BLSR "+Reg64()+", "+Reg64() Next Debug "EndMacro" Debug "" Next
BZHI r8, r8, r8 と同じレジスタ使用時のみ、Intel secret service から許可されてます。
Debug "; MajiorityCamisole 153 (2023 03 17)" Debug "; RDSEED BLSRx64 BZHI CPU reg. Stabilizer for any voltage problems" ForEach Reg64() Debug "Macro BLSR_"+Reg64()+"_x64" For Loop=1 To 64 Debug " !BLSR "+Reg64()+", "+Reg64() Next Debug " !BZHI "+Reg64()+", "+Reg64()+", "+Reg64() Debug "EndMacro" Debug "" Next ForEach Reg64() Debug "Macro SHR_"+Reg64()+"_x64" For Loop=1 To 64 Debug " !SHR "+Reg64()+", 1" Next Debug " !BZHI "+Reg64()+", "+Reg64()+", "+Reg64() Debug "EndMacro" Debug "" Next ;- Start Debug ";- PureBasicStart" BeforeProcedureRegisters_RDSEED_SHR Debug "If OpenConsole("+Chr(34)+"MajiorityCamisole 153 setup To General-purpose 64-bit registers."+Chr(34)+")" Debug " PrintN("+Chr(34)+"Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)"+Chr(34)+")" Debug " PrintN("+Chr(34)+"-"+Chr(34)+")" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !StartStabilizer:" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " PrintN("+Chr(34)+"Setup 1... SMSW BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down
伊勢神宮のお土産「赤福」の伊勢だより 2024年 3月 2日 「おうむ岩、その名の通り、声にした言葉がそのまま返ってくる岩が、内宮から伊勢神宮別宮の「伊雑宮」へ向かう途中、磯部町恵利原にあります。」以下、略、で紹介されています。
おうむ岩では、声が大岩壁に当たり、音波は分割されて、音波の「分割軽量化」が起きると、声よりも速く遠い場所で反射音が聞こえて来ます。
よく深夜にやってしまう H-NEXT を小さい音量で見ていたのに、家屋の外へ漏れていました。これは「演技の叫び声」が「細かく分断されて音波となる」という都合によって、速い音波で家屋の外へ出てしまう。それを音楽や街宣活動の声にも適用する技術と考えましょう。
CruseResampler [4096 samples] [O 1skip] 出力フォルダ " O 4096 AD 176.4kHz" CruseResampler [4096 samples] [S 3skip] 出力フォルダ " S 4096 AD 176.4kHz" CruseResampler [4096 samples] [W 7skip] 出力フォルダ " W 4096 AD 176.4kHz" CruseResampler [4096 samples] [X 15skip] 出力フォルダ " X 4096 AD 176.4kHz" CruseResampler [4096 samples] [Y 31skip] 出力フォルダ " Y 4096 AD 176.4kHz" CruseResampler [4096 samples] [Z 63skip] 出力フォルダ " Z 4096 AD 176.4kHz" xrecode3 [DSD] DSD64 2.8MHz .dff 変換 https://xrecode.com/ CruseResampler [1024 samples] [O 1skip] 出力フォルダ " O 1024 AD 176.4kHz" xrecode3 [MP3] LAME V0 (MAX VBR) JointStereo .mp3 変換
最後の [Z 63skip] を繰り返すとスピーカーを破損するので注意!
音波分割 2 × 4 × 8 × 16 × 32 × 64 = 2,097,152 way を再現する。
2,097,152 way × 64 = 132,120,576 way を鳴らそうとすると破損すると判明済み。
CruseResampler [4096 samples] [Z 63skip] 出力フォルダ " Z 4096 AD 176.4kHz" CruseResampler [4096 samples] [Y 31skip] 出力フォルダ " Y 4096 AD 176.4kHz" CruseResampler [4096 samples] [X 15skip] 出力フォルダ " X 4096 AD 176.4kHz" CruseResampler [4096 samples] [W 7skip] 出力フォルダ " W 4096 AD 176.4kHz" CruseResampler [4096 samples] [S 3skip] 出力フォルダ " S 4096 AD 176.4kHz" CruseResampler [4096 samples] [O 1skip] 出力フォルダ " O 4096 AD 176.4kHz" CruseResampler [1024 samples] [O 1skip] 出力フォルダ " O 1024 AD 176.4kHz" xrecode3 [MP3] LAME V0 (MAX VBR) JointStereo .mp3 変換
Procedure ChannelStrip(*inbuf, length.i) Macro_ChannelStrip Protected CT_pos.i, CT_Rand.d CT_Rand = F_0_732774533_d + Random(D9999)*F_0_00000001_d For CT_pos=D0 To length Step 16 PokeF(*inbuf+CT_pos, PeekF(*inbuf+CT_pos) * CT_Rand) PokeF(*inbuf+CT_pos+D4, PeekF(*inbuf+CT_pos+D4) * CT_Rand) Next EndProcedure 適用範囲 CruseBusterElegant153 CruseBusterElementary153 CruseEleganceRadio153 CruseResampler153 Nontallion153 Saverage153 SistersElementary153 SistersResampler153
Procedure ChannelStrip(*inbuf, length.i) Macro_ChannelStrip Protected CT_pos.i, CT_Rand.d CT_Rand = Log10(D8) For CT_pos=D0 To length Step 16 PokeF(*inbuf+CT_pos, PeekF(*inbuf+CT_pos) * CT_Rand) PokeF(*inbuf+CT_pos+D4, PeekF(*inbuf+CT_pos+D4) * CT_Rand) Next EndProcedure
; CRC32—Accumulate CRC32 Value ; BIT_REFLECT64: DST[63-0] = SRC[0-63] ; BIT_REFLECT32: DST[31-0] = SRC[0-31] ; BIT_REFLECT16: DST[15-0] = SRC[0-15] ; BIT_REFLECT8: DST[7-0] = SRC[0-7] Macro BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CRC32 "+Reg64A()+", QWORD [Rip]" Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64A()+"_x64" Next BeforeProcedureRegisters_2nd ForEach Reg64B() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !CRC32 "+Reg64B()+", QWORD [Rip]" Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64B()+"_x64" Next BeforeProcedureRegisters_3rd EndMacro ; MC154 Debug " PrintN("+Chr(34)+"Setup 1... SMSW LZCNT BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... CRC32 LZCNT BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... RDSEED LZCNT BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 4... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down Global SineWave.i, SineBits.i, SineAngels.i, CountBits.i, CountChk.i ; totalWave = 19,356 ms For SineAngels=1 To 178 Step 6 CountChk = 0 Debug " ; "+Str(SineAngels)+" Setup" BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down ; MC155 Debug " PrintN("+Chr(34)+"Setup 1... SMSW BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... CRC32 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 4... Logical to Physical CPU reg. Balancer"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down Global SineWave.i, SineBits.i, SineAngels.i, CountBits.i, CountChk.i ; totalWave = 114581 For SineAngels=1 To 178 CountChk = 0 Debug " ; "+Str(SineAngels)+" Setup" BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down
!extrn PB_RandomSeed SetPriorityClass_(GetCurrentProcess_(),#IDLE_PRIORITY_CLASS) Global NewList Buffer.s() Macro BLSR_Rax_x64 AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BLSR Rax, Rax" AddElement(Buffer()) : Buffer() = "BZHI Rax, Rax, Rax" EndMacro Macro BLSR_Rbx_x64 AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BLSR Rbx, Rbx" AddElement(Buffer()) : Buffer() = "BZHI Rbx, Rbx, Rbx" EndMacro Macro BLSR_Rcx_x64 AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BLSR Rcx, Rcx" AddElement(Buffer()) : Buffer() = "BZHI Rcx, Rcx, Rcx" EndMacro Macro BLSR_Rdx_x64 AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BLSR Rdx, Rdx" AddElement(Buffer()) : Buffer() = "BZHI Rdx, Rdx, Rdx" EndMacro Macro BLSR_Rsp_x64 AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BLSR Rsp, Rsp" AddElement(Buffer()) : Buffer() = "BZHI Rsp, Rsp, Rsp" EndMacro Macro BLSR_Rsi_x64 AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BLSR Rsi, Rsi" AddElement(Buffer()) : Buffer() = "BZHI Rsi, Rsi, Rsi" EndMacro Macro BLSR_Rbp_x64 AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BLSR Rbp, Rbp" AddElement(Buffer()) : Buffer() = "BZHI Rbp, Rbp, Rbp" EndMacro Macro BLSR_Rdi_x64 AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BLSR Rdi, Rdi" AddElement(Buffer()) : Buffer() = "BZHI Rdi, Rdi, Rdi" EndMacro Macro BLSR_R8_x64 AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BLSR R8, R8" AddElement(Buffer()) : Buffer() = "BZHI R8, R8, R8" EndMacro Macro BLSR_R9_x64 AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BLSR R9, R9" AddElement(Buffer()) : Buffer() = "BZHI R9, R9, R9" EndMacro Macro BLSR_R10_x64 AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BLSR R10, R10" AddElement(Buffer()) : Buffer() = "BZHI R10, R10, R10" EndMacro Macro BLSR_R11_x64 AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BLSR R11, R11" AddElement(Buffer()) : Buffer() = "BZHI R11, R11, R11" EndMacro Macro BLSR_R12_x64 AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BLSR R12, R12" AddElement(Buffer()) : Buffer() = "BZHI R12, R12, R12" EndMacro Macro BLSR_R13_x64 AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BLSR R13, R13" AddElement(Buffer()) : Buffer() = "BZHI R13, R13, R13" EndMacro Macro BLSR_R14_x64 AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BLSR R14, R14" AddElement(Buffer()) : Buffer() = "BZHI R14, R14, R14" EndMacro Macro BLSR_R15_x64 AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BLSR R15, R15" AddElement(Buffer()) : Buffer() = "BZHI R15, R15, R15" EndMacro Macro SHR_Rax_x64 AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "SHR Rax, 1" AddElement(Buffer()) : Buffer() = "BZHI Rax, Rax, Rax" EndMacro Macro SHR_Rbx_x64 AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "SHR Rbx, 1" AddElement(Buffer()) : Buffer() = "BZHI Rbx, Rbx, Rbx" EndMacro Macro SHR_Rcx_x64 AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "SHR Rcx, 1" AddElement(Buffer()) : Buffer() = "BZHI Rcx, Rcx, Rcx" EndMacro Macro SHR_Rdx_x64 AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "SHR Rdx, 1" AddElement(Buffer()) : Buffer() = "BZHI Rdx, Rdx, Rdx" EndMacro Macro SHR_Rsp_x64 AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "SHR Rsp, 1" AddElement(Buffer()) : Buffer() = "BZHI Rsp, Rsp, Rsp" EndMacro Macro SHR_Rsi_x64 AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "SHR Rsi, 1" AddElement(Buffer()) : Buffer() = "BZHI Rsi, Rsi, Rsi" EndMacro Macro SHR_Rbp_x64 AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "SHR Rbp, 1" AddElement(Buffer()) : Buffer() = "BZHI Rbp, Rbp, Rbp" EndMacro Macro SHR_Rdi_x64 AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "SHR Rdi, 1" AddElement(Buffer()) : Buffer() = "BZHI Rdi, Rdi, Rdi" EndMacro Macro SHR_R8_x64 AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "SHR R8, 1" AddElement(Buffer()) : Buffer() = "BZHI R8, R8, R8" EndMacro Macro SHR_R9_x64 AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "SHR R9, 1" AddElement(Buffer()) : Buffer() = "BZHI R9, R9, R9" EndMacro Macro SHR_R10_x64 AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "SHR R10, 1" AddElement(Buffer()) : Buffer() = "BZHI R10, R10, R10" EndMacro Macro SHR_R11_x64 AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "SHR R11, 1" AddElement(Buffer()) : Buffer() = "BZHI R11, R11, R11" EndMacro Macro SHR_R12_x64 AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "SHR R12, 1" AddElement(Buffer()) : Buffer() = "BZHI R12, R12, R12" EndMacro Macro SHR_R13_x64 AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "SHR R13, 1" AddElement(Buffer()) : Buffer() = "BZHI R13, R13, R13" EndMacro Macro SHR_R14_x64 AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "SHR R14, 1" AddElement(Buffer()) : Buffer() = "BZHI R14, R14, R14" EndMacro Macro SHR_R15_x64 AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "SHR R15, 1" AddElement(Buffer()) : Buffer() = "BZHI R15, R15, R15" EndMacro Macro MOV_Rax_Up_Down AddElement(Buffer()) : Buffer() = "MOV al, al" AddElement(Buffer()) : Buffer() = "MOV ah, ah" AddElement(Buffer()) : Buffer() = "MOV ax, ax" AddElement(Buffer()) : Buffer() = "MOV Rax, Rax" AddElement(Buffer()) : Buffer() = "MOV ax, ax" AddElement(Buffer()) : Buffer() = "MOV ah, ah" AddElement(Buffer()) : Buffer() = "MOV al, al" EndMacro Macro MOV_Rbx_Up_Down AddElement(Buffer()) : Buffer() = "MOV bl, bl" AddElement(Buffer()) : Buffer() = "MOV bh, bh" AddElement(Buffer()) : Buffer() = "MOV bx, bx" AddElement(Buffer()) : Buffer() = "MOV Rbx, Rbx" AddElement(Buffer()) : Buffer() = "MOV bx, bx" AddElement(Buffer()) : Buffer() = "MOV bh, bh" AddElement(Buffer()) : Buffer() = "MOV bl, bl" EndMacro Macro MOV_Rcx_Up_Down AddElement(Buffer()) : Buffer() = "MOV cl, cl" AddElement(Buffer()) : Buffer() = "MOV ch, ch" AddElement(Buffer()) : Buffer() = "MOV cx, cx" AddElement(Buffer()) : Buffer() = "MOV Rcx, Rcx" AddElement(Buffer()) : Buffer() = "MOV cx, cx" AddElement(Buffer()) : Buffer() = "MOV ch, ch" AddElement(Buffer()) : Buffer() = "MOV cl, cl" EndMacro Macro MOV_Rdx_Up_Down AddElement(Buffer()) : Buffer() = "MOV dl, dl" AddElement(Buffer()) : Buffer() = "MOV dh, dh" AddElement(Buffer()) : Buffer() = "MOV dx, dx" AddElement(Buffer()) : Buffer() = "MOV Rdx, Rdx" AddElement(Buffer()) : Buffer() = "MOV dx, dx" AddElement(Buffer()) : Buffer() = "MOV dh, dh" AddElement(Buffer()) : Buffer() = "MOV dl, dl" EndMacro Macro MOV_Rsp_Up_Down AddElement(Buffer()) : Buffer() = "MOV spl, spl" AddElement(Buffer()) : Buffer() = "MOV sp, sp" AddElement(Buffer()) : Buffer() = "MOV Rsp, Rsp" AddElement(Buffer()) : Buffer() = "MOV sp, sp" AddElement(Buffer()) : Buffer() = "MOV spl, spl" EndMacro Macro MOV_Rsi_Up_Down AddElement(Buffer()) : Buffer() = "MOV sil, sil" AddElement(Buffer()) : Buffer() = "MOV si, si" AddElement(Buffer()) : Buffer() = "MOV Rsi, Rsi" AddElement(Buffer()) : Buffer() = "MOV si, si" AddElement(Buffer()) : Buffer() = "MOV sil, sil" EndMacro Macro MOV_Rbp_Up_Down AddElement(Buffer()) : Buffer() = "MOV bpl, bpl" AddElement(Buffer()) : Buffer() = "MOV bp, bp" AddElement(Buffer()) : Buffer() = "MOV Rbp, Rbp" AddElement(Buffer()) : Buffer() = "MOV bp, bp" AddElement(Buffer()) : Buffer() = "MOV bpl, bpl" EndMacro Macro MOV_Rdi_Up_Down AddElement(Buffer()) : Buffer() = "MOV dil, dil" AddElement(Buffer()) : Buffer() = "MOV di, di" AddElement(Buffer()) : Buffer() = "MOV Rdi, Rdi" AddElement(Buffer()) : Buffer() = "MOV di, di" AddElement(Buffer()) : Buffer() = "MOV dil, dil" EndMacro Macro MOV_R8_Up_Down AddElement(Buffer()) : Buffer() = "MOV R8b, R8b" AddElement(Buffer()) : Buffer() = "MOV R8w, R8w" AddElement(Buffer()) : Buffer() = "MOV R8, R8" AddElement(Buffer()) : Buffer() = "MOV R8w, R8w" AddElement(Buffer()) : Buffer() = "MOV R8b, R8b" EndMacro Macro MOV_R9_Up_Down AddElement(Buffer()) : Buffer() = "MOV R9b, R9b" AddElement(Buffer()) : Buffer() = "MOV R9w, R9w" AddElement(Buffer()) : Buffer() = "MOV R9, R9" AddElement(Buffer()) : Buffer() = "MOV R9w, R9w" AddElement(Buffer()) : Buffer() = "MOV R9b, R9b" EndMacro Macro MOV_R10_Up_Down AddElement(Buffer()) : Buffer() = "MOV R10b, R10b" AddElement(Buffer()) : Buffer() = "MOV R10w, R10w" AddElement(Buffer()) : Buffer() = "MOV R10, R10" AddElement(Buffer()) : Buffer() = "MOV R10w, R10w" AddElement(Buffer()) : Buffer() = "MOV R10b, R10b" EndMacro Macro MOV_R11_Up_Down AddElement(Buffer()) : Buffer() = "MOV R11b, R11b" AddElement(Buffer()) : Buffer() = "MOV R11w, R11w" AddElement(Buffer()) : Buffer() = "MOV R11, R11" AddElement(Buffer()) : Buffer() = "MOV R11w, R11w" AddElement(Buffer()) : Buffer() = "MOV R11b, R11b" EndMacro Macro MOV_R12_Up_Down AddElement(Buffer()) : Buffer() = "MOV R12b, R12b" AddElement(Buffer()) : Buffer() = "MOV R12w, R12w" AddElement(Buffer()) : Buffer() = "MOV R12, R12" AddElement(Buffer()) : Buffer() = "MOV R12w, R12w" AddElement(Buffer()) : Buffer() = "MOV R12b, R12b" EndMacro Macro MOV_R13_Up_Down AddElement(Buffer()) : Buffer() = "MOV R13b, R13b" AddElement(Buffer()) : Buffer() = "MOV R13w, R13w" AddElement(Buffer()) : Buffer() = "MOV R13, R13" AddElement(Buffer()) : Buffer() = "MOV R13w, R13w" AddElement(Buffer()) : Buffer() = "MOV R13b, R13b" EndMacro Macro MOV_R14_Up_Down AddElement(Buffer()) : Buffer() = "MOV R14b, R14b" AddElement(Buffer()) : Buffer() = "MOV R14w, R14w" AddElement(Buffer()) : Buffer() = "MOV R14, R14" AddElement(Buffer()) : Buffer() = "MOV R14w, R14w" AddElement(Buffer()) : Buffer() = "MOV R14b, R14b" EndMacro Macro MOV_R15_Up_Down AddElement(Buffer()) : Buffer() = "MOV R15b, R15b" AddElement(Buffer()) : Buffer() = "MOV R15w, R15w" AddElement(Buffer()) : Buffer() = "MOV R15, R15" AddElement(Buffer()) : Buffer() = "MOV R15w, R15w" AddElement(Buffer()) : Buffer() = "MOV R15b, R15b" EndMacro Macro Set_CL1 BLSR_Rcx_x64 AddElement(Buffer()) : Buffer() = "INC cl" ; cx = 1 EndMacro Macro Set_CL8 BLSR_Rcx_x64 AddElement(Buffer()) : Buffer() = "INC cl" AddElement(Buffer()) : Buffer() = "INC cl" AddElement(Buffer()) : Buffer() = "SHL cl, cl" ; cx = 8 EndMacro Macro Set_CL64 BLSR_Rcx_x64 AddElement(Buffer()) : Buffer() = "INC cl" AddElement(Buffer()) : Buffer() = "INC cl" AddElement(Buffer()) : Buffer() = "INC cl" AddElement(Buffer()) : Buffer() = "INC cl" AddElement(Buffer()) : Buffer() = "SHL cl, cl" ; cx = 64 EndMacro Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL BLSR_Rcx_x64 Set_CL1 MOVZX_Rcx AddElement(Buffer()) : Buffer() = "MOVQ mm1, Rcx" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;16 Left 1bit shift" AddElement(Buffer()) : Buffer() = "MOVQ mm0, mm1" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;16 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;16 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;16 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;16 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;16 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;16 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;1 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;2 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;3 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;4 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;5 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;6 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;7 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;8 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;9 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;10 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;11 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;12 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;13 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;14 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;15 Left 1bit shift" AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;16 Left 1bit shift" EndMacro Macro MOVZX_Rcx AddElement(Buffer()) : Buffer() = "MOVZX cx, cl" AddElement(Buffer()) : Buffer() = "MOVZX Rcx, cl" AddElement(Buffer()) : Buffer() = "MOVZX cx, cl" EndMacro Global NewList Reg64.s() AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx" AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx" AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi" AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi" AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9" AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11" AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13" AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15" Global NewList Reg64A.s() AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx" AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi" AddElement(Reg64A()) : Reg64A() ="R9" : AddElement(Reg64A()) : Reg64A() ="R11" AddElement(Reg64A()) : Reg64A() ="R13" : AddElement(Reg64A()) : Reg64A() ="R15" Global NewList Reg64B.s() AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx" AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi" AddElement(Reg64B()) : Reg64B() ="R8" : AddElement(Reg64B()) : Reg64B() ="R10" AddElement(Reg64B()) : Reg64B() ="R12" : AddElement(Reg64B()) : Reg64B() ="R14" !RDRAND Rcx !CALL QWORD PB_RandomSeed RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) Global NewList Reg32.s() AddElement(Reg32()) : Reg32() ="Eax" : AddElement(Reg32()) : Reg32() ="Ebx" AddElement(Reg32()) : Reg32() ="Ecx" : AddElement(Reg32()) : Reg32() ="Edx" AddElement(Reg32()) : Reg32() ="Esp" : AddElement(Reg32()) : Reg32() ="Esi" AddElement(Reg32()) : Reg32() ="Ebp" : AddElement(Reg32()) : Reg32() ="Edi" AddElement(Reg32()) : Reg32() ="R8d" : AddElement(Reg32()) : Reg32() ="R9d" AddElement(Reg32()) : Reg32() ="R10d" : AddElement(Reg32()) : Reg32() ="R11d" AddElement(Reg32()) : Reg32() ="R12d" : AddElement(Reg32()) : Reg32() ="R13d" AddElement(Reg32()) : Reg32() ="R14d" : AddElement(Reg32()) : Reg32() ="R15d" NewMap Reg16.s() Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx" Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di" Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w" Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w" NewMap Reg8.s() Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl" Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil" Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b" Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b" Macro SIMPLE_MOVE_REGISTERS_Up_and_Down MOV_Rax_Rax_Up_Down MOV_Rdx_Rdx_Up_Down MOV_Rsp_Rsp_Up_Down MOV_Rsi_Rsi_Up_Down MOV_R9_R9_Up_Down MOV_R11_R11_Up_Down MOV_R13_R13_Up_Down MOV_R15_R15_Up_Down MOV_Rcx_Rcx_Up_Down MOV_Rbx_Rbx_Up_Down MOV_Rbp_Rbp_Up_Down MOV_Rdi_Rdi_Up_Down MOV_R8_R8_Up_Down MOV_R10_R10_Up_Down MOV_R12_R12_Up_Down MOV_R14_R14_Up_Down EndMacro Macro BeforeProcedureRegisters_1st ALL_MMX_CLEAR_SHIFTWORD_INC_CL MOV_Rax_Up_Down MOV_Rdx_Up_Down MOV_Rsp_Up_Down MOV_Rsi_Up_Down MOV_R9_Up_Down MOV_R11_Up_Down MOV_R13_Up_Down MOV_R15_Up_Down AddElement(Buffer()) : Buffer() = "MOVQ mm0, Rax" AddElement(Buffer()) : Buffer() = "MOVQ mm1, Rdx" AddElement(Buffer()) : Buffer() = "MOVQ mm2, Rsp" AddElement(Buffer()) : Buffer() = "MOVQ mm3, Rsi" AddElement(Buffer()) : Buffer() = "MOVQ mm4, R9" AddElement(Buffer()) : Buffer() = "MOVQ mm5, R11" AddElement(Buffer()) : Buffer() = "MOVQ mm6, R13" AddElement(Buffer()) : Buffer() = "MOVQ mm7, R15" EndMacro Macro BeforeProcedureRegisters_2nd AddElement(Buffer()) : Buffer() = "MOVQ Rax, mm0" AddElement(Buffer()) : Buffer() = "MOVQ Rdx, mm1" AddElement(Buffer()) : Buffer() = "MOVQ Rsp, mm2" AddElement(Buffer()) : Buffer() = "MOVQ Rsi, mm3" AddElement(Buffer()) : Buffer() = "MOVQ R9, mm4" AddElement(Buffer()) : Buffer() = "MOVQ R11, mm5" AddElement(Buffer()) : Buffer() = "MOVQ R13, mm6" AddElement(Buffer()) : Buffer() = "MOVQ R15, mm7" MOV_Rax_Up_Down MOV_Rdx_Up_Down MOV_Rsp_Up_Down MOV_Rsi_Up_Down MOV_R9_Up_Down MOV_R11_Up_Down MOV_R13_Up_Down MOV_R15_Up_Down MOV_Rcx_Up_Down MOV_Rbx_Up_Down MOV_Rbp_Up_Down MOV_Rdi_Up_Down MOV_R8_Up_Down MOV_R10_Up_Down MOV_R12_Up_Down MOV_R14_Up_Down AddElement(Buffer()) : Buffer() = "MOVQ mm0, Rcx" AddElement(Buffer()) : Buffer() = "MOVQ mm1, Rbx" AddElement(Buffer()) : Buffer() = "MOVQ mm2, Rbp" AddElement(Buffer()) : Buffer() = "MOVQ mm3, Rdi" AddElement(Buffer()) : Buffer() = "MOVQ mm4, R8" AddElement(Buffer()) : Buffer() = "MOVQ mm5, R10" AddElement(Buffer()) : Buffer() = "MOVQ mm6, R12" AddElement(Buffer()) : Buffer() = "MOVQ mm7, R14" EndMacro Macro BeforeProcedureRegisters_3rd AddElement(Buffer()) : Buffer() = "MOVQ Rcx, mm0" AddElement(Buffer()) : Buffer() = "MOVQ Rbx, mm1" AddElement(Buffer()) : Buffer() = "MOVQ Rbp, mm2" AddElement(Buffer()) : Buffer() = "MOVQ Rdi, mm3" AddElement(Buffer()) : Buffer() = "MOVQ R8, mm4" AddElement(Buffer()) : Buffer() = "MOVQ R10, mm5" AddElement(Buffer()) : Buffer() = "MOVQ R12, mm6" AddElement(Buffer()) : Buffer() = "MOVQ R14, mm7" AddElement(Buffer()) : Buffer() = "EMMS" MOV_Rcx_Up_Down MOV_Rbx_Up_Down MOV_Rbp_Up_Down MOV_Rdi_Up_Down MOV_R8_Up_Down MOV_R10_Up_Down MOV_R12_Up_Down MOV_R14_Up_Down EndMacro Macro BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " SMSW "+Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64A()+", "+Reg64A() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64A()+", "+Reg64A()+", "+Reg64A() Next BeforeProcedureRegisters_2nd ForEach Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " SMSW "+Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64B()+", "+Reg64B() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64B()+", "+Reg64B()+", "+Reg64B() Next BeforeProcedureRegisters_3rd EndMacro Macro BeforeProcedureRegisters_RDSEED_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " RDSEED "+Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64A()+", "+Reg64A() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64A()+", "+Reg64A()+", "+Reg64A() Next BeforeProcedureRegisters_2nd ForEach Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " RDSEED "+Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64B()+", "+Reg64B() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64B()+", "+Reg64B()+", "+Reg64B() Next BeforeProcedureRegisters_3rd EndMacro Macro BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " CRC32 "+Reg64A()+", QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64A()+", "+Reg64A() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64A()+", "+Reg64A()+", "+Reg64A() Next BeforeProcedureRegisters_2nd ForEach Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " CRC32 "+Reg64B()+", QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64B()+", "+Reg64B() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64B()+", "+Reg64B()+", "+Reg64B() Next BeforeProcedureRegisters_3rd EndMacro Macro BeforeProcedureRegisters_RDSEED_SHR BeforeProcedureRegisters_1st ForEach Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " RDSEED "+Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " SHR "+Reg64A()+", 1" Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64A()+", "+Reg64A()+", "+Reg64A() Next BeforeProcedureRegisters_2nd ForEach Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " RDSEED "+Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " SHR "+Reg64B()+", 1" Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64B()+", "+Reg64B()+", "+Reg64B() Next BeforeProcedureRegisters_3rd EndMacro Procedure.s MajiorityBuildBefore(MajiorityBuildBefore_Str.s, MajiorityBuildBefore_Opt.s, MajiorityBuildBefore_Path.s) Protected Compiler.i MajiorityBuildBefore_Str + Chr(13) + "MajiorityBuildBefore" + Chr(13) Compiler = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", Chr(34)+ MajiorityBuildBefore_Str + Chr(34) + Space(1) + MajiorityBuildBefore_Opt, MajiorityBuildBefore_Path, #PB_Program_Open | #PB_Program_Read) If Compiler While ProgramRunning(Compiler) If AvailableProgramOutput(Compiler) MajiorityBuildBefore_Str + ReadProgramString(Compiler) + Chr(13) EndIf Wend MajiorityBuildBefore_Str + Chr(13) + Chr(13) MajiorityBuildBefore_Str + "Exitcode: " + Str(ProgramExitCode(Compiler)) CloseProgram(Compiler) ; Close the connection to the program EndIf ProcedureReturn MajiorityBuildBefore_Str EndProcedure Procedure.s MajiorityBuildReasm(MajiorityBuildReasm_Str.s, MajiorityBuildReasm_Opt.s, MajiorityBuildReasm_Path.s) Protected Compiler.i MajiorityBuildReasm_Str + Chr(13) + "MajiorityBuildReasm" + Chr(13) Compiler = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", MajiorityBuildReasm_Opt, MajiorityBuildReasm_Path, #PB_Program_Open | #PB_Program_Read) If Compiler While ProgramRunning(Compiler) If AvailableProgramOutput(Compiler) MajiorityBuildReasm_Str + ReadProgramString(Compiler) + Chr(13) EndIf Wend MajiorityBuildReasm_Str + Chr(13) + Chr(13) MajiorityBuildReasm_Str + "Exitcode: " + Str(ProgramExitCode(Compiler)) CloseProgram(Compiler) ; Close the connection to the program EndIf ProcedureReturn MajiorityBuildReasm_Str EndProcedure Macro MajiorityBuild_Tunes_1 ForEach Buffer() Buffer() = ReplaceString(Buffer(), "qword[", "[") Next EndMacro Macro MajiorityBuild_Tunes_2 ForEach Buffer() If FindString(Buffer(), "PureBasicStart:") ; 1 BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 2 BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 3 BeforeProcedureRegisters_SMSW_BLSR BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; Break EndIf Next EndMacro Global MajiorityBuild_Tunes_3_Error.i Macro MajiorityBuild_Tunes_3 ForEach Buffer() If FindString(UCase(Buffer()), "JMP")>0 And FindString(UCase(Buffer()), "QWORD")=0 Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1) ElseIf FindString(UCase(Buffer()), "JE")>0 And FindString(UCase(Buffer()), "QWORD")=0 Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1) ElseIf FindString(UCase(Buffer()), "JZ")>0 And FindString(UCase(Buffer()), "QWORD")=0 Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1) ElseIf FindString(UCase(Buffer()), "JNE")>0 And FindString(UCase(Buffer()), "QWORD")=0 Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1) ElseIf FindString(UCase(Buffer()), "JNZ")>0 And FindString(UCase(Buffer()), "QWORD")=0 Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1) ElseIf FindString(UCase(Buffer()), "CALL ")>0 And FindString(UCase(Buffer()), "QWORD")=0 Buffer() = ReplaceString(Buffer(), "CALL ", "CALL QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "C"), 1) ElseIf FindString(UCase(Buffer()), "NOP ")>0 And FindString(UCase(Buffer()), "QWORD")=0 And FindString(UCase(Buffer()), "FNOP")=0 MajiorityBuild_Tunes_3_Error = 0 ForEach Reg32() If FindString(UCase(Buffer()), Reg32())=0 MajiorityBuild_Tunes_3_Error + 1 EndIf Next ForEach Reg16() If FindString(UCase(Buffer()), Reg16())=0 MajiorityBuild_Tunes_3_Error + 1 EndIf Next ForEach Reg8() If FindString(UCase(Buffer()), Reg8())=0 MajiorityBuild_Tunes_3_Error + 1 EndIf Next If MajiorityBuild_Tunes_3_Error = 0 Buffer() = ReplaceString(Buffer(), "NOP ", "NOP QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "N"), 1) EndIf ElseIf FindString(UCase(Buffer()), "[")>0 And FindString(UCase(Buffer()), "QWORD")=0 MajiorityBuild_Tunes_3_Error = 0 ForEach Reg32() If FindString(UCase(Buffer()), Reg32())=0 MajiorityBuild_Tunes_3_Error + 1 EndIf Next ForEach Reg16() If FindString(UCase(Buffer()), Reg16())=0 MajiorityBuild_Tunes_3_Error + 1 EndIf Next ForEach Reg8() If FindString(UCase(Buffer()), Reg8())=0 MajiorityBuild_Tunes_3_Error + 1 EndIf Next If MajiorityBuild_Tunes_3_Error = 0 Buffer() = ReplaceString(Buffer(), "[", "QWORD [", #PB_String_NoCase, FindString(UCase(Buffer()), "["), 1) EndIf ; And FindString(UCase(Buffer()), "QWORD")=0 And FindString(UCase(Buffer()), "FLD")=0 And FindString(UCase(Buffer()), "FSTP")=0 And FindString(UCase(Buffer()), "DWORD")=0 And FindString(UCase(Buffer()), "R8D")=0 And FindString(UCase(Buffer()), "EAX")=0 ; Buffer() = ReplaceString(Buffer(), "[", "QWORD [", #PB_String_NoCase, FindString(UCase(Buffer()), "["), 1) EndIf Next EndMacro #SourceTarget1 = "MajiorityCamisole155.pb" #SourceIcon1 = "iconFile.ico" #SourcePath1 = "\MajiorityCamisole155source\" #Execute1 = "MajiorityCamisole155.exe" #ExecutePath1 = "\MajiorityCamisole155\" If FileSize(#ExecutePath1+#Execute1)>0 Debug "Please DELETE "+#Execute1 CallDebugger EndIf Debug MajiorityBuildBefore(#SourceTarget1, Chr(34)+#SourcePath1+#SourceTarget1+Chr(34)+" /MMX /UNICODE /commented /XP /THREAD /OPTIMIZER", #SourcePath1) ClearList(Buffer()) ; MajiorityBuild_Tunes_Open If ReadFile(2, #SourcePath1+"PureBasic.asm") While Eof(2)=0 AddElement(Buffer()) Buffer() = ReadString(2) Wend CloseFile(2) EndIf CallDebugger ; _Tunes_Open MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 ; MajiorityBuild_Tunes_Write If CreateFile(2, #SourcePath1+"PureBasic.asm") ForEach Buffer() WriteStringN(2, Buffer()) Next FlushFileBuffers(2) CloseFile(2) EndIf ; _Tunes_Write Debug MajiorityBuildReasm(#SourceTarget1, Chr(34)+"PureBasic.asm"+Chr(34)+" /MMX /UNICODE /THREAD /XP /REASM /OPTIMIZER /ICON "+Chr(34)+#SourceIcon1+Chr(34)+" /OUTPUT "+Chr(34)+#ExecutePath1+#Execute1+Chr(34), #SourcePath1) ; CallDebugger DeleteFile(#SourcePath1+"PureBasic.asm") DeleteFile(#SourcePath1+"PureBasic.exe") #SourceTarget2 = "MajiorityCamisole154.pb" #SourceIcon2 = "iconFile.ico" #SourcePath2 = "\MajiorityCamisole155source\" #Execute2 = "MajiorityCamisole154.exe" #ExecutePath2 = "\MajiorityCamisole155\" If FileSize(#ExecutePath2+#Execute2)>0 Debug "Please DELETE "+#Execute2 CallDebugger EndIf Debug MajiorityBuildBefore(#SourceTarget2, Chr(34)+#SourcePath2+#SourceTarget2+Chr(34)+" /MMX /UNICODE /commented /XP /THREAD /OPTIMIZER", #SourcePath2) ClearList(Buffer()) ; MajiorityBuild_Tunes_Open If ReadFile(2, #SourcePath2+"PureBasic.asm") While Eof(2)=0 AddElement(Buffer()) Buffer() = ReadString(2) Wend CloseFile(2) EndIf CallDebugger ; _Tunes_Open MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 ; MajiorityBuild_Tunes_Write If CreateFile(2, #SourcePath2+"PureBasic.asm") ForEach Buffer() WriteStringN(2, Buffer()) Next FlushFileBuffers(2) CloseFile(2) EndIf ; _Tunes_Write Debug MajiorityBuildReasm(#SourceTarget2, Chr(34)+"PureBasic.asm"+Chr(34)+" /MMX /UNICODE /THREAD /XP /REASM /OPTIMIZER /ICON "+Chr(34)+#SourceIcon2+Chr(34)+" /OUTPUT "+Chr(34)+#ExecutePath2+#Execute2+Chr(34), #SourcePath2) ; CallDebugger DeleteFile(#SourcePath2+"PureBasic.asm") DeleteFile(#SourcePath2+"PureBasic.exe") #SourceTarget3 = "Saverage155.pb" #SourceIcon3 = "iconFile.ico" #SourcePath3 = "\MajiorityCamisole155source\" #Execute3 = "Saverage155.exe" #ExecutePath3 = "\MajiorityCamisole155\" If FileSize(#ExecutePath3+#Execute3)>0 Debug "Please DELETE "+#Execute3 CallDebugger EndIf Debug MajiorityBuildBefore(#SourceTarget3, Chr(34)+#SourcePath3+#SourceTarget3+Chr(34)+" /MMX /UNICODE /commented /XP /THREAD /OPTIMIZER", #SourcePath3) ClearList(Buffer()) MajiorityBuild_Tunes_Open If ReadFile(2, #SourcePath3+"PureBasic.asm") While Eof(2)=0 AddElement(Buffer()) Buffer() = ReadString(2) Wend CloseFile(2) EndIf CallDebugger _Tunes_Open MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 MajiorityBuild_Tunes_Write If CreateFile(2, #SourcePath3+"PureBasic.asm") ForEach Buffer() WriteStringN(2, Buffer()) Next FlushFileBuffers(2) CloseFile(2) EndIf _Tunes_Write Debug MajiorityBuildReasm(#SourceTarget3, Chr(34)+"PureBasic.asm"+Chr(34)+" /MMX /UNICODE /THREAD /XP /REASM /OPTIMIZER /ICON "+Chr(34)+#SourceIcon3+Chr(34)+" /OUTPUT "+Chr(34)+#ExecutePath3+#Execute3+Chr(34), #SourcePath3) CallDebugger DeleteFile(#SourcePath3+"PureBasic.asm") DeleteFile(#SourcePath3+"PureBasic.exe") #SourceTarget4 = "Nontallion155.pb" #SourceIcon4 = "iconFile.ico" #SourcePath4 = "\MajiorityCamisole155source\" #Execute4 = "Nontallion155.exe" #ExecutePath4 = "\MajiorityCamisole155\" If FileSize(#ExecutePath4+#Execute4)>0 Debug "Please DELETE "+#Execute4 CallDebugger EndIf Debug MajiorityBuildBefore(#SourceTarget4, Chr(34)+#SourcePath4+#SourceTarget4+Chr(34)+" /MMX /UNICODE /commented /XP /THREAD /OPTIMIZER", #SourcePath4) ClearList(Buffer()) MajiorityBuild_Tunes_Open If ReadFile(2, #SourcePath4+"PureBasic.asm") While Eof(2)=0 AddElement(Buffer()) Buffer() = ReadString(2) Wend CloseFile(2) EndIf CallDebugger _Tunes_Open MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 MajiorityBuild_Tunes_Write If CreateFile(2, #SourcePath4+"PureBasic.asm") ForEach Buffer() WriteStringN(2, Buffer()) Next FlushFileBuffers(2) CloseFile(2) EndIf _Tunes_Write Debug MajiorityBuildReasm(#SourceTarget4, Chr(34)+"PureBasic.asm"+Chr(34)+" /MMX /UNICODE /THREAD /XP /REASM /OPTIMIZER /ICON "+Chr(34)+#SourceIcon4+Chr(34)+" /OUTPUT "+Chr(34)+#ExecutePath4+#Execute4+Chr(34), #SourcePath4) CallDebugger DeleteFile(#SourcePath4+"PureBasic.asm") DeleteFile(#SourcePath4+"PureBasic.exe") #SourceTarget5 = "GetAsioDeviceNameUnicode155.pb" #SourceIcon5 = "iconFile.ico" #SourcePath5 = "\MajiorityCamisole155source\" #Execute5 = "GetAsioDeviceNameUnicode155.exe" #ExecutePath5 = "\MajiorityCamisole155\" If FileSize(#ExecutePath5+#Execute5)>0 Debug "Please DELETE "+#Execute5 CallDebugger EndIf Debug MajiorityBuildBefore(#SourceTarget5, Chr(34)+#SourcePath5+#SourceTarget5+Chr(34)+" /MMX /UNICODE /commented /XP /THREAD /OPTIMIZER", #SourcePath5) ClearList(Buffer()) ; MajiorityBuild_Tunes_Open If ReadFile(2, #SourcePath5+"PureBasic.asm") While Eof(2)=0 AddElement(Buffer()) Buffer() = ReadString(2) Wend CloseFile(2) EndIf CallDebugger ; _Tunes_Open MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 ; MajiorityBuild_Tunes_Write If CreateFile(2, #SourcePath5+"PureBasic.asm") ForEach Buffer() WriteStringN(2, Buffer()) Next FlushFileBuffers(2) CloseFile(2) EndIf ; _Tunes_Write Debug MajiorityBuildReasm(#SourceTarget5, Chr(34)+"PureBasic.asm"+Chr(34)+" /MMX /UNICODE /THREAD /XP /REASM /OPTIMIZER /ICON "+Chr(34)+#SourceIcon5+Chr(34)+" /OUTPUT "+Chr(34)+#ExecutePath5+#Execute5+Chr(34), #SourcePath5) ; CallDebugger DeleteFile(#SourcePath5+"PureBasic.asm") DeleteFile(#SourcePath5+"PureBasic.exe") #SourceTarget6 = "GetAsioDeviceName155.pb" #SourceIcon6 = "iconFile.ico" #SourcePath6 = "\MajiorityCamisole155source\" #Execute6 = "GetAsioDeviceName155.exe" #ExecutePath6 = "\MajiorityCamisole155\" If FileSize(#ExecutePath6+#Execute6)>0 Debug "Please DELETE "+#Execute6 CallDebugger EndIf Debug MajiorityBuildBefore(#SourceTarget6, Chr(34)+#SourcePath6+#SourceTarget6+Chr(34)+" /MMX /UNICODE /commented /XP /THREAD /OPTIMIZER", #SourcePath6) ClearList(Buffer()) ; MajiorityBuild_Tunes_Open If ReadFile(2, #SourcePath6+"PureBasic.asm") While Eof(2)=0 AddElement(Buffer()) Buffer() = ReadString(2) Wend CloseFile(2) EndIf CallDebugger ; _Tunes_Open MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 ; MajiorityBuild_Tunes_Write If CreateFile(2, #SourcePath6+"PureBasic.asm") ForEach Buffer() WriteStringN(2, Buffer()) Next FlushFileBuffers(2) CloseFile(2) EndIf ; _Tunes_Write Debug MajiorityBuildReasm(#SourceTarget6, Chr(34)+"PureBasic.asm"+Chr(34)+" /MMX /UNICODE /THREAD /XP /REASM /OPTIMIZER /ICON "+Chr(34)+#SourceIcon6+Chr(34)+" /OUTPUT "+Chr(34)+#ExecutePath6+#Execute6+Chr(34), #SourcePath6) ; CallDebugger DeleteFile(#SourcePath6+"PureBasic.asm") DeleteFile(#SourcePath6+"PureBasic.exe") End
Global LEA_String.s Macro MajiorityBuild_Tunes_4 ForEach Buffer() If FindString(Buffer(), "LEA ") If FindString(Buffer(), "!LEA ")=0 LEA_String = RemoveString(Buffer(), " ") LEA_String = RemoveString(LEA_String, "LEA") LEA_String = StringField(LEA_String, 1, ",") PreviousElement(Buffer()) AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "SMSW "+LEA_String AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip-36]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "CRC32 "+LEA_String+", QWORD [Rip]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip-36]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "RDSEED "+LEA_String AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip-36]" NextElement(Buffer()) EndIf EndIf Next EndMacro
Macro MajiorityBuild_Tunes_5 ForEach Buffer() If FindString(Buffer(), "XOR ") If FindString(Buffer(), "!XOR ")=0 If FindString(Buffer(), "rax,rax") Buffer()="BLSR rax,rax" For Loop=1 To 63 AddElement(Buffer()) : Buffer()="BLSR rax,rax" Next AddElement(Buffer()) : Buffer()="BZHI rax,rax,rax" ElseIf FindString(Buffer(), "rbx,rbx") Buffer()="BLSR rbx,rbx" For Loop=1 To 63 AddElement(Buffer()) : Buffer()="BLSR rbx,rbx" Next AddElement(Buffer()) : Buffer()="BZHI rbx,rbx,rbx" ElseIf FindString(Buffer(), "rcx,rcx") Buffer()="BLSR rcx,rcx" For Loop=1 To 63 AddElement(Buffer()) : Buffer()="BLSR rcx,rcx" Next AddElement(Buffer()) : Buffer()="BZHI rcx,rcx,rcx" ElseIf FindString(Buffer(), "rdx,rdx") Buffer()="BLSR rdx,rdx" For Loop=1 To 63 AddElement(Buffer()) : Buffer()="BLSR rdx,rdx" Next AddElement(Buffer()) : Buffer()="BZHI rdx,rdx,rdx" ElseIf FindString(Buffer(), "r8,r8") Buffer()="BLSR r8,r8" For Loop=1 To 63 AddElement(Buffer()) : Buffer()="BLSR r8,r8" Next AddElement(Buffer()) : Buffer()="BZHI r8,r8,r8" ElseIf FindString(Buffer(), "r9,r9") Buffer()="BLSR r9,r9" For Loop=1 To 63 AddElement(Buffer()) : Buffer()="BLSR r9,r9" Next AddElement(Buffer()) : Buffer()="BZHI r9,r9,r9" ElseIf FindString(Buffer(), "rsp,rsp") Buffer()="BLSR r15,r15" For Loop=1 To 63 AddElement(Buffer()) : Buffer()="BLSR r15,r15" Next AddElement(Buffer()) : Buffer()="BZHI r15,r15,r15" EndIf EndIf EndIf Next EndMacro Global Sub_pos.i, Sub_max.i , Add_pos.i, Add_max.i Macro MajiorityBuild_Tunes_6 ForEach Buffer() If FindString(Buffer(), " SUB rsp,") And Val(StringField(Buffer(), 2, ","))>0 Sub_pos = 0 : Sub_max =0 Sub_max = Val(StringField(Buffer(), 2, ",")) Buffer() = "" MOV_Rsp_Up_Down For Sub_pos=1 To Sub_max AddElement(Buffer()) : Buffer() = "DEC rsp" ; Sub Next MOV_Rsp_Up_Down EndIf Next ForEach Buffer() If FindString(Buffer(), " ADD rsp,") And Val(StringField(Buffer(), 2, ","))>0 Add_max = 0 : Add_pos = 0 Add_max = Val(StringField(Buffer(), 2, ",")) Buffer() = "" MOV_Rsp_Up_Down For Add_pos=1 To Add_max AddElement(Buffer()) : Buffer() = "INC rsp" ; Add Next MOV_Rsp_Up_Down EndIf Next ForEach Buffer() If FindString(Buffer(), "PUSH ") If FindString(Buffer(), "rax") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_Rax_Up_Down ElseIf FindString(Buffer(), "rbx") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_Rbp_Up_Down ElseIf FindString(Buffer(), "rcx") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_Rcx_Up_Down ElseIf FindString(Buffer(), "rdx") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_Rdx_Up_Down ElseIf FindString(Buffer(), "rsi") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_Rsi_Up_Down ElseIf FindString(Buffer(), "rbp") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_Rbp_Up_Down ; ElseIf FindString(Buffer(), "rsp") ; MOV_Rsp_Rsp_Up_Down ElseIf FindString(Buffer(), "rdi") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_Rdi_Up_Down ElseIf FindString(Buffer(), "r8") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R8_Up_Down ElseIf FindString(Buffer(), "r9") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R9_Up_Down ElseIf FindString(Buffer(), "r10") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R10_Up_Down ElseIf FindString(Buffer(), "r11") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R11_Up_Down ElseIf FindString(Buffer(), "r12") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R12_Up_Down ElseIf FindString(Buffer(), "r13") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R13_Up_Down ElseIf FindString(Buffer(), "r14") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R14_Up_Down ElseIf FindString(Buffer(), "r15") PreviousElement(Buffer()) MOV_Rsp_Up_Down MOV_R15_Up_Down Else PreviousElement(Buffer()) MOV_Rsp_Up_Down EndIf NextElement(Buffer()) MOV_Rsp_Up_Down EndIf Next ForEach Buffer() If FindString(Buffer(), "POP ") If FindString(Buffer(), "rax") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_Rax_Up_Down ElseIf FindString(Buffer(), "rbx") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_Rbp_Up_Down ElseIf FindString(Buffer(), "rcx") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_Rcx_Up_Down ElseIf FindString(Buffer(), "rdx") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_Rdx_Up_Down ElseIf FindString(Buffer(), "rsi") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_Rsi_Up_Down ElseIf FindString(Buffer(), "rbp") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_Rbp_Up_Down ; ElseIf FindString(Buffer(), "rsp") ; MOV_Rsp_Rsp_Up_Down ElseIf FindString(Buffer(), "rdi") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_Rdi_Up_Down ElseIf FindString(Buffer(), "r8") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R8_Up_Down ElseIf FindString(Buffer(), "r9") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R9_Up_Down ElseIf FindString(Buffer(), "r10") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R10_Up_Down ElseIf FindString(Buffer(), "r11") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R11_Up_Down ElseIf FindString(Buffer(), "r12") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R12_Up_Down ElseIf FindString(Buffer(), "r13") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R13_Up_Down ElseIf FindString(Buffer(), "r14") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R14_Up_Down ElseIf FindString(Buffer(), "r15") PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) MOV_R15_Up_Down Else PreviousElement(Buffer()) MOV_Rsp_Up_Down NextElement(Buffer()) EndIf MOV_Rsp_Up_Down EndIf Next EndMacro
Macro MajiorityBuild_Removed_SMSW ForEach Buffer() If FindString(Buffer(), "SMSW") Debug "SMSW ERROR - " + Str(ListIndex(Buffer())) PreviousElement(Buffer()) Debug Buffer() NextElement(Buffer()) Debug Buffer() NextElement(Buffer()) Debug Buffer() CallDebugger EndIf Next EndMacro ForEach Buffer() If FindString(Buffer(), "PureBasicStart:") ; 1 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 2 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 3 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; Break EndIf Next EndMacro ; _Tunes_Open MajiorityBuild_Removed_SMSW MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 MajiorityBuild_Tunes_4 MajiorityBuild_Tunes_5 MajiorityBuild_Tunes_6 MajiorityBuild_Removed_SMSW
Debug " Global *FXSAVE" Debug " BLSR_Rcx_x64" Debug " BLSR_Rdx_x64" Debug " BLSR_R8_x64" Debug " !INC cl" Debug " !INC R8b" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !XCHG Rcx, R8" Debug " !INC dl" Debug " !MOVZX Rdx, dl" Debug " !CALL PB_AllocateMemory" Debug " !MOVNTI QWORD [p_FXSAVE], Rax" Debug " !NOP QWORD [p_FXSAVE]" ; "*FXSAVE = AllocateMemory(512)" Macro FXSAVE Debug " !MOV R8, QWORD [p_FXSAVE]" Debug " !FXSAVE64 [R8]" EndMacro Macro FXRSTOR Debug " !MOV R8, QWORD [p_FXSAVE] " Debug " !FXRSTOR64 [R8]" EndMacro ; MC163 Debug " PrintN("+Chr(34)+"Setup 1... CRC32 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"[Loop 178 times] ... Setup + FXSAVE64 sleep_(sine wave) FXRSTOR64"+Chr(34)+")" ; MC162 Debug " PrintN("+Chr(34)+"Setup 1... CRC32 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")" Debug " PrintN("+Chr(34)+"[Loop 29 times] ... Setup + FXSAVE64 sleep_(sine wave) FXRSTOR64"+Chr(34)+")" Debug " ; "+Str(SineAngels)+" Setup" BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down FXSAVE Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" FXRSTOR
; Nontallion BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR IncludeFile "NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F281_MMX.pbi" SIMPLE_MOVE_REGISTERS_Up_and_Down BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR IncludeFile "NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F281_MMX.pbi" SIMPLE_MOVE_REGISTERS_Up_and_Down XORPS_xmm15_to_xmm0_xmm15 !MOV R8, QWORD [p_FXSAVE] !FXSAVE64 [R8] SIMPLE_MOVE_REGISTERS_Up_and_Down MainThread() End ; Nontallion AsioProc !MOV R8, QWORD [p_FXSAVE] !FXRSTOR64 [R8] ; / ES38 Special Tuning Step 1 ALL_MMX_CLEAR_SHIFTWORD_INC_CL ; / ES38 Special Tuning End : Elementary !ALL_REGISTER_INC255_DEC255_End_PreCompileRun: !NOP QWORD [Rip] !NOP QWORD [Rip] XORPS_xmm15_to_XMM0_XMM15 SIMPLE_MOVE_REGISTERS_Up_and_Down IncludeFile "NaturalBlade_OnlyMyRailgun_CuresStopRN_5d2_F281_MMX.pbi" SIMPLE_MOVE_REGISTERS_Up_and_Down !MOV R8, QWORD [p_FXSAVE] !FXSAVE64 [R8] SIMPLE_MOVE_REGISTERS_Up_and_Down ; Elementary AsioProc !MOV R8, QWORD [p_FXSAVE] !FXRSTOR64 [R8] ; / ES38 Special Tuning Step 1 ALL_MMX_CLEAR_SHIFTWORD_INC_CL BeforeProcedureRegisters_255MEGA ; / ES38 Special Tuning End ; MajiorityCamisole Debug " !XCHG Rcx, R8" Debug " !INC dl" Debug " !MOVZX Rdx, dl" Debug " !CALL PB_AllocateMemory2" Debug " !MOVNTI QWORD [p_FXSAVE], Rax" Debug " !NOP QWORD [p_FXSAVE]" ; "*FXSAVE = AllocateMemory(512,1)" Debug " ALL_MMX_CLEAR_SHIFTWORD_INC_CL" Debug " !MOV R8, QWORD [p_FXSAVE]" For Loop=0 To 512 Step 8 Debug " !MOVQ QWORD [R8+"+Str(Loop)+"], mm5" Next Debug " !EMMS" SIMPLE_MOVE_REGISTERS_Up_and_Down FXRSTOR Debug " PrintN("+Chr(34)+"Finished"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down Debug "Sleep_(0)" Debug "AllocateMemory(0,0)" ; MajiorityCamisole Removed FXRSTOR Debug " !CALL QWORD Sleep" Debug " !NOP QWORD [Rip-32]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]"
Debug " Global *FXSAVE, *FXSAVE2" Debug " BLSR_Rcx_x64" Debug " BLSR_Rdx_x64" Debug " BLSR_R8_x64" Debug " !INC cl" Debug " !INC R8b" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !SHL R8, cl" Debug " !XCHG Rcx, R8" Debug " !INC dl" Debug " !MOVZX Rdx, dl" Debug " !CALL PB_AllocateMemory2" Debug " !MOVNTI QWORD [p_FXSAVE2], Rax" Debug " !NOP QWORD [p_FXSAVE2]" ; "*FXSAVE = AllocateMemory(512,1)" Debug " ALL_MMX_CLEAR_SHIFTWORD_INC_CL" Debug " !MOV R8, QWORD [p_FXSAVE2]" For Loop=0 To 512 Step 8 Debug " !MOVQ QWORD [R8+"+Str(Loop)+"], mm5" Next Debug " !EMMS" BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR SIMPLE_MOVE_REGISTERS_Up_and_Down FXRSTOR Debug " Swap *FXSAVE2, *FXSAVE" Debug " ALL_MMX_CLEAR_SHIFTWORD_INC_CL" Debug " !MOV R8, QWORD [p_FXSAVE]" For Loop=0 To 512 Step 8 Debug " !MOVQ QWORD [R8+"+Str(Loop)+"], mm5" Next Debug " !EMMS" Debug " PrintN("+Chr(34)+"Finished"+Chr(34)+")" SIMPLE_MOVE_REGISTERS_Up_and_Down
IncludeFile "FXSAVE_FXRSTOR_Rev1.pbi": Global *FXSAVE BLSR_Rcx_x64 BLSR_Rdx_x64 BLSR_R8_x64 !INC R8b !INC R8b !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !MOV R8b, R8b !MOV R8w, R8w !MOV R8, R8 !SHL R8, cl !XCHG Rcx, R8 !INC dl !MOVZX Rdx, dl !CALL PB_AllocateMemory2 BLSR_Rcx_x64 BLSR_R8_x64 !INC R8b !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !SHL R8, cl !MOV R8b, R8b !MOV R8w, R8w !MOV R8, R8 !MOV al, al !MOV ah, ah !MOV ax, ax !MOV Rax, Rax !ADD Rax, R8 !MOVNTI QWORD [p_FXSAVE], Rax !NOP QWORD [p_FXSAVE] ALL_MMX_CLEAR_SHIFTWORD_INC_CL !MOV R8, QWORD [p_FXSAVE] !MOVQ QWORD [R8-512], mm5 !MOVQ QWORD [R8-504], mm5 !MOVQ QWORD [R8-496], mm5 !MOVQ QWORD [R8-488], mm5 !MOVQ QWORD [R8-480], mm5 !MOVQ QWORD [R8-472], mm5 !MOVQ QWORD [R8-464], mm5 !MOVQ QWORD [R8-456], mm5 !MOVQ QWORD [R8-448], mm5 !MOVQ QWORD [R8-440], mm5 !MOVQ QWORD [R8-432], mm5 !MOVQ QWORD [R8-424], mm5 !MOVQ QWORD [R8-416], mm5 !MOVQ QWORD [R8-408], mm5 !MOVQ QWORD [R8-400], mm5 !MOVQ QWORD [R8-392], mm5 !MOVQ QWORD [R8-384], mm5 !MOVQ QWORD [R8-376], mm5 !MOVQ QWORD [R8-368], mm5 !MOVQ QWORD [R8-360], mm5 !MOVQ QWORD [R8-352], mm5 !MOVQ QWORD [R8-344], mm5 !MOVQ QWORD [R8-336], mm5 !MOVQ QWORD [R8-328], mm5 !MOVQ QWORD [R8-320], mm5 !MOVQ QWORD [R8-312], mm5 !MOVQ QWORD [R8-304], mm5 !MOVQ QWORD [R8-296], mm5 !MOVQ QWORD [R8-288], mm5 !MOVQ QWORD [R8-280], mm5 !MOVQ QWORD [R8-272], mm5 !MOVQ QWORD [R8-264], mm5 !MOVQ QWORD [R8-256], mm5 !MOVQ QWORD [R8-248], mm5 !MOVQ QWORD [R8-240], mm5 !MOVQ QWORD [R8-232], mm5 !MOVQ QWORD [R8-224], mm5 !MOVQ QWORD [R8-216], mm5 !MOVQ QWORD [R8-208], mm5 !MOVQ QWORD [R8-200], mm5 !MOVQ QWORD [R8-192], mm5 !MOVQ QWORD [R8-184], mm5 !MOVQ QWORD [R8-176], mm5 !MOVQ QWORD [R8-168], mm5 !MOVQ QWORD [R8-160], mm5 !MOVQ QWORD [R8-152], mm5 !MOVQ QWORD [R8-144], mm5 !MOVQ QWORD [R8-136], mm5 !MOVQ QWORD [R8-128], mm5 !MOVQ QWORD [R8-120], mm5 !MOVQ QWORD [R8-112], mm5 !MOVQ QWORD [R8-104], mm5 !MOVQ QWORD [R8-96], mm5 !MOVQ QWORD [R8-88], mm5 !MOVQ QWORD [R8-80], mm5 !MOVQ QWORD [R8-72], mm5 !MOVQ QWORD [R8-64], mm5 !MOVQ QWORD [R8-56], mm5 !MOVQ QWORD [R8-48], mm5 !MOVQ QWORD [R8-40], mm5 !MOVQ QWORD [R8-32], mm5 !MOVQ QWORD [R8-24], mm5 !MOVQ QWORD [R8-16], mm5 !MOVQ QWORD [R8-8], mm5 !MOVQ QWORD [R8+0], mm5 !MOVQ QWORD [R8+8], mm5 !MOVQ QWORD [R8+16], mm5 !MOVQ QWORD [R8+24], mm5 !MOVQ QWORD [R8+32], mm5 !MOVQ QWORD [R8+40], mm5 !MOVQ QWORD [R8+48], mm5 !MOVQ QWORD [R8+56], mm5 !MOVQ QWORD [R8+64], mm5 !MOVQ QWORD [R8+72], mm5 !MOVQ QWORD [R8+80], mm5 !MOVQ QWORD [R8+88], mm5 !MOVQ QWORD [R8+96], mm5 !MOVQ QWORD [R8+104], mm5 !MOVQ QWORD [R8+112], mm5 !MOVQ QWORD [R8+120], mm5 !MOVQ QWORD [R8+128], mm5 !MOVQ QWORD [R8+136], mm5 !MOVQ QWORD [R8+144], mm5 !MOVQ QWORD [R8+152], mm5 !MOVQ QWORD [R8+160], mm5 !MOVQ QWORD [R8+168], mm5 !MOVQ QWORD [R8+176], mm5 !MOVQ QWORD [R8+184], mm5 !MOVQ QWORD [R8+192], mm5 !MOVQ QWORD [R8+200], mm5 !MOVQ QWORD [R8+208], mm5 !MOVQ QWORD [R8+216], mm5 !MOVQ QWORD [R8+224], mm5 !MOVQ QWORD [R8+232], mm5 !MOVQ QWORD [R8+240], mm5 !MOVQ QWORD [R8+248], mm5 !MOVQ QWORD [R8+256], mm5 !MOVQ QWORD [R8+264], mm5 !MOVQ QWORD [R8+272], mm5 !MOVQ QWORD [R8+280], mm5 !MOVQ QWORD [R8+288], mm5 !MOVQ QWORD [R8+296], mm5 !MOVQ QWORD [R8+304], mm5 !MOVQ QWORD [R8+312], mm5 !MOVQ QWORD [R8+320], mm5 !MOVQ QWORD [R8+328], mm5 !MOVQ QWORD [R8+336], mm5 !MOVQ QWORD [R8+344], mm5 !MOVQ QWORD [R8+352], mm5 !MOVQ QWORD [R8+360], mm5 !MOVQ QWORD [R8+368], mm5 !MOVQ QWORD [R8+376], mm5 !MOVQ QWORD [R8+384], mm5 !MOVQ QWORD [R8+392], mm5 !MOVQ QWORD [R8+400], mm5 !MOVQ QWORD [R8+408], mm5 !MOVQ QWORD [R8+416], mm5 !MOVQ QWORD [R8+424], mm5 !MOVQ QWORD [R8+432], mm5 !MOVQ QWORD [R8+440], mm5 !MOVQ QWORD [R8+448], mm5 !MOVQ QWORD [R8+456], mm5 !MOVQ QWORD [R8+464], mm5 !MOVQ QWORD [R8+472], mm5 !MOVQ QWORD [R8+480], mm5 !MOVQ QWORD [R8+488], mm5 !MOVQ QWORD [R8+496], mm5 !MOVQ QWORD [R8+504], mm5 !MOVQ QWORD [R8+512], mm5 !MOVQ QWORD [R8+520], mm5 !MOVQ QWORD [R8+528], mm5 !MOVQ QWORD [R8+536], mm5 !MOVQ QWORD [R8+544], mm5 !MOVQ QWORD [R8+552], mm5 !MOVQ QWORD [R8+560], mm5 !MOVQ QWORD [R8+568], mm5 !MOVQ QWORD [R8+576], mm5 !MOVQ QWORD [R8+584], mm5 !MOVQ QWORD [R8+592], mm5 !MOVQ QWORD [R8+600], mm5 !MOVQ QWORD [R8+608], mm5 !MOVQ QWORD [R8+616], mm5 !MOVQ QWORD [R8+624], mm5 !MOVQ QWORD [R8+632], mm5 !MOVQ QWORD [R8+640], mm5 !MOVQ QWORD [R8+648], mm5 !MOVQ QWORD [R8+656], mm5 !MOVQ QWORD [R8+664], mm5 !MOVQ QWORD [R8+672], mm5 !MOVQ QWORD [R8+680], mm5 !MOVQ QWORD [R8+688], mm5 !MOVQ QWORD [R8+696], mm5 !MOVQ QWORD [R8+704], mm5 !MOVQ QWORD [R8+712], mm5 !MOVQ QWORD [R8+720], mm5 !MOVQ QWORD [R8+728], mm5 !MOVQ QWORD [R8+736], mm5 !MOVQ QWORD [R8+744], mm5 !MOVQ QWORD [R8+752], mm5 !MOVQ QWORD [R8+760], mm5 !MOVQ QWORD [R8+768], mm5 !MOVQ QWORD [R8+776], mm5 !MOVQ QWORD [R8+784], mm5 !MOVQ QWORD [R8+792], mm5 !MOVQ QWORD [R8+800], mm5 !MOVQ QWORD [R8+808], mm5 !MOVQ QWORD [R8+816], mm5 !MOVQ QWORD [R8+824], mm5 !MOVQ QWORD [R8+832], mm5 !MOVQ QWORD [R8+840], mm5 !MOVQ QWORD [R8+848], mm5 !MOVQ QWORD [R8+856], mm5 !MOVQ QWORD [R8+864], mm5 !MOVQ QWORD [R8+872], mm5 !MOVQ QWORD [R8+880], mm5 !MOVQ QWORD [R8+888], mm5 !MOVQ QWORD [R8+896], mm5 !MOVQ QWORD [R8+904], mm5 !MOVQ QWORD [R8+912], mm5 !MOVQ QWORD [R8+920], mm5 !MOVQ QWORD [R8+928], mm5 !MOVQ QWORD [R8+936], mm5 !MOVQ QWORD [R8+944], mm5 !MOVQ QWORD [R8+952], mm5 !MOVQ QWORD [R8+960], mm5 !MOVQ QWORD [R8+968], mm5 !MOVQ QWORD [R8+976], mm5 !MOVQ QWORD [R8+984], mm5 !MOVQ QWORD [R8+992], mm5 !MOVQ QWORD [R8+1000], mm5 !MOVQ QWORD [R8+1008], mm5 !MOVQ QWORD [R8+1016], mm5 !EMMS ; Macro FXSAVE ; !MOV R8, QWORD [p_FXSAVE] ; !FXSAVE64 [R8] ; EndMacro ; ; Macro FXRSTOR ; !MOV R8, QWORD [p_FXSAVE] ; !FXRSTOR64 [R8] ; EndMacro
IncludeFile "FXSAVE_FXRSTOR_Rev3.pbi": Macro FXCACHE ; !MOV R8, QWORD [p_FXSAVE] !NOP QWORD [R8+0] !NOP QWORD [R8+8] !NOP QWORD [R8+16] !NOP QWORD [R8+24] !NOP QWORD [R8+32] !NOP QWORD [R8+40] !NOP QWORD [R8+48] !NOP QWORD [R8+56] !NOP QWORD [R8+64] !NOP QWORD [R8+72] !NOP QWORD [R8+80] !NOP QWORD [R8+88] !NOP QWORD [R8+96] !NOP QWORD [R8+104] !NOP QWORD [R8+112] !NOP QWORD [R8+120] !NOP QWORD [R8+128] !NOP QWORD [R8+136] !NOP QWORD [R8+144] !NOP QWORD [R8+152] !NOP QWORD [R8+160] !NOP QWORD [R8+168] !NOP QWORD [R8+176] !NOP QWORD [R8+184] !NOP QWORD [R8+192] !NOP QWORD [R8+200] !NOP QWORD [R8+208] !NOP QWORD [R8+216] !NOP QWORD [R8+224] !NOP QWORD [R8+232] !NOP QWORD [R8+240] !NOP QWORD [R8+248] !NOP QWORD [R8+256] !NOP QWORD [R8+264] !NOP QWORD [R8+272] !NOP QWORD [R8+280] !NOP QWORD [R8+288] !NOP QWORD [R8+296] !NOP QWORD [R8+304] !NOP QWORD [R8+312] !NOP QWORD [R8+320] !NOP QWORD [R8+328] !NOP QWORD [R8+336] !NOP QWORD [R8+344] !NOP QWORD [R8+352] !NOP QWORD [R8+360] !NOP QWORD [R8+368] !NOP QWORD [R8+376] !NOP QWORD [R8+384] !NOP QWORD [R8+392] !NOP QWORD [R8+400] !NOP QWORD [R8+408] !NOP QWORD [R8+416] !NOP QWORD [R8+424] !NOP QWORD [R8+432] !NOP QWORD [R8+440] !NOP QWORD [R8+448] !NOP QWORD [R8+456] !NOP QWORD [R8+464] !NOP QWORD [R8+472] !NOP QWORD [R8+480] !NOP QWORD [R8+488] !NOP QWORD [R8+496] !NOP QWORD [R8+504] EndMacro Macro FXCLEAR_ALL ALL_MMX_CLEAR_SHIFTWORD_INC_CL ; !MOV R8, QWORD [p_FXSAVE] !MOVQ QWORD [R8-512], mm5 !MOVQ QWORD [R8-504], mm5 !MOVQ QWORD [R8-496], mm5 !MOVQ QWORD [R8-488], mm5 !MOVQ QWORD [R8-480], mm5 !MOVQ QWORD [R8-472], mm5 !MOVQ QWORD [R8-464], mm5 !MOVQ QWORD [R8-456], mm5 !MOVQ QWORD [R8-448], mm5 !MOVQ QWORD [R8-440], mm5 !MOVQ QWORD [R8-432], mm5 !MOVQ QWORD [R8-424], mm5 !MOVQ QWORD [R8-416], mm5 !MOVQ QWORD [R8-408], mm5 !MOVQ QWORD [R8-400], mm5 !MOVQ QWORD [R8-392], mm5 !MOVQ QWORD [R8-384], mm5 !MOVQ QWORD [R8-376], mm5 !MOVQ QWORD [R8-368], mm5 !MOVQ QWORD [R8-360], mm5 !MOVQ QWORD [R8-352], mm5 !MOVQ QWORD [R8-344], mm5 !MOVQ QWORD [R8-336], mm5 !MOVQ QWORD [R8-328], mm5 !MOVQ QWORD [R8-320], mm5 !MOVQ QWORD [R8-312], mm5 !MOVQ QWORD [R8-304], mm5 !MOVQ QWORD [R8-296], mm5 !MOVQ QWORD [R8-288], mm5 !MOVQ QWORD [R8-280], mm5 !MOVQ QWORD [R8-272], mm5 !MOVQ QWORD [R8-264], mm5 !MOVQ QWORD [R8-256], mm5 !MOVQ QWORD [R8-248], mm5 !MOVQ QWORD [R8-240], mm5 !MOVQ QWORD [R8-232], mm5 !MOVQ QWORD [R8-224], mm5 !MOVQ QWORD [R8-216], mm5 !MOVQ QWORD [R8-208], mm5 !MOVQ QWORD [R8-200], mm5 !MOVQ QWORD [R8-192], mm5 !MOVQ QWORD [R8-184], mm5 !MOVQ QWORD [R8-176], mm5 !MOVQ QWORD [R8-168], mm5 !MOVQ QWORD [R8-160], mm5 !MOVQ QWORD [R8-152], mm5 !MOVQ QWORD [R8-144], mm5 !MOVQ QWORD [R8-136], mm5 !MOVQ QWORD [R8-128], mm5 !MOVQ QWORD [R8-120], mm5 !MOVQ QWORD [R8-112], mm5 !MOVQ QWORD [R8-104], mm5 !MOVQ QWORD [R8-96], mm5 !MOVQ QWORD [R8-88], mm5 !MOVQ QWORD [R8-80], mm5 !MOVQ QWORD [R8-72], mm5 !MOVQ QWORD [R8-64], mm5 !MOVQ QWORD [R8-56], mm5 !MOVQ QWORD [R8-48], mm5 !MOVQ QWORD [R8-40], mm5 !MOVQ QWORD [R8-32], mm5 !MOVQ QWORD [R8-24], mm5 !MOVQ QWORD [R8-16], mm5 !MOVQ QWORD [R8-8], mm5 !MOVNTQ QWORD [R8+0], mm5 !MOVNTQ QWORD [R8+8], mm5 !MOVNTQ QWORD [R8+16], mm5 !MOVNTQ QWORD [R8+24], mm5 !MOVNTQ QWORD [R8+32], mm5 !MOVNTQ QWORD [R8+40], mm5 !MOVNTQ QWORD [R8+48], mm5 !MOVNTQ QWORD [R8+56], mm5 !MOVNTQ QWORD [R8+64], mm5 !MOVNTQ QWORD [R8+72], mm5 !MOVNTQ QWORD [R8+80], mm5 !MOVNTQ QWORD [R8+88], mm5 !MOVNTQ QWORD [R8+96], mm5 !MOVNTQ QWORD [R8+104], mm5 !MOVNTQ QWORD [R8+112], mm5 !MOVNTQ QWORD [R8+120], mm5 !MOVNTQ QWORD [R8+128], mm5 !MOVNTQ QWORD [R8+136], mm5 !MOVNTQ QWORD [R8+144], mm5 !MOVNTQ QWORD [R8+152], mm5 !MOVNTQ QWORD [R8+160], mm5 !MOVNTQ QWORD [R8+168], mm5 !MOVNTQ QWORD [R8+176], mm5 !MOVNTQ QWORD [R8+184], mm5 !MOVNTQ QWORD [R8+192], mm5 !MOVNTQ QWORD [R8+200], mm5 !MOVNTQ QWORD [R8+208], mm5 !MOVNTQ QWORD [R8+216], mm5 !MOVNTQ QWORD [R8+224], mm5 !MOVNTQ QWORD [R8+232], mm5 !MOVNTQ QWORD [R8+240], mm5 !MOVNTQ QWORD [R8+248], mm5 !MOVNTQ QWORD [R8+256], mm5 !MOVNTQ QWORD [R8+264], mm5 !MOVNTQ QWORD [R8+272], mm5 !MOVNTQ QWORD [R8+280], mm5 !MOVNTQ QWORD [R8+288], mm5 !MOVNTQ QWORD [R8+296], mm5 !MOVNTQ QWORD [R8+304], mm5 !MOVNTQ QWORD [R8+312], mm5 !MOVNTQ QWORD [R8+320], mm5 !MOVNTQ QWORD [R8+328], mm5 !MOVNTQ QWORD [R8+336], mm5 !MOVNTQ QWORD [R8+344], mm5 !MOVNTQ QWORD [R8+352], mm5 !MOVNTQ QWORD [R8+360], mm5 !MOVNTQ QWORD [R8+368], mm5 !MOVNTQ QWORD [R8+376], mm5 !MOVNTQ QWORD [R8+384], mm5 !MOVNTQ QWORD [R8+392], mm5 !MOVNTQ QWORD [R8+400], mm5 !MOVNTQ QWORD [R8+408], mm5 !MOVNTQ QWORD [R8+416], mm5 !MOVNTQ QWORD [R8+424], mm5 !MOVNTQ QWORD [R8+432], mm5 !MOVNTQ QWORD [R8+440], mm5 !MOVNTQ QWORD [R8+448], mm5 !MOVNTQ QWORD [R8+456], mm5 !MOVNTQ QWORD [R8+464], mm5 !MOVNTQ QWORD [R8+472], mm5 !MOVNTQ QWORD [R8+480], mm5 !MOVNTQ QWORD [R8+488], mm5 !MOVNTQ QWORD [R8+496], mm5 !MOVNTQ QWORD [R8+504], mm5 !NOP QWORD [R8+0] !NOP QWORD [R8+8] !NOP QWORD [R8+16] !NOP QWORD [R8+24] !NOP QWORD [R8+32] !NOP QWORD [R8+40] !NOP QWORD [R8+48] !NOP QWORD [R8+56] !NOP QWORD [R8+64] !NOP QWORD [R8+72] !NOP QWORD [R8+80] !NOP QWORD [R8+88] !NOP QWORD [R8+96] !NOP QWORD [R8+104] !NOP QWORD [R8+112] !NOP QWORD [R8+120] !NOP QWORD [R8+128] !NOP QWORD [R8+136] !NOP QWORD [R8+144] !NOP QWORD [R8+152] !NOP QWORD [R8+160] !NOP QWORD [R8+168] !NOP QWORD [R8+176] !NOP QWORD [R8+184] !NOP QWORD [R8+192] !NOP QWORD [R8+200] !NOP QWORD [R8+208] !NOP QWORD [R8+216] !NOP QWORD [R8+224] !NOP QWORD [R8+232] !NOP QWORD [R8+240] !NOP QWORD [R8+248] !NOP QWORD [R8+256] !NOP QWORD [R8+264] !NOP QWORD [R8+272] !NOP QWORD [R8+280] !NOP QWORD [R8+288] !NOP QWORD [R8+296] !NOP QWORD [R8+304] !NOP QWORD [R8+312] !NOP QWORD [R8+320] !NOP QWORD [R8+328] !NOP QWORD [R8+336] !NOP QWORD [R8+344] !NOP QWORD [R8+352] !NOP QWORD [R8+360] !NOP QWORD [R8+368] !NOP QWORD [R8+376] !NOP QWORD [R8+384] !NOP QWORD [R8+392] !NOP QWORD [R8+400] !NOP QWORD [R8+408] !NOP QWORD [R8+416] !NOP QWORD [R8+424] !NOP QWORD [R8+432] !NOP QWORD [R8+440] !NOP QWORD [R8+448] !NOP QWORD [R8+456] !NOP QWORD [R8+464] !NOP QWORD [R8+472] !NOP QWORD [R8+480] !NOP QWORD [R8+488] !NOP QWORD [R8+496] !NOP QWORD [R8+504] !MOVQ QWORD [R8+512], mm5 !MOVQ QWORD [R8+520], mm5 !MOVQ QWORD [R8+528], mm5 !MOVQ QWORD [R8+536], mm5 !MOVQ QWORD [R8+544], mm5 !MOVQ QWORD [R8+552], mm5 !MOVQ QWORD [R8+560], mm5 !MOVQ QWORD [R8+568], mm5 !MOVQ QWORD [R8+576], mm5 !MOVQ QWORD [R8+584], mm5 !MOVQ QWORD [R8+592], mm5 !MOVQ QWORD [R8+600], mm5 !MOVQ QWORD [R8+608], mm5 !MOVQ QWORD [R8+616], mm5 !MOVQ QWORD [R8+624], mm5 !MOVQ QWORD [R8+632], mm5 !MOVQ QWORD [R8+640], mm5 !MOVQ QWORD [R8+648], mm5 !MOVQ QWORD [R8+656], mm5 !MOVQ QWORD [R8+664], mm5 !MOVQ QWORD [R8+672], mm5 !MOVQ QWORD [R8+680], mm5 !MOVQ QWORD [R8+688], mm5 !MOVQ QWORD [R8+696], mm5 !MOVQ QWORD [R8+704], mm5 !MOVQ QWORD [R8+712], mm5 !MOVQ QWORD [R8+720], mm5 !MOVQ QWORD [R8+728], mm5 !MOVQ QWORD [R8+736], mm5 !MOVQ QWORD [R8+744], mm5 !MOVQ QWORD [R8+752], mm5 !MOVQ QWORD [R8+760], mm5 !MOVQ QWORD [R8+768], mm5 !MOVQ QWORD [R8+776], mm5 !MOVQ QWORD [R8+784], mm5 !MOVQ QWORD [R8+792], mm5 !MOVQ QWORD [R8+800], mm5 !MOVQ QWORD [R8+808], mm5 !MOVQ QWORD [R8+816], mm5 !MOVQ QWORD [R8+824], mm5 !MOVQ QWORD [R8+832], mm5 !MOVQ QWORD [R8+840], mm5 !MOVQ QWORD [R8+848], mm5 !MOVQ QWORD [R8+856], mm5 !MOVQ QWORD [R8+864], mm5 !MOVQ QWORD [R8+872], mm5 !MOVQ QWORD [R8+880], mm5 !MOVQ QWORD [R8+888], mm5 !MOVQ QWORD [R8+896], mm5 !MOVQ QWORD [R8+904], mm5 !MOVQ QWORD [R8+912], mm5 !MOVQ QWORD [R8+920], mm5 !MOVQ QWORD [R8+928], mm5 !MOVQ QWORD [R8+936], mm5 !MOVQ QWORD [R8+944], mm5 !MOVQ QWORD [R8+952], mm5 !MOVQ QWORD [R8+960], mm5 !MOVQ QWORD [R8+968], mm5 !MOVQ QWORD [R8+976], mm5 !MOVQ QWORD [R8+984], mm5 !MOVQ QWORD [R8+992], mm5 !MOVQ QWORD [R8+1000], mm5 !MOVQ QWORD [R8+1008], mm5 !MOVQ QWORD [R8+1016], mm5 !EMMS EndMacro Macro FXCLEAR_512 ALL_MMX_CLEAR_SHIFTWORD_INC_CL ; !MOV R8, QWORD [p_FXSAVE] !MOVQ QWORD [R8+0], mm5 !MOVQ QWORD [R8+8], mm5 !MOVQ QWORD [R8+16], mm5 !MOVQ QWORD [R8+24], mm5 !MOVQ QWORD [R8+32], mm5 !MOVQ QWORD [R8+40], mm5 !MOVQ QWORD [R8+48], mm5 !MOVQ QWORD [R8+56], mm5 !MOVQ QWORD [R8+64], mm5 !MOVQ QWORD [R8+72], mm5 !MOVQ QWORD [R8+80], mm5 !MOVQ QWORD [R8+88], mm5 !MOVQ QWORD [R8+96], mm5 !MOVQ QWORD [R8+104], mm5 !MOVQ QWORD [R8+112], mm5 !MOVQ QWORD [R8+120], mm5 !MOVQ QWORD [R8+128], mm5 !MOVQ QWORD [R8+136], mm5 !MOVQ QWORD [R8+144], mm5 !MOVQ QWORD [R8+152], mm5 !MOVQ QWORD [R8+160], mm5 !MOVQ QWORD [R8+168], mm5 !MOVQ QWORD [R8+176], mm5 !MOVQ QWORD [R8+184], mm5 !MOVQ QWORD [R8+192], mm5 !MOVQ QWORD [R8+200], mm5 !MOVQ QWORD [R8+208], mm5 !MOVQ QWORD [R8+216], mm5 !MOVQ QWORD [R8+224], mm5 !MOVQ QWORD [R8+232], mm5 !MOVQ QWORD [R8+240], mm5 !MOVQ QWORD [R8+248], mm5 !MOVQ QWORD [R8+256], mm5 !MOVQ QWORD [R8+264], mm5 !MOVQ QWORD [R8+272], mm5 !MOVQ QWORD [R8+280], mm5 !MOVQ QWORD [R8+288], mm5 !MOVQ QWORD [R8+296], mm5 !MOVQ QWORD [R8+304], mm5 !MOVQ QWORD [R8+312], mm5 !MOVQ QWORD [R8+320], mm5 !MOVQ QWORD [R8+328], mm5 !MOVQ QWORD [R8+336], mm5 !MOVQ QWORD [R8+344], mm5 !MOVQ QWORD [R8+352], mm5 !MOVQ QWORD [R8+360], mm5 !MOVQ QWORD [R8+368], mm5 !MOVQ QWORD [R8+376], mm5 !MOVQ QWORD [R8+384], mm5 !MOVQ QWORD [R8+392], mm5 !MOVQ QWORD [R8+400], mm5 !MOVQ QWORD [R8+408], mm5 !MOVQ QWORD [R8+416], mm5 !MOVQ QWORD [R8+424], mm5 !MOVQ QWORD [R8+432], mm5 !MOVQ QWORD [R8+440], mm5 !MOVQ QWORD [R8+448], mm5 !MOVQ QWORD [R8+456], mm5 !MOVQ QWORD [R8+464], mm5 !MOVQ QWORD [R8+472], mm5 !MOVQ QWORD [R8+480], mm5 !MOVQ QWORD [R8+488], mm5 !MOVQ QWORD [R8+496], mm5 !MOVQ QWORD [R8+504], mm5 !EMMS EndMacro Global *FXSAVE BLSR_Rcx_x64 BLSR_Rdx_x64 BLSR_R8_x64 !INC R8b !INC R8b !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !MOV R8b, R8b !MOV R8w, R8w !MOV R8, R8 !SHL R8, cl !XCHG Rcx, R8 !INC dl !MOVZX Rdx, dl !CALL PB_AllocateMemory2 BLSR_Rcx_x64 BLSR_R8_x64 !INC R8b !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !INC cl !SHL R8, cl !MOV R8b, R8b !MOV R8w, R8w !MOV R8, R8 !MOV al, al !MOV ah, ah !MOV ax, ax !MOV Rax, Rax !ADD Rax, R8 !MOVNTI QWORD [p_FXSAVE], Rax !NOP QWORD [p_FXSAVE] ALL_MMX_CLEAR_SHIFTWORD_INC_CL !MOV R8, QWORD [p_FXSAVE] !MOVQ QWORD [R8-512], mm5 !MOVQ QWORD [R8-504], mm5 !MOVQ QWORD [R8-496], mm5 !MOVQ QWORD [R8-488], mm5 !MOVQ QWORD [R8-480], mm5 !MOVQ QWORD [R8-472], mm5 !MOVQ QWORD [R8-464], mm5 !MOVQ QWORD [R8-456], mm5 !MOVQ QWORD [R8-448], mm5 !MOVQ QWORD [R8-440], mm5 !MOVQ QWORD [R8-432], mm5 !MOVQ QWORD [R8-424], mm5 !MOVQ QWORD [R8-416], mm5 !MOVQ QWORD [R8-408], mm5 !MOVQ QWORD [R8-400], mm5 !MOVQ QWORD [R8-392], mm5 !MOVQ QWORD [R8-384], mm5 !MOVQ QWORD [R8-376], mm5 !MOVQ QWORD [R8-368], mm5 !MOVQ QWORD [R8-360], mm5 !MOVQ QWORD [R8-352], mm5 !MOVQ QWORD [R8-344], mm5 !MOVQ QWORD [R8-336], mm5 !MOVQ QWORD [R8-328], mm5 !MOVQ QWORD [R8-320], mm5 !MOVQ QWORD [R8-312], mm5 !MOVQ QWORD [R8-304], mm5 !MOVQ QWORD [R8-296], mm5 !MOVQ QWORD [R8-288], mm5 !MOVQ QWORD [R8-280], mm5 !MOVQ QWORD [R8-272], mm5 !MOVQ QWORD [R8-264], mm5 !MOVQ QWORD [R8-256], mm5 !MOVQ QWORD [R8-248], mm5 !MOVQ QWORD [R8-240], mm5 !MOVQ QWORD [R8-232], mm5 !MOVQ QWORD [R8-224], mm5 !MOVQ QWORD [R8-216], mm5 !MOVQ QWORD [R8-208], mm5 !MOVQ QWORD [R8-200], mm5 !MOVQ QWORD [R8-192], mm5 !MOVQ QWORD [R8-184], mm5 !MOVQ QWORD [R8-176], mm5 !MOVQ QWORD [R8-168], mm5 !MOVQ QWORD [R8-160], mm5 !MOVQ QWORD [R8-152], mm5 !MOVQ QWORD [R8-144], mm5 !MOVQ QWORD [R8-136], mm5 !MOVQ QWORD [R8-128], mm5 !MOVQ QWORD [R8-120], mm5 !MOVQ QWORD [R8-112], mm5 !MOVQ QWORD [R8-104], mm5 !MOVQ QWORD [R8-96], mm5 !MOVQ QWORD [R8-88], mm5 !MOVQ QWORD [R8-80], mm5 !MOVQ QWORD [R8-72], mm5 !MOVQ QWORD [R8-64], mm5 !MOVQ QWORD [R8-56], mm5 !MOVQ QWORD [R8-48], mm5 !MOVQ QWORD [R8-40], mm5 !MOVQ QWORD [R8-32], mm5 !MOVQ QWORD [R8-24], mm5 !MOVQ QWORD [R8-16], mm5 !MOVQ QWORD [R8-8], mm5 !MOVNTQ QWORD [R8+0], mm5 !MOVNTQ QWORD [R8+8], mm5 !MOVNTQ QWORD [R8+16], mm5 !MOVNTQ QWORD [R8+24], mm5 !MOVNTQ QWORD [R8+32], mm5 !MOVNTQ QWORD [R8+40], mm5 !MOVNTQ QWORD [R8+48], mm5 !MOVNTQ QWORD [R8+56], mm5 !MOVNTQ QWORD [R8+64], mm5 !MOVNTQ QWORD [R8+72], mm5 !MOVNTQ QWORD [R8+80], mm5 !MOVNTQ QWORD [R8+88], mm5 !MOVNTQ QWORD [R8+96], mm5 !MOVNTQ QWORD [R8+104], mm5 !MOVNTQ QWORD [R8+112], mm5 !MOVNTQ QWORD [R8+120], mm5 !MOVNTQ QWORD [R8+128], mm5 !MOVNTQ QWORD [R8+136], mm5 !MOVNTQ QWORD [R8+144], mm5 !MOVNTQ QWORD [R8+152], mm5 !MOVNTQ QWORD [R8+160], mm5 !MOVNTQ QWORD [R8+168], mm5 !MOVNTQ QWORD [R8+176], mm5 !MOVNTQ QWORD [R8+184], mm5 !MOVNTQ QWORD [R8+192], mm5 !MOVNTQ QWORD [R8+200], mm5 !MOVNTQ QWORD [R8+208], mm5 !MOVNTQ QWORD [R8+216], mm5 !MOVNTQ QWORD [R8+224], mm5 !MOVNTQ QWORD [R8+232], mm5 !MOVNTQ QWORD [R8+240], mm5 !MOVNTQ QWORD [R8+248], mm5 !MOVNTQ QWORD [R8+256], mm5 !MOVNTQ QWORD [R8+264], mm5 !MOVNTQ QWORD [R8+272], mm5 !MOVNTQ QWORD [R8+280], mm5 !MOVNTQ QWORD [R8+288], mm5 !MOVNTQ QWORD [R8+296], mm5 !MOVNTQ QWORD [R8+304], mm5 !MOVNTQ QWORD [R8+312], mm5 !MOVNTQ QWORD [R8+320], mm5 !MOVNTQ QWORD [R8+328], mm5 !MOVNTQ QWORD [R8+336], mm5 !MOVNTQ QWORD [R8+344], mm5 !MOVNTQ QWORD [R8+352], mm5 !MOVNTQ QWORD [R8+360], mm5 !MOVNTQ QWORD [R8+368], mm5 !MOVNTQ QWORD [R8+376], mm5 !MOVNTQ QWORD [R8+384], mm5 !MOVNTQ QWORD [R8+392], mm5 !MOVNTQ QWORD [R8+400], mm5 !MOVNTQ QWORD [R8+408], mm5 !MOVNTQ QWORD [R8+416], mm5 !MOVNTQ QWORD [R8+424], mm5 !MOVNTQ QWORD [R8+432], mm5 !MOVNTQ QWORD [R8+440], mm5 !MOVNTQ QWORD [R8+448], mm5 !MOVNTQ QWORD [R8+456], mm5 !MOVNTQ QWORD [R8+464], mm5 !MOVNTQ QWORD [R8+472], mm5 !MOVNTQ QWORD [R8+480], mm5 !MOVNTQ QWORD [R8+488], mm5 !MOVNTQ QWORD [R8+496], mm5 !MOVNTQ QWORD [R8+504], mm5 !NOP QWORD [R8+0] !NOP QWORD [R8+8] !NOP QWORD [R8+16] !NOP QWORD [R8+24] !NOP QWORD [R8+32] !NOP QWORD [R8+40] !NOP QWORD [R8+48] !NOP QWORD [R8+56] !NOP QWORD [R8+64] !NOP QWORD [R8+72] !NOP QWORD [R8+80] !NOP QWORD [R8+88] !NOP QWORD [R8+96] !NOP QWORD [R8+104] !NOP QWORD [R8+112] !NOP QWORD [R8+120] !NOP QWORD [R8+128] !NOP QWORD [R8+136] !NOP QWORD [R8+144] !NOP QWORD [R8+152] !NOP QWORD [R8+160] !NOP QWORD [R8+168] !NOP QWORD [R8+176] !NOP QWORD [R8+184] !NOP QWORD [R8+192] !NOP QWORD [R8+200] !NOP QWORD [R8+208] !NOP QWORD [R8+216] !NOP QWORD [R8+224] !NOP QWORD [R8+232] !NOP QWORD [R8+240] !NOP QWORD [R8+248] !NOP QWORD [R8+256] !NOP QWORD [R8+264] !NOP QWORD [R8+272] !NOP QWORD [R8+280] !NOP QWORD [R8+288] !NOP QWORD [R8+296] !NOP QWORD [R8+304] !NOP QWORD [R8+312] !NOP QWORD [R8+320] !NOP QWORD [R8+328] !NOP QWORD [R8+336] !NOP QWORD [R8+344] !NOP QWORD [R8+352] !NOP QWORD [R8+360] !NOP QWORD [R8+368] !NOP QWORD [R8+376] !NOP QWORD [R8+384] !NOP QWORD [R8+392] !NOP QWORD [R8+400] !NOP QWORD [R8+408] !NOP QWORD [R8+416] !NOP QWORD [R8+424] !NOP QWORD [R8+432] !NOP QWORD [R8+440] !NOP QWORD [R8+448] !NOP QWORD [R8+456] !NOP QWORD [R8+464] !NOP QWORD [R8+472] !NOP QWORD [R8+480] !NOP QWORD [R8+488] !NOP QWORD [R8+496] !NOP QWORD [R8+504] !MOVQ QWORD [R8+512], mm5 !MOVQ QWORD [R8+520], mm5 !MOVQ QWORD [R8+528], mm5 !MOVQ QWORD [R8+536], mm5 !MOVQ QWORD [R8+544], mm5 !MOVQ QWORD [R8+552], mm5 !MOVQ QWORD [R8+560], mm5 !MOVQ QWORD [R8+568], mm5 !MOVQ QWORD [R8+576], mm5 !MOVQ QWORD [R8+584], mm5 !MOVQ QWORD [R8+592], mm5 !MOVQ QWORD [R8+600], mm5 !MOVQ QWORD [R8+608], mm5 !MOVQ QWORD [R8+616], mm5 !MOVQ QWORD [R8+624], mm5 !MOVQ QWORD [R8+632], mm5 !MOVQ QWORD [R8+640], mm5 !MOVQ QWORD [R8+648], mm5 !MOVQ QWORD [R8+656], mm5 !MOVQ QWORD [R8+664], mm5 !MOVQ QWORD [R8+672], mm5 !MOVQ QWORD [R8+680], mm5 !MOVQ QWORD [R8+688], mm5 !MOVQ QWORD [R8+696], mm5 !MOVQ QWORD [R8+704], mm5 !MOVQ QWORD [R8+712], mm5 !MOVQ QWORD [R8+720], mm5 !MOVQ QWORD [R8+728], mm5 !MOVQ QWORD [R8+736], mm5 !MOVQ QWORD [R8+744], mm5 !MOVQ QWORD [R8+752], mm5 !MOVQ QWORD [R8+760], mm5 !MOVQ QWORD [R8+768], mm5 !MOVQ QWORD [R8+776], mm5 !MOVQ QWORD [R8+784], mm5 !MOVQ QWORD [R8+792], mm5 !MOVQ QWORD [R8+800], mm5 !MOVQ QWORD [R8+808], mm5 !MOVQ QWORD [R8+816], mm5 !MOVQ QWORD [R8+824], mm5 !MOVQ QWORD [R8+832], mm5 !MOVQ QWORD [R8+840], mm5 !MOVQ QWORD [R8+848], mm5 !MOVQ QWORD [R8+856], mm5 !MOVQ QWORD [R8+864], mm5 !MOVQ QWORD [R8+872], mm5 !MOVQ QWORD [R8+880], mm5 !MOVQ QWORD [R8+888], mm5 !MOVQ QWORD [R8+896], mm5 !MOVQ QWORD [R8+904], mm5 !MOVQ QWORD [R8+912], mm5 !MOVQ QWORD [R8+920], mm5 !MOVQ QWORD [R8+928], mm5 !MOVQ QWORD [R8+936], mm5 !MOVQ QWORD [R8+944], mm5 !MOVQ QWORD [R8+952], mm5 !MOVQ QWORD [R8+960], mm5 !MOVQ QWORD [R8+968], mm5 !MOVQ QWORD [R8+976], mm5 !MOVQ QWORD [R8+984], mm5 !MOVQ QWORD [R8+992], mm5 !MOVQ QWORD [R8+1000], mm5 !MOVQ QWORD [R8+1008], mm5 !MOVQ QWORD [R8+1016], mm5 !EMMS FXCACHE Macro FXSAVE ;!MOV R8, QWORD [p_FXSAVE] !NOP QWORD [Rip] !NOP QWORD [Rip] !FXSAVE64 [R8] EndMacro Macro FXRSTOR ;!MOV R8, QWORD [p_FXSAVE] !NOP QWORD [Rip] !NOP QWORD [Rip] !FXRSTOR64 [R8] EndMacro
ディスク領域長さ MOV CL, 12 ディスク読み書き先頭: ディスク書き込み処理 LOOP ディスク読み書き先頭
ディスク領域長さ MOV CL, 12 ディスク読み書き先頭: ディスク書き込み処理 DEC cl JNZ ディスク読み書き先頭
ディスク領域長さ MOV CL, 12 ディスク読み書き先頭: オーバークロック処理「ディスク書き込み処理 DEC cl JNZ」 JNZ ディスク読み書き先頭
ディスク領域長さ MOV CL, 12 NOP QWORD [Rip] NOP QWORD [Rip] ディスク読み書き先頭: NOP QWORD [Rip] or FNOP NOP QWORD [Rip] or FNOP ディスク書き込み処理 DEC cl NOP QWORD [Rip] or FNOP NOP QWORD [Rip] or FNOP NOP QWORD [Rip] or FNOP NOP QWORD [Rip] or FNOP JNZ QWORD ディスク読み書き先頭 NOP QWORD [Rip] or FNOP NOP QWORD [Rip] or FNOP XCHG cl, cl
ディスク書き込み処理 [R8] ディスク書き込み処理 [R8+8] ディスク書き込み処理 [R8+16] ディスク書き込み処理 [R8+24] ディスク書き込み処理 [R8+32] ディスク書き込み処理 [R8+40] ディスク書き込み処理 [R8+48] ディスク書き込み処理 [R8+56] ディスク書き込み処理 [R8+64] ディスク書き込み処理 [R8+72] ディスク書き込み処理 [R8+80] ディスク書き込み処理 [R8+88]
Macro BeforeProcedureRegisters_RIP64_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " MOV "+Reg64A()+", QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64A()+", "+Reg64A() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64A()+", "+Reg64A()+", "+Reg64A() Next BeforeProcedureRegisters_2nd ForEach Reg64B() AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip+16]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " MOV "+Reg64B()+", QWORD [Rip]" AddElement(Buffer()) : Buffer() = " NOP QWORD [Rip-36]" For Loop=1 To 64 AddElement(Buffer()) : Buffer() = " BLSR "+Reg64B()+", "+Reg64B() Next AddElement(Buffer()) : Buffer() = " BZHI "+Reg64B()+", "+Reg64B()+", "+Reg64B() Next BeforeProcedureRegisters_3rd EndMacro Macro MajiorityBuild_Tunes_2 ForEach Buffer() If FindString(Buffer(), "PureBasicStart:") BeforeProcedureRegisters_RIP64_BLSR BeforeProcedureRegisters_RIP64_BLSR ; 1 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 2 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 3 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; Break EndIf Next EndMacro
Macro BeforeProcedureRegisters_MOVBE_BLSR BeforeProcedureRegisters_1st ForEach Reg64A() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !MOVBE "+Reg64A()+", QWORD [Rip]" Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64A()+"_x64" Next BeforeProcedureRegisters_2nd ForEach Reg64B() Debug " !NOP QWORD [Rip+16]" Debug " !NOP QWORD [Rip]" Debug " !NOP QWORD [Rip]" Debug " !MOVBE "+Reg64B()+", QWORD [Rip]" Debug " !NOP QWORD [Rip-36]" Debug " BLSR_"+Reg64B()+"_x64" Next BeforeProcedureRegisters_3rd EndMacro BeforeProcedureRegisters_MOVBE_BLSR BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR Macro MajiorityBuild_Tunes_2 ForEach Buffer() If FindString(Buffer(), "PureBasicStart:") BeforeProcedureRegisters_MOVBE_BLSR BeforeProcedureRegisters_MOVBE_BLSR ; 1 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 2 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 3 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; Break EndIf Next EndMacro
Macro SIMPLE_A16_MOVE_REGISTERS_Up_and_Down RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) ForEach Reg64A() AddElement(Buffer()) : Buffer() = " MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A()) If Len(Reg8(Reg64A()))=2 AddElement(Buffer()) : Buffer() = " MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h") EndIf AddElement(Buffer()) : Buffer() = " MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A()) Next EndMacro Macro SIMPLE_B16_MOVE_REGISTERS_Up_and_Down RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B()) ForEach Reg64B() AddElement(Buffer()) : Buffer() = " MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B()) If Len(Reg8(Reg64B()))=2 AddElement(Buffer()) : Buffer() = " MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h") EndIf AddElement(Buffer()) : Buffer() = " MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B()) Next EndMacro Macro MajiorityBuild_Tunes_10 ForEach Buffer() If Left(Buffer(), 10) = "_Procedure" And Right(Buffer(), 1)=":" SIMPLE_A16_MOVE_REGISTERS_Up_and_Down SIMPLE_B16_MOVE_REGISTERS_Up_and_Down EndIf Next EndMacro MajiorityBuild_Tunes_10 MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3
Procedure ChannelLowerCut(*inbuf, length.i) Macro_ChannelLowerCut Protected CLC_pos.i, CLC_data.f For CLC_pos=D0 To length Step 4 CLC_data = PeekF(*inbuf+CLC_pos) If Abs(CLC_data) < F_0_4_d !MOV R8d, dword [p.v_CLC_data] !AND R8d, dword [p.v_H_FFFE0000] !MOV dword [p.v_CLC_data], R8d PokeF(*inbuf+CLC_pos, CLC_data ) EndIf Next EndProcedure Sinc_16(*FileBuffer, *OutBuffer, D0, Length+in_buf_size*D2) ChannelLowerCut(*OutBuffer+in_buf_size, Length) ChannelLowerCut(*in, pdiv) CopyMemoryMace(RN, pdiv, *in, *out_2)
Procedure lowpass(*input, *output, size.i, samplerate.d, cutfreq.d, qwidth.d) ; samplerate = 44100 ; cutfreq = 11025 ; qwidth = SQR(0.5) Protected omega.d, alpha.d, a0.d, a1.d, a2.d, b0.d, b1.d, b2.d,in1.d, in2.d, out1.d, out2.d, pos.i Protected in3.d, in4.d, out3.d, out4.d omega = 2.0 * #PI * cutfreq / samplerate alpha = Sin(omega) / (2.0 * qwidth) a0 = 1.0 + alpha a1 = -2.0 * Cos(omega) a2 = 1.0 - alpha b0 = (1.0 - Cos(omega)) / 2.0 b1 = 1.0 - Cos(omega) b2 = (1.0 - Cos(omega)) / 2.0 in1 = 0.0 in2 = 0.0 in3 = 0.0 in4 = 0.0 out1 = 0.0 out2 = 0.0 out3 = 0.0 out4 = 0.0 For pos=0 To size-1 Step 8 PokeF(*output+pos, b0/a0 * PeekF(*input+pos)+b1/a0*in1 + b2/a0*in2 - a1/a0*out1 - a2/a0*out2) Swap in1, in2 in1 = PeekF(*input+pos) Swap out1, out2 out1 = PeekF(*output+pos) PokeF(*output+pos+4, b0/a0 * PeekF(*input+pos+4)+b1/a0*in1 + b2/a0*in2 - a1/a0*out1 - a2/a0*out2) Swap in3, in4 in3 = PeekF(*input+pos+4) Swap out3, out4 out3 = PeekF(*output+pos+4) Next EndProcedure
ffmpeg\libavutil\mathematics.h 66: #ifndef M_PI ffmpeg\libavutil\mathematics.h 67: #define M_PI 3.14159265358979323846 /* pi */ PureBasic では 上記処理を実行すると、倍精度の仮数へ精度抑制が起きて、演算エラーになる。 3.141592653 589793 238462 643383 StrD(Freq_d1, 35) 3.14159265300000000000000000000000000 StrD(Freq_d2, 35) 0.00000000058979300000000012000000000 StrD(Freq_d3, 35) 0.00000000000000023846200000000002000 StrD(Freq_d4, 35) 0.00000000000000000000064338300000000 StrD(Freq_d1+Freq_d2, 35) 3.14159265358979310000000000000000000 StrD(Freq_d2+Freq_d3, 35) 0.00000000058979323846200008000000000 StrD(Freq_d3+Freq_d4, 35) 0.00000000000000023846264338300002000 Macro SincCalc_A (Freq_d1 * I + k * Freq_d2 / kfreq + Freq_d2 * I + k * Freq_d1 / kfreq ) + (Freq_d3 * I + k * Freq_d4 / kfreq + Freq_d4 * I + k * Freq_d3 / kfreq ) EndMacro Macro SincCalc_B (Freq_d2 * k / kfreq + I * Freq_d1 + Freq_d1 * k / kfreq + I * Freq_d2) + (Freq_d4 * k / kfreq + I * Freq_d3 + Freq_d3 * k / kfreq + I * Freq_d4) EndMacro For sample = -8 to sample PokeD(*Sinctables+8*sample, Sin(SincCalc_A)/SincCalc_B) Next
ffmepg を設計したパソコンは「M_PI」の定義から「浮動小数点 20桁」を前提として計算しています。倍精度の演算であれば「仮数 53ビット」から演算エラーになるのは避けられない。20桁では「20 x 4 bits = 80ビット」でなければならない。FPU 処理だけで書いていれば、FPU 80ビット で精度は出ており問題ない。ffmpeg のように複雑な処理であれば、倍精度の変数を用いる度に「53 / 4 bits = 13.25桁」へ精度劣化を生じる。
Cruse CD-RW music では、倍精度の変数を用いて精度保証できる桁数は 12桁 と考えて、どこまでの精度を出せるのか、検証している。ffmpeg の問題点は、下記の定義を適用しているのと同じになることで、音波であれば歪みやすい原因です。確実に精度保証する必要から、円周率の桁数を「6桁」定義として、演算テーブル作成時に「4倍精度の演算」を実施しているけれど、理論上では「2倍精度の演算」であるので、権利問題のクレームは発生していない。浮動小数点の桁数は「27桁」になっており、仮数108ビット処理になります。
ffmpeg\libavutil\mathematics.h 66: #ifndef M_PI ffmpeg\libavutil\mathematics.h 67: #define M_PI 3.141592653589793xxxxx /* pi */
小数点の終わりは「89793」、ヤクなくザ、と縁起が悪い。この精度問題は ffmpeg だけでなく、mathematics.h を用いているプログラムへ影響する。
ffmpeg\doc\examples\filter_audio.c 261: data[j] = sin(2 * M_PI * (frame_num + j) * (i + 1) / FRAME_SIZE); #define M_PI_S1 3.141592653 /* pi */ #define M_PI_S2 0.000000000589793 /* pi */ #define M_PI_S3 0.000000000000000238462 /* pi */ #define M_PI_S4 0.000000000000000000000643383 /* pi */ data[j] = sin(2 * M_PI_S1 * (frame_num + j) * (i + 1) / FRAME_SIZE) + sin(2 * M_PI_S2 * (frame_num + j) * (i + 1) / FRAME_SIZE) + sin(2 * M_PI_S3 * (frame_num + j) * (i + 1) / FRAME_SIZE) + sin(2 * M_PI_S4 * (frame_num + j) * (i + 1) / FRAME_SIZE)
このように記述すれば、演算エラーとならずに、歪みは聞こえない。
; 3.141592653 589793 238462 643383 Macro omega F_2_0_d * Freq_d1 * D11025 / samplerate + F_2_0_d * Freq_d2 * D11025 / samplerate + F_2_0_d * Freq_d3 * D11025 / samplerate + F_2_0_d * Freq_d4 * D11025 / samplerate EndMacro Macro alpha Sin(F_2_0_d * Freq_d1 * D11025 / samplerate + F_2_0_d * Freq_d2 * D11025 / samplerate + F_2_0_d * Freq_d3 * D11025 / samplerate + F_2_0_d * Freq_d4 * D11025 / samplerate) / (F_2_0_d * Log10(D8)) EndMacro For pos=D0 To size-D1 Step 8 in1pre = PeekF(*output+pos) PokeF(*output+pos, ((F_1_0_d - Cos(omega)) / F_2_0_d)/(F_1_0_d + alpha) * PeekF(*output+pos)+(F_1_0_d - Cos(omega))/(F_1_0_d + alpha)*in1 + ((F_1_0_d - Cos(omega)) / F_2_0_d)/(F_1_0_d + alpha)*in2 - (-F_2_0_d * Cos(omega))/(F_1_0_d + alpha)*out1 - (F_1_0_d - alpha)/(F_1_0_d + alpha)*out2) Swap in1, in2 in1 = in1pre Swap out1, out2 out1 = PeekF(*output+pos) in3pre = PeekF(*output+pos+D4) PokeF(*output+pos+D4, ((F_1_0_d - Cos(omega)) / F_2_0_d)/(F_1_0_d + alpha) * PeekF(*output+pos+D4)+(F_1_0_d - Cos(omega))/(F_1_0_d + alpha)*in3 + ((F_1_0_d - Cos(omega)) / F_2_0_d)/(F_1_0_d + alpha)*in4 - ( -F_2_0_d * Cos(omega))/(F_1_0_d + alpha)*out3 - (F_1_0_d - alpha)/(F_1_0_d + alpha)*out4) Swap in3, in4 in3 = in3pre Swap out3, out4 out3 = PeekF(*output+pos+D4) Next
Global NewList Buffer.s() Global NewList InstructionName.s() Global String_SetClipboardText.s If ReadFile(2, "PureBasic.asm") While Eof(2)=0 AddElement(Buffer()) Buffer() = ReadString(2) Wend CloseFile(2) EndIf ClearList(InstructionName()) ForEach Buffer() If FindString(Buffer(), "extrn ") AddElement(InstructionName()) InstructionName() = RemoveString(Buffer(), "extrn ") EndIf If ListSize(InstructionName())>1 If Left(Buffer(), 1)=";" Break EndIf EndIf Next ForEach Buffer() If Left(Buffer(), 10) = "_Procedure" And Right(Buffer(), 1)=":" AddElement(InstructionName()) InstructionName() = RemoveString(Buffer(), ":") EndIf Next ClearList(Buffer()) AddElement(Buffer()) : Buffer() = "Macro AfterWaitWindowEvent" ForEach InstructionName() AddElement(Buffer()) : Buffer() = " !NOP QWORD ["+InstructionName()+"]" AddElement(Buffer()) : Buffer() = " !NOP QWORD ["+InstructionName()+"+8]" AddElement(Buffer()) : Buffer() = " !NOP QWORD ["+InstructionName()+"+16]" Next AddElement(Buffer()) : Buffer() = " !NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = " !NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "EndMacro" ForEach Buffer() String_SetClipboardText + Buffer() + Chr(13) + Chr(10) Next SetClipboardText(String_SetClipboardText) End
Macro MajiorityBuild_Tunes_2 ForEach Buffer() If FindString(Buffer(), "PureBasicStart:") BeforeProcedureRegisters_MOVBE_BLSR BeforeProcedureRegisters_MOVBE_BLSR ; 1 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 2 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; 3 BeforeProcedureRegisters_CRC32_BLSR BeforeProcedureRegisters_RDSEED_BLSR ; ForEach InstructionName() AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"]" AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"+8]" AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"+16]" Next AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" Break EndIf Next EndMacro Macro MajiorityBuild_Tunes_12 ClearList(InstructionName()) ForEach Buffer() If FindString(Buffer(), "extrn ") AddElement(InstructionName()) InstructionName() = RemoveString(Buffer(), "extrn ") EndIf If ListSize(InstructionName())>1 If Left(Buffer(), 1)=";" Break EndIf EndIf Next ForEach Buffer() If Left(Buffer(), 10) = "_Procedure" And Right(Buffer(), 1)=":" AddElement(InstructionName()) InstructionName() = RemoveString(Buffer(), ":") EndIf Next EndMacro Macro MajiorityBuild_Tunes_13 ForEach Buffer() If Left(Buffer(), 6) = " CALL" And (Right(Buffer(), 18)="PB_WaitWindowEvent" Or Right(Buffer(), 19)="PB_WaitWindowEvent2") Debug "MajiorityBuild_Tunes_13" ForEach InstructionName() AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"]" AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"+8]" AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"+16]" Next AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" EndIf Next EndMacro Macro MajiorityBuild_Tunes_14 ForEach Buffer() If Left(Buffer(), 16) = "StartStabilizer:" Debug "MajiorityBuild_Tunes_14" ForEach InstructionName() AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"]" AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"+8]" AddElement(Buffer()) : Buffer() = "NOP QWORD ["+InstructionName()+"+16]" Next AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]" EndIf Next EndMacro ; _Tunes_Open MajiorityBuild_Removed_SMSW MajiorityBuild_Tunes_12 MajiorityBuild_Tunes_10 MajiorityBuild_Tunes_1 MajiorityBuild_Tunes_2 MajiorityBuild_Tunes_3 MajiorityBuild_Tunes_4 MajiorityBuild_Tunes_5 MajiorityBuild_Tunes_6 MajiorityBuild_Tunes_7 MajiorityBuild_Tunes_8 MajiorityBuild_Tunes_9 MajiorityBuild_Tunes_11 MajiorityBuild_Tunes_14 MajiorityBuild_Removed_SMSW ; MajiorityBuild_Tunes_Write
MajiorityBuild_Tunes_13 について、PureBasic forum Trick and Tips へ投稿しました。
横田宏幸様 いつもお世話になっております。 ES112の方、きかせていただいています。 解像度や音のキレの良さはもちろんのこと、音のバランス・立体感・生々しさが素晴らしいことが特筆できます。 このところの一連のヴァージョンの中でも、特に優れているのではないでしょうか。
横田宏幸様 いつもお世話になっております。 MC153の方、きかせていただいています。 音のバランスの良さと、響き(特に倍音)の美しさが、とても印象的です。 今までに全く無かった、ソフトでふわっとした音質だとおもいます。ただ、音源によっては、音に力強さや硬度、低音域の充実がほしいようにも感じられます。