音楽再生ソフトの研究開発

横田宏幸の略歴:井田小、葵中、城西高、中部大中退、SCRN正社員4.5年、ソフト作家

岡崎市立井田小学校、水泳部半年後拒否、一輪車部1年、緑の少年団(平湯キャンプ場)
岡崎市立葵中学校 マイコン部 初代、顧問1年小島(岡高数学)、2年3年杉浦 ゲーム開発
岡崎城西高校 普通科 皆勤賞、男声合唱団 パートリーダー3年 クラブ功労賞 数学わたなべ
中部大学 中退、中部大学混声合唱団 正指揮者1.5年 顧問 片岡教授(早稲田グリー正指揮者)
パソコン通信 春日井 KMF-NET(そがし)、岐阜 悶絶美少女昇天、岡崎 Z-NET(柴田)
学術インターネット 386BSD FreeBSD Linux 国際化ML参加、Mosaic NetNews 技術情報閲覧
ELP Okazaki パソコン店の見習い "世界最高のゲームプログラマーと出会う" 杉浦社長
Let's Nagoya "営業、3ヶ月" "幕張メッセ、東京ビッグサイト、出展スタッフ" 後藤社長
クラブ遊び「アナログDJ」マハラジャ岡崎、アビーム、ID、オゾン、JMAX、JB'S
SCREEN Nagoya DTP Support Enginner "Renatus" "FTS5000" "DTR3100" "LuvFitProof"
Copyright (C) 2002 oryaaaaa「FINAL PRINT」色空間原理特許の回避技術発明
Copyright (C) 2003-2005 oryaaaaa「ネットラジオおりゃ」「携帯FOX」
SOFTBANK プログラマー情報誌 C Magazine「PureBasic」紹介記事を執筆(初体験)
Copyright (C) 2005-2008 おりゃさん「Dr.DAC 改造」「東京都内コミュニティ参加」
Firefoxもじら組の懇親会、OSC東京の懇親会、セカンドライフ東京の懇親会
クラブ遊び「アナログDJ」渋谷アトム、八帖RED、「デジタルDJ」八帖RED
Copyright (C) 2009-2023 Hiroyuki Yokota ( oryaaaaa )「バグヘッド」
京都醍醐会館「手作り真空管アンプの発表会」、八潮市の篠田主催「勉強会」
スタジオPC製造「サウンドマイスターの戯言」、クラブ遊び「デジタルDJ」刈谷REON


小学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%未満という状態で、「横田の父母はアホや」という噂が立っていた。



Bug head Resampler Manual

Bug head Resampler 原音復元化処理

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((100/400+x)*pi)/((100/400+x)*pi)

これは位相を変化させているからsin(x*pi)/pi が正しいとして演算すると雑音へ変換されます。教科書では sin((0.5+x)*pi)/((0.5+x)*pi) と書いてありますが、SINCノイズと言われるポワンポワン鳴る状態になります。この計算式は最も正確に音を鳴らせる条件になります。

変数 x -4,1,9
結果 8点 SINCリサンプル処理

["-4" , "-0.06002108774"] ... 4点前
["-3" , "0.0818469378"] ... 3点前
["-2" , "-0.1286166166"] ... 2点前
["-1" , "0.3001054387"] ... 1点前
["0" , "0.9003163162"] ... 信号値
["1" , "-0.1800632632"] ... 1点後
["2" , "0.1000351462"] ... 2点後
["3" , "-0.06925510124"] ... 3点後
["4" , "0.0529597833"] ... 4点後
音楽データに対して掛け算して、合計値をリサンプル処理値にします。これでは、信号値の前後8点を参照しますので、(最高周波数 44100Hz ÷ 2 ) ÷ 8 = 2,756.25 Hz。この 2,756.25 未満の音は、2,756.25Hz でリサンプル処理されます。この状態で音量増幅すると、スマホでは中高域は音圧が高まりますが、2700Hz未満は消失しているので低音域は聞こえません。それでイコライザー処理で補正しようとすると、中高域の音圧はさらに上がり、それで難聴になることをスマホ難聴といいます。でも、シンセサイザーで鳴らして録音した音をそのままスマホで鳴らすと、音量を上げなくても低音域は十分な音量です。

円周率精度の問題

参照点数を増やしていくと、円周率精度の小数点桁を増やさないと、信号値から大きく離れたサンプル値は 0桁 の多い結果を示す。円周率精度の小数点は27桁で対応しており、FPU 80ビット演算により倍精度の演算テーブルを作成しています。音を悪くする方向へ変更したいときは、円周率精度の小数点桁を小さくすれば、アナログ感覚の劣化になりますけれど、音程はおかしくなります。「Junk Pi」(ElementaryではKogane)では1秒あたり周期的に円周率精度の劣化を引き起こす処理によって、ジッターレス条件下でジッターサウンドを楽しめます。

リサンプル処理で音が悪くなる条件

円周率精度の小数点桁はリサンプル処理の参照点数に応じて増やす必要があります。(未使用計算方法:小数点の桁1つごとに倍精度演算して合計すると無限倍精度演算になります。)スマホで使われるARM CPUではFPUの仮数精度がどれぐらいかによって左右され、double-double演算を駆使してSINCテーブルを作成、それでDSP処理すると思うけれど、DSP処理で参照点数が少なければ、低音域をロストする。それで中高域の音圧が異常に強くなった結果、スマホ難聴問題の原因となる。

Androidの開発環境を1ヶ月ぐらい使ってみた時、デジタル信号処理の部分はAndroidOSに内部にあり、手を入れられない状態になっていた。スマホ難聴問題の責任は、Google社、Snapdragonの設計者にあると考えている。詳しい解析はしていないので、プログラミングで参照点数を変更できるのかどうかは分からない。

スタジオ編集
音楽CD
AAC(M4A)

Sisters Resampler / Sisters Elementary

fripSide 2nd 南條愛乃の歌を少しでも気持ちよく聞くために作ったバージョンです。fripSide 2nd のほか、妖精帝國を聞く用途にも使えます。録音前の声を再現しており高評価です。

想定ゲーミングヘッドセット:USB 24bits WASAPI
想定ドライバー:ONKYO チタンコーティング 50mm

令和5年7月23日 日曜日 大安 大暑

香良洲神社を「コーラス神社」と思って、Journal「こおりついたら、たべちゃうぞ」という所縁があるのかな?と考えて、東海市の大仏近くにある香良洲神社へ参拝しました。

「コーラスとな、意味は大体同じじゃからいいじゃろう。何をしたら良いか迷っておるとき、気楽にまた来るが良い。参照点数は2048から4096の間、乗数で得られるもの、コーラスリサンプラーでも良いぞ」


八柱神社へ参拝するとき、どの神様に言えばいいか、悩みました。手水舎から進んで、狛犬を過ぎて、左手の遠くに見える社が正面に来るところで立ち止まり、そこで参拝しました。

「4の乗数だけはやめなさい」「狛犬の右手が吠えている様に見えて、左手は黙っているが睨んでおる。右翼と左翼の中間意見を進むようにすることが、神道を極めることにもつながる」


それで作り始めました。4の乗数は「死の掛け算」と考えて「4で割れる参照点数」は避けて作りました。2048から4096の間で乗数の参照点数になる数値を選んでいます。

[C] = NR3 alpha
[C] 0 Skip Resample is [C] 0.5 Skip Resample

[C] 処理のみセンターサウンドの復元処理、通常は左chでは左chのみでリサンプル処理しますが、この仕様では左chでは左右のchを交互にリサンプル処理しますので、ほとんど mono ch のように処理します。しかし、正しい mono ではありません。左ch のリサンプル処理のうち、微妙な音情報について右chを参照しています。右ch のリサンプル処理のうち、微妙な音情報について左chを参照しています。参照点数としては半分になっています。512点で処理したい場合、1024点へ変更してください。

現在、すべての [C] 処理について、NR3 alpha へ変更しています。Resampler Elementary Elegant Nontallion 等の処理について、0 skip Resample でなく 0.5 skip Resample です。通常のリサンプル処理は「有料ソフト」で対応されるべき機能として考えており、戻す予定はありません。過去のバージョンで使用できた時期は「スタジオなどで意見が言えるようにする検証用途」で作りました。



Bug head Elegant Manual

このトラブルに注意

※連鎖するトラブル

PCIE拡張カードはデータをメモリへ読み書きしています。PCIEバスへアクセスするコントロールチップの品質や動作状態で、メモリへジッター影響となります。グラフィックスカードとUSB拡張カードで3スロットの距離差があっても、メモリのジッター影響はグラフィックスカードやチップセットにも影響します。その結果、膨大なノイズを除去しようとコンデンサーは劣化しやすくなり、コンデンサーの雑音除去能力が低下した途端、ノイズが鳴り始め、USB動作は不安定になり、パソコンは壊れます。USBマウスは接続後1秒で破損。

この最悪のパターンが起きた場合、PCIE拡張カードや電源ユニットやM.2 SSDやメモリやUSB周辺機器は新しいパソコンへ流用できません。古い部品がジッター影響の原因になるからです。早めにUSB拡張カードを交換していれば防げるトラブルです。

推奨されるパソコンの性能
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までセットアップ可能です。

処理時間の増大ルール

バッファサイズの時間制限
参照点数
使用CPUコア数
参照点数 128 へ設定して、色々と試してみましょう!
ヘッドホンでは気持ちいい音に感じるけれど難聴の原因ですので、常用しないで下さい。

サウンドスペルについて

Elegant 上品な処理であり、きれいな音波の方向性



MagiclobeViewer Manual

Windows 11 フォト 代わりになる写真表示ソフト

漫画家の守護霊から「ネガポジ反転して確認できるものがほしい」と言われて作りました。カバーアートを作成時に「ネガポジ反転して確認」をしていませんと、(AKBグロスのように)合成写真とすぐに判別できますので、とても必要です。Windows11 で写真表示しますと、フォトが重すぎる。それで代わりに使える世界最高速度の処理性能を持つ写真表示ソフトを作りました。

操作について

起動処理は上記3つ、Clear clipboard した場合は起動しません。

MagicloveViewerPrefs.txt
ScreenW = 1920
ScreenY = 1200
axis = 0.96

画面処理の内容
OpenPreferences("MagicloveViewerPrefs.txt")
ScreenW = DesktopUnscaledX(ReadPreferenceLong ("ScreenW", 1920))
ScreenH = DesktopUnscaledY(ReadPreferenceLong ("ScreenH", 1080))
axis96 = ReadPreferenceFloat("axis", 0.96)
ClosePreferences()

OpenWindow(0, 0, 0, Int(ScreenH*mix*axis96),Int(ScreenH*axis96), 0, ScreenCentered)
ResizeWindow(0, Int((ScreenW-WindowsWidth)/2), 0, Int(ScreenH*mix*axis96),Int(ScreenH*axis96))
各環境に応じた調整については、難解な条件がありますので、各自調整できるようにしています。画面を小さくしたい場合は、axis を小さい数字にして下さい。

Windows 11 フォト は、ノートパソコンで使用される用途に最適化されておらず、使いにくい。デジカメの写真は PCIE NVMe SSD でもローディング時間が長くなり、全体的に遅く感じています。複数画面へ対応する時期は「未定」、このような内容は慎重に進めなければ、ソフトウェア開発は続行不能になります。自分で画面の位置を変更するユーティリティなどを使い、使い方を工夫すれば良いと思います。

MajiorityCleanES を実行している状態で「写真の色」を確認しています。コスプレイヤーの早瀬あみの写真を表示して、期待した画質で表示できているかを毎日確認しています。ローパスフィルターレスの撮影では「陰影が消えて平坦に見える」、もっと低ノイズの表示を追求すると「それでも陰影はあって、立体感を感じられる」、となります。表示する時に「CPUキャッシュメモリ」に対して、「写真データ」「表示処理プログラム」をキャッシュ化してから表示処理しているので、写真の表示は正確な色を実現できていると思います。



Art photo print Manual

日本のプロラボで好評の「作品展示用」印刷ソフト

銀塩フィルムで出力する前に、カラー写真の「高品質印刷」をみて、正しい傾向を参考にするプロラボで好評です。カメラマンの注文内容がよく分からない場合、この印刷を参考にすると目的の仕上げをイメージできるものです。風俗関係のお店で使われる想定で、肌色のきれいな印刷を全力で取り組んでいます。

作者環境では、EPSON PX-S730 写真用紙 はがきサイズ 絹目調 で印刷していますが、最新の WiFi-3 ルーターを使用して低ジッター状態で無線伝送しています。これは 顔料 4色 CMYK ですが、色補正 ICM 色濃度 +8% 原寸指示 品質標準 を指定してると、写真は正しい色合いで印刷できているようです。ICM の sRGB プロファイルは Windows 11 標準です。

このソフトは「偽造通貨防止システム」「産業保護システム」の監視対象です。まれに印刷できない場合、各国の法律に違反していないか、印刷内容を確認して下さい。このシステムは「インターネット未使用」でも致命的な影響あります。印刷用紙を「メーカー指定品」にしていれば良いですが、三菱製紙以外の所から購入している場合は「通信妨害が起きる」と思っていて下さい。

Windows 11 では印刷設定画面で「ページ設定の下にある『その他の設定』から印刷設定」します。

写真の芸術作品を極めようとしている方にオススメ

<概要>

 このソフトは写真印刷のフォトコンテストおよび贈答用印刷、専用です。写真に細い白枠とまわりはブラック100%のフチで印刷できます。フチは2.5ミリから30.0ミリまで0.5ミリ単位で、白か黒を選択可能。白い細線は0.1ミリから3.0ミリまで設定可能です。四切印刷に対応していますので、多数のフォトコンテストに対応しています。簡単な補正機能として水平と垂直にする高精度の回転補正とトリミングが使用可能です。

 フォトコンテストは写真1枚あたり審査員が約6秒で合否判定するので、インクジェットの印刷物では写真を認識できるまでに約40秒必要で色は不安定に見える。それで見た瞬間に色合いが安定する「超光沢印画紙に焼き付けるプリントSGM」にしなければ合格できません。注文はDVD-Rを推薦で、理由はPioneer BDR-S13J-X ではDVD-Rを高品質に焼けるモードがあり、写真を低ジッターで読み出せます。※色見本としてインクジェット印刷を添付。

<弱点>

JPEG、TIFF、PNGのみです。ドラックアンドドロップ対応。
ファイル名(大小区別する、拡張子を除く)を手帳やノートに書いてある人向けです。

<印刷検証済用紙>
はがき、KG、L、2L、四切、A3、A3ノビ

<初期設定>
プロ設定モード:はがき、白枠 0.5mm、黒フチ 5mm

JPEG の色空間は sRGB です。sRGB の正式なICCプロファイルにはヒューレット・パッカード社の著作権表示があり、色座標を完全に数値で指定しています。でも、デジタルカメラは sRGB の色座標を完全に指定して撮影しているものはなく、近い色域で sRGB 表示すると各社のメーカーの色になる仕組みになっています。CanonのカメラはCanonのプリンターでカラーマッチングしやすいのは、Canonの色空間sRGBを入力から出力まで揃えることができる。NikonのカメラはEPSONのプリンターでカラーマッチングしやすい。EPSON基準色(sRGB)を色基準に設定すれば正しい色で印刷します。

はがき印刷
筆まめ メニュー:ファイル-他の画像形式で保存 600 dpi PNG形式
印刷後、20分経過してから、色の比較基準とする。

EPSON PX-S730 EPSON写真用紙(絹目調)の条件
基本設定:印刷品質 標準、拡張設定-印刷濃度 +8%
応用設定:色補正 ユーザー設定 カラー調整 ICM (sRGB)
フチナシ:カスタム設定(原寸維持)= EPSON SC-PX5VII でも同じ

印刷後、20分以上の経過で EPSON PX-5VII EPSON基準色(sRGB)と同じになります。EPSONの純正インクカートリッジ(電卓)を使用しています。顔料CMYKインクですが、Kはフォトブラックです。宛名印刷では薄い黒になります。発色が安定するまでに3日間の乾燥が必要です。特に暗部の階調が潰れている傾向の改善に乾燥時間が必要です。クリスピアは印刷用紙の白色点はsRGBより高い色温度ですが、美術館用途の高演色蛍光灯を写真へ照らして確認するカラーマッチングを前提としています。sRGBは絹目調の白色点が青く見えない蛍光灯色に注意していれば正しい色になります。

sRGBは人の目で認識できる色空間を定義、HDRは輝度の定義になります。AdobeRGBはCMYK色空間をRGBで取り扱う定義です。RGBプリンタはCMYK色空間まで色域を広げたものですので、従来のCMYKプリンターと変わりません。それでも人の目で認識できない色を印刷する技術が高度に発展すれば、偽造できない紙幣や電子カードの製造に役立つと思います。

ファイル名(大小区別する、拡張子を除く)を入力する機能では、下記のファイルが実行形式のあるフォルダーに必要です。写真のあるフォルダーをセットしてください。PhotoFolder ファイルパスは最後は「¥」(Pictures\)となるように設定してください。PNG = 0 にすると PNG は検索しません。

"ArtPhotoPrefs.txt" ASCII
PhotoFolder = C:\Users\Public\Pictures\
JPG = 1
PNG = 1
TIFF = 1

上記の説明は「SCREEN の守秘義務契約の違反にならないか?」、かなり気にしながら書いております。正しい説明は「絶対にできない!」です。この内容でも印刷会社の優位性が損なわれるかもしれないと、心配しています。LABカラーとは「RGB-LAB-CMYK」の色変換式によって存在する色座標値であり、正しい色を規定しているものではありません。LABカラーの色波長を決める際に使われる「高精度測色機」に何を使用したかによって、大きく変化します。すべての「高精度測色機」に対応する印刷をしようとすると、「人工知能による色補正」などの言い訳で対応しなければ難しいと思います。それを SCREEN 色管理エンジニア していた時に「これって、LABカラーの基準って何です? 高精度測色機は全国で統一されていますか?」と質問したら、DS五条サポセンは「グレタグ200万円CMYK測色機」と内々に言いましたけれど、それって・・・やばくない?

SCREEN は「半導体製造」の分野で洗浄装置を作っていますけれど、それを作るには露光技術の研究にも参加していなければならない。その都合を考えているとき、「インテルの多重露光が失敗しており、10nm世代のCPU製造を開始できない」という報道が日本で繰り返されて、MajiorityCleanES や Rewrite data だけでなく Art photo print が必要と思い、作ってみたら不思議な報道は止まりました。これは半導体製造技術の改善に役立っているかもしれません。



Bug head Emperor Manual

私財を200万円かけて作ってみるも、底なしの地獄沼が待っていた

Bug head Emperor Ver 2.52 2013/11/25 20:00
御利用ありがとうございます。1日12時間、休みなし、1年半かけて作り上げたソフトウェアです。本当は対価を求めたいのですが、社会貢献のために、これは無償配布しています。ただ、開発にあたって、人件費以外で200万円ほど必要でした。機材費用は約70万円となります。寄付金を募っていますので、後述の銀行口座を御参照下さい。

音色変更可能・高音質サウンドプレイヤー

ヘッドホン、スピーカー、アンプ、再生ソフトなどがすべて同じでありますと、好きな音楽は聞き飽きる日がやってきます。20代まではサラウンドやEQでごまかしできますが、音が大きく変わり過ぎるため、飽きてきます。

Bug head Emperorは音色に着目し、音色を変えることによって音楽をより長く楽しめるように作りました。音楽を解析して最適化する処理はありませんので、歪みが大きい傾向、聴きにくい傾向は、利用者が調整しなければなりません。最高の推薦モードはありません。その日の体調、音源によって変わります。

開発目標としたオーディオ環境について

整数倍のアップサンプリングへ対応し、超低ジッターを実現するハードウェア・リクロックであり、ハイレゾ音源に対応するヘッドホン・スピーカーを目標としました。その関係で、対象外の環境では、正しい音にならない可能性があります。
  • ※整数倍:88.2kHz/176.4kHz/352.8kHz の出力に対応していること(音質重視)
  • ※リクロック:テスト環境はXMOSの温度補償タイプです(正しい時間軸で鳴らすため)
  • ※ハイレゾ音源対応:周波数特性 35kHz 以上の対応(正しい時間軸で鳴らすため)
通常のデジタルデータ並び順は123456789となるのが普通ですが、出力段階において、132547698といった順番にしていまして、ちょっとでもジッターがあると大幅に音質がダウンするリスクがあります。

これを波形表示しますと、どのようになるのか興味あるのですが、フリーの波形表示エディタAudacityでは波形が乱れて表示され、DAC後の波形はどうなるのか知りません。多くの時間、聞いて確認して取捨選択し、チューンを重ねて、今のバージョンがあります。

開発理念
  • 1.意図的に失敗しよう
  • 2.飽きるまで失敗を繰り返せ
  • 3.お金はあるときに使ってしまえ
  • 4.お金に飽きたら貯金せよ
  • 5.結果から行動しよう
  • 6.3度否定して、真実をつかめ
  • 7.悪はすべて許せ

ポジティブに開発するためには、この理念がなくては続けられませんでした。音楽再生ソフトが多くあるなかで、音をちょっとだけ変えたいという悩みを解決できるソフトがなく、意図的に失敗したサウンドを作り出せる機能性を持たせるために、かなり苦労しました。また、結果から行動して、推奨機材を指定するなど、悩みは多くありました。

オーディオはひとつの音色だけに囚われていますと、いずれ、その曲に飽きが生じてきます。それで、音色の変更のため、機材を変更する歴史がありました。このソフトは、音を意図的にちょっと変えることにより、飽きない音色を作り出せるように作りました。いろいろな音色へ変えてみて、普段から違う気分で聞くようにしますと、ひとつの音楽を気持ち良く楽しめます。

一行見出しにみる、Bug headの歴史
開発開始直後 「MP3がSACDの音を超える超・高音質サウンドプレイヤー」
開発初期 「サウンドリマスター超・高音質サウンドプレイヤー」
1年前 「高音質・モンスターサウンドプレイヤー」
現在 「音色変更可能・高音質モンスターサウンドプレイヤー」

初期は作り始めたばかりで、今から思えば誇張表現と思う感想が多く、それで作っていました。いまはデコード部の音色変更ができますと、客観的にみて言えるのですが、ここへたどり着くまでが大変でした。

特許にできそうかも検討しましたが、音色変更の科学的根拠を言えないために、誰を頼って良いのか分からないために、壁がありました。誰かに言われる度、大変苦しい時期がありました。DACの専門家に企業機密を聞いて、それから科学的根拠を考察しなければならないため、特許は諦めています。

2013年から10年間と続く「地獄の沼」は放置すれば、世界中の子供達を難聴にさせてしまい、成人して就職する頃には「音が聞こえない」という地獄を生むものでした。犯人を作るのは簡単です。今までの音楽業界は「犯人を作る」「犯人を始末する」「問題の根源は消滅してない」、問題分析に立ち上がった科学者は「犯人にされる」「犯人として始末される」「問題の根源は消滅してない」、これは「聴覚被害者は音量を上げすぎた」「スタジオは悪くない」「音楽に問題はない」という根拠に基づくものです。

しかし、問題の根幹に何があるのか? 音響処理を行う基本数学式が間違っており、リサンプル式の基礎研究を誰もやっていない。オーディオで水晶発振器の精度をフェムトにすれば、音楽は高精度円周率を根拠に作り直す必要があった。SINC 8点 で十分とされた説は、サンプリング周波数 100Hz を前提とした仮定式であり、サンプリング周波数 44100Hz になれば 441倍である 3528点 にしなければ十分と言えなかった。シンセサイザーに収録された音を復元できるリスクがあり、日本の楽器メーカーが隠し続けた。それは音楽再生プレイヤー「MDウォークマン」の技術者が現場を離れたあと、後継者の引き継ぎで伝えられる教材はなく、業界機密になり、そして「ロストテクノロジー」となった。シニア技術者は「韓国」「中国」のメーカーへ移籍したあと、この問題に気づき対応しようとしたけれど、音楽業界は魔女狩りの最中にあり、対応不能になっていました。


Normal ノーマル ... ノーマルな出力です。(LPF none強制)
foobar2000の標準出力と同じです。Bug headではなく、使用しているBASSライブラリの音が鳴ります。LPFは強制で無効になります。

Green グリーン ... ノーマルなアップサンプリングで、ちょっとだけ違うサウンド
128-bit 2048点 SINC補間によるアップサンプリングです。デジタルデータの並び順は正常です。元々は、このモードで聴きたいために、Bug headを作ってきました。

Tester テスター ... ちょっとだけ違うアップサンプリング
128-bit 2048点 SINC補間によるアップサンプリングです。デジタルデータの並び順はバグっています。ZIONOTE社のブースで、ヘッドホン祭へ参考出展したサウンド。

Red レッド .. ちょっとだけ違うアップサンプリング系サウンド
TesterとGreenをミックスしたようなサウンドです。開発初期はデジタルリマスターと紹介していました。岡崎商工会議所の関係者へのデモに使用したサウンド。

Brown ブラウン ... ちょっとだけ違うアップサンプリング系サウンド
Testerをベースに、てきとう演算をプラスしたサウンドです。レッドより高級感ある色のイメージで、ブラウンと命名しました。

White ホワイト ... ちょっとだけ違うアップサンプリング系サウンド
Testerをベースに、てきとう演算をベースサウンドから処理したサウンドです。開発PC、Core2Duo3GHzでは演算限界があり、第一世代では最後としたため、ホワイトと命名しました。

Banana バナナ ... 透明感あふれる系サウンド 第二世代
第二世代のサウンドを考えて思いついたサウンドです。イエローにするとフィーリングが良くありませんので、バナナボートの楽しさをサウンドにしたら、こうなるでしょうと、思ってバナナと命名しました。聞き慣れないうちは、透明感あふれるサウンドに聞こえます。

Black ブラック ... 透明感あふれる系の宝石サウンド 第二世代
紙へ処理内容を書いて、必死でデバッグと最適化を行った結果、より多くの演算をコンパクトにまとめられました。それで、てきとうに透明感あふれる系の宝石サウンドを作りました。演算の内容が応用できるものでしたので、てきとうにBlack9 x4まで演算種類を増やしました。多くの人へ推薦できるサウンドです。低域の量感が増えながらも、中域や高域がぼやけた感じにならず、シャープに聞こえます。

Snow スノウ ... 透明感あふれる系サウンド 第二世代
雪山へ遊びたい気持ちから、てきとうに作ったら気持ち良くて、スノウと命名しました。ホワイトとブラックを組み合わせただけですが、あまり音色を変えず、バグヘッドを楽しみたい方にオススメです。最近まで鉄板サウンドと表現してました。

スタジオマスターの再生確認では「Elementary Normal」「Nontallion High」が使われます。超低ジッター条件における無変更の音楽再生を確認できます。オーディオマニアが素晴らしい、特に優れていると評価しているのは、ノーマル出力です。JPLAY forum では「グランドマスター」、ジェダイの騎士でいうジェダイ・マスターのうち「地上最強」を意味する、偉大な評価をされました。その後、ドイツの HIGH END で再生環境に選ばれて、裏から「もっとよくしろ!」の繰り返しでした。今は外国から岡崎市へ来て、裏のシステムが「すれ違い法」で会わせてあげるサービスを開始しているようで、すごい金持ちのファミリーに囲まれたりします。その時に限って、「最新のフェラーリ」「最新のポルシェ」だけでなく、日本で売ってないという数億円のスポーツカーで「すれ違い法」で、すれ違うシーンをよく経験する。もっと良くする方向性を示されて、ひたすら「Normal」を良くしてきました。それで Windows 11 で動作する音楽再生ソフトが、世界最高の高級サウンドプレイヤー(ハード機器、裏によると1人2億円)を超えれば、もっと音はよくできるということで、すべての特許や権利を無視して研究を続けてほしいと願いを託されていました。



Rewrite data Manual

最初に発表した時、どんな効能があるのか説明できなかった

RewriteData.exe
著作権者:Hiroyuki Yokota、平成26年12月27日(土)

CDリッパーの違いで音が変わる、仮説
CD -> Memory -> Disk
この Memory 段階で、ビット保持電圧が低い状況でディスクへ書き込まれた場合、その微妙な電位で、読み出される時にジッターが引き起こされるのではないでしょうか?と考えた場合、CDリッパーによって、AccurateRIPしていても、ディスクから読み出したとき、音質が変わっているとするジッター原因説。RewriteDataを実施することにより、音質を改善。

このソフトの動作
D:\MUSIC\ABC.flac 指定したファイル名
D:\MUSIC\ABC_rw.flac リライトしたファイル名、_rw を付加します。
ファイルを読み出して、バッファへリライトメモリ処理(MMXレジスタ経由、CPUキャッシュメモリ回避の書き出し)を行い、書き出すだけのファイルコピー処理を行います。

主な効果
CPUキャッシュメモリ経由によるジッター原因説を排除できます。
HDD/SSDのビット保持電圧によるジッター原因説を排除できます。

テストの方法1
HDD/SSDのキャッシュメモリーで、絶対にキャッシュしない条件を満たすようにテストを考慮しなければなりません。Infinity bladeであれば、1(テストファイル)、2(リライトファイル)、4からXX(キャッシュサイズ分)をプレイリスト登録して、AutoPhaseCheckを再実行することによって、キャッシュ可能性を排除して下さい。
※キャッシュ状態でも、音質に影響するようです。否定を繰り返してテスト要。

テストの方法2
同じようにキャッシュ可能性を排除した条件にて、最高に音質が悪いサウンドプレイヤーで音質が改善するかどうかをテストして下さい。音質の良し悪しは、音質が悪い条件になるほど分かりやすいものです。

作者の評価結果:音質は改善しました。FLACのデータでも、RewriteData化したデータはWAVのような音質へ変わっています。こんな方法でジッター抑制できるのなら、他のLinuxやMacOSXでも影響する可能性が濃厚です。

発展させた仮説:SDカード経由にすると音質が良くなるとする技術根拠は、SDカードの書き込み回路、読み込み回路が、ジッター原因根拠を排除できるから音質改善できていると仮説を立てられると思います。

1年経過したら、強気の説明になっていた

Rewrite data 電子ビットの帯磁性改善ソフトウェア

このソフトウェアは、パソコン本来の性能を発揮させるように動作します。

メモリの記録において、スレッシュホールド電圧という信号"1"の電圧と信号"0"の電圧が規定されています。それで設計を容易にするため、0.7以上は"1"、0.3未満は"0"、このようにデジタルのアナログ値が決まっています。
この"1"が連続したデータであったとき、
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
となっていれば理想ですが、HDDやSSDでは、
0.9 0.7 0.8 0.9 1.0 0.7 0.8 0.9 1.0 0.8
このように記録されています。"0"側でも
0.0 0.1 0.1 0.2 0.0 0.1 0.2 0.3 0.0 0.1
このように記録されています。この記録されたデータが読み出されてアナログの回路に伝わりますと、不連続な揺れによってデジタル雑音「ジッター」となるのです。しかし、デジタル回路からデジタル回路に信号が伝わるときでも、例えば 0.3 0.7 0.3 というギリギリの信号で伝わりますと、ビット反転が起きてしまいます。そのため、これを防ぐ為に ECC(エラー訂正)機能のメモリが存在しますが、完全なものではありません。

この Rewrite data は、Bug head technology で研究報告したRewrite技術によって、理想のデータ状態へ修復します。動作原理は簡単です。ファイルを読み込みます、Rewriteします、書き出します、入れ替えます、これだけでファイルを最も良い状態へ改善します。なお、ファイルの内容はバイナリ比較で完全一致して、変更はありません。

ジッターが起きる原因:

すべてのソフトウェアは、CPUのレジスタを使用して、あらゆる処理を行います。このレジスタを初期化するとき、XOR命令を使用して初期化が行われたら、ジッターは起きません。でも、Windowsのデフォルトの初期化では、メモリーを参照して初期化を行います。そのメモリーが初期化されてない状態なので、不安定な 0.0 により、ジッターが発生しています。私説ですが...プロセッサー電位とサーキット電位が異なる為に問題が生じています。

効果持続時間:

処置直後がピークとなります。時間の経過によって効果が薄れていき、4日から10日後には元の状態へ戻ります。こうした現象が起きますので、デフラグとは明らかに異なる根拠に基づいた改善結果を得られています。
デフラグはファイルの再配置で読み取りやすさを向上させて、読み込みジッターを抑える仮説がありますが、Rewrite効果はメモリにも影響しますので、真の仮説は電子ビットの帯磁性を改善させている為に、音質が良くなっています。

この説明に問題点はあります。「XOR命令を使用して初期化すれば解決する」という説明でしたが、CPU演算基準はマザーボードを壊しやすくなる原因と分かってきて、そこで研究開発を中止しようと思いました。でも、神社で参拝しますと「歩みを止めてはならない」といって、次の改善方法を伝えてきました。レジスタのシフト命令によって「0」のビットをセットしますが、その「0」はどこから来たのでしょうか? それはつまり、キャッシュメモリから来た「0」という考えになれば、NOP QWORD [Rip] NOP QWORD [Rip] MOV Rax, 0 という命令であれば、キャッシュ化した「0」をRaxへセットする処理になります。これで完全に解決するかというと、CPU設計が変更されると再び基準の作り方を工夫しなければなりません。

新しいパソコンで Windows 10 32bit はやめましょう。最近のCPUは64ビットCPUですので、32ビットで使用しましても、CPUの初期化は不十分であり、ジッターは起きやすい状態になります。64ビットにするだけで、ソフトウェア開発では、下記のメリットがあります。

汎用レジスタが3倍になります
Eax,Ebx,Ecx,Edx
から
Rax,Rbx,Rcx,Rdx,R8,R9,R10,R11,R12,R13,R14,R15

汎用レジスタのサイズが大きくなります
Eaxは32ビットレジスタ(4バイト、Long型)
Raxは64ビットレジスタ(8バイト、Quad型)
従って
32ビットレジスタでは3GBでメモリアクセス制限

64ビットCPUで32ビットOSを使用した時に生じる問題
『ジッターが起きて、動作不具合が起きて当然』 下図参照↓

パソコンによっては Windows 10 Home 32bit モデルを販売していますが、All core any cures や Rewrite data の効果をほとんど得られません。必ず 64bit モデルを御検討下さい。

この説明に不十分な記載があるとすると、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バスを通じてデータを書き出す仕組みです。

どんな状況でも「高品質メモリ」「高品質マザーボード」による政治へ影響は大きいので、偽物が多い「高品質メモリ」の入手ルートは重要です。どれほど低価格競争に「国内のメモリモジュールメーカー」が巻き込まれても、「高くても買い続けるスタンス」を維持できなければ、外国の言いなりになる未来となります。「高品質メモリ」を日本のパソコンユーザーが買えなくなった途端に「韓国」「中国」の外交戦略は突然変更され、日本政府に対して強気の発言を繰り返された時代を思い出して下さい。



MajiorityCleanES 動作原理

時分割多重処理により全体に影響するが、独立コア処理では影響しない

引数 Rcx Rdx R8 R9 PUSH PUSH xmm0 xmm1 xmm2、引数は「基準不明」データをセット、
返値 Rax 汎用レジスタ、xmm0 SSEレジスタ、電子ビット基準の散乱によりジッターになる。



All core any cures は、一般的なソフトウェアと同じように、Windowsから許可されたタイミングにて、全コアを使用する為、マルチスレッドプログラミングしています。CPUの汎用レジスタ、スタックレジスタ、拡張レジスタについて、初期化しています。

ジッターが起きるプログラミング
変数ABC へ 0 をセット [MOV ABC, 0] 、これはメモリに記録された0を参照して、メモリから変数ABCへ 0 をセットしています。不連続に記録されているメモリを参照するだけで、ジッターが発生します。

ジッターが起きないプログラミング
[XOR Eax, Eax] [MOV ABC, Eax] 、これはCPUの演算により0を作成して、レジスタから変数ABCへ 0 をセットしています。この場合は、ジッターが起きません。

最も重要な話は、0をセットするときです。0以外をセットするとき、ジッターが起きない変数として0の初期化をしてあれば、ジッターは起きません。つまり、[XOR Eax, Eax] [MOV ABC, Eax] [MOV ABC, 15] では、ジッターは発生しません。All core any cures では、[XOR Eax, Eax] を行いますので、ジッターは発生しなくなります。

AlderLake RapterLake の Zeroイディオム最適化

今のところ、CPU キャッシュメモリ を基準とすると「低ジッター処理」「低エラー処理」になりやすいと判明しています。音楽再生ソフトの機能面が完成したあと、ひたすら世界中のオーディオマニアと確認を繰り返してきて、上記のような方法で「USB-DAC の音は変化」すると判明しています。つまり、これを根拠にして「ジッター暗号通信は実現可能」と結論付けられる。

「ジッター暗号通信」とは、スレッシュホールド電圧の微妙な差によって「デジタルからアナログへ変換」した際に、微妙な電圧差が生じており、1ビットのデータを32ビットAD変換すると「暗号データを読み取れる」というもの。これを高度に処理することで、米軍や中国軍のグレードファイアウォールに対しても、機密情報をやり取りできるのではないか? という夢のような人類未踏技術。

この通信を阻止するために「SSDやCPUの品質改善が急がれている」という。しかし、オーディオ用DAC や 映像用DAC の基礎研究で「上記のような電子ビット基準を採用」してきた結果から、完全に阻止する技術として完成させると、DAC の基礎研究を最初からやり直す必要があると思う。




Nontallion 14.28 からの操作マニュアル

スタジオとオーディオマニアの声を聞いて再構築

使用前に「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ライブラリは「音量設定」「デコード処理」「転送処理」で高級オーディオ対応にできる

今までは「一般向け」でしたが、この内容に関しては「オーディオメーカーの技術者」を対象に書いています。この内容を理解できないうちは、どれほど頑張って高級オーディオを作っても、評価は HIGH-END で良くならないと思います。音量最大を意味する 1.0000 を作るときに、このように厳密に調整しないとキレイな歌声になりません。

音量設定 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.28 で採用している音量設定のソースコード
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
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  XOR_R8_R8
  ; 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
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  XOR_R8_R8
  ; 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
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  XOR_R8_R8
  ; 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
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  XOR_R8_R8
  ; 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
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  XOR_R8_R8
  ; 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 ドライバー を基準に作っていますが、音を悪くする方向へ調整するなら、音量設定値のビットを不安定にさせると著しく悪化します。最高に危険な方法をいえば、CPUID によってレジスタ Rdx を初期化します、CPUID MOV Rdx, 1 MOVQ xmm2, Rdx mov Rcx, 0 MOV Rdx,0 MOV R8, 0 CALL QWORD BASS_ASIO_ChannelSetVolume、という感じに書くと、USB-DACを壊すのは非常に簡単です。

Nontallion では Float_1_000 を INC SHL によって作成して、Macroで規定して、MacroMakeFloat MacroMakeFloatFF により、電子ビット基準の正確な音量設定を行っています。これで圧倒的な高音質を達成しています。ソースコードは下記のとおりです。

Macro MacroMakeFloat
  XOR_R8_R8
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !PXOR mm5, mm5
  !MOVQ mm5, R8
  !NOP QWORD [Rip-32]
  XOR_Rcx_Rcx_255
  !INC cl
  !INC R8b
  MOVZX_R8
  MOVZX_Rcx
  !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
  !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
  !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
  MOV_R8_R8_Up
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ mm5, R8
  !NOP QWORD [Rip-32]
EndMacro

Macro MacroMakeFloatFF
  XOR_R8_R8
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !PXOR mm5, mm5
  !MOVQ mm5, R8
  !NOP QWORD [Rip-32]
  XOR_Rcx_Rcx_255
  !INC cl
  !INC R8b
  MOVZX_R8
  MOVZX_Rcx
  !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
  !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
  !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
  !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
  MOV_R8_R8_Up
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ mm5, R8
  !NOP QWORD [Rip-32]
EndMacro

NOP 命令は「命令キャッシュ化指示」です。MMXレジスタ mm5 へ 作られた R8 をセットするとき、CPUキャッシュ内の実行により「最高の低ジッター条件」により転送しています。音量設定のASIO処理を手作業で書ける人は、この音量設定を「メモリ変数から読み出す=BAD」として、「その都度、INC SHL によって作りセット」とするだけで、とても良くなります。

レジスタ R8 を使用しているのは、AMD が設計したとされる R8-R15 を基準にするので、AMD CPU と同様の結果が出やすいからです。低ジッターだけを追求するなら、R8b R8w R8 とシフト命令の状態によって変化していくと良いですれど、高級オーディオで「空気感が悪い」という評価になりましたので、R8 だけのシフト命令にしています。もっと完璧にやってくれ!と言われますと、汎用レジスタで書いている内容を MMXレジスタで書き直せば良くなります。しかし、高級オーディオと低価格USB-DACの音質差が消えてしまうので、やり過ぎないように気をつけています。


デコード処理

自分でデコード処理を書くことはできるけれど、FLAC の場合、提供されたソースコードから「静的ライブラリを作り、内部処理として動作」する仕組みにするしかない。それで問題がなければいいけれど、実際に起きたことは「FLACのデコード処理はできたけれど、日本で公開しようとすると動作しない」という不可解な問題が起きた。それで、un4seen社 BASS Audio Library SDK を使用している。でも、デコード処理に問題があるようで、正しく処理できているとは思えない。その対策コードを考えていくうち、レジスタの安定した電子ビット基準の適用概念を思いつき、以下のソースコードによって、正確さでは世界最高といえるデコード処理となっていく。

CALL_ALL_REGISTER_INC255_DEC255_in
CALL_ALL_REGISTER_PreCompileRun_only
; 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 CALL_ALL_REGISTER_INC255_DEC255_in

マクロ命令について
Macro CALL_ALL_REGISTER_INC255_DEC255_in
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP QWORD [ALL_REGISTER_INC255_DEC255_PreCompileRun]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD ALL_REGISTER_INC255_DEC255_PreCompileRun
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  BeforeProcedureRegisters_SMSW
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP QWORD [ALL_REGISTER_INC255_DEC255_in]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD ALL_REGISTER_INC255_DEC255_in
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
EndMacro

Macro CALL_ALL_REGISTER_PreCompileRun_only
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !NOP QWORD [ALL_REGISTER_INC255_DEC255_End_PreCompileRun]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD ALL_REGISTER_INC255_DEC255_End_PreCompileRun
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
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

MajiorityCleanES のキュア処理を使用した、電子ビット基準のレジスタスタビライザー
IncludeFile "FNOPx512.txt"
!ALL_REGISTER_INC255_DEC255_PreCompileRun:
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [ALL_REGISTER_INC255_DEC255_End_PreCompileRun]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!JMP QWORD ALL_REGISTER_INC255_DEC255_End_PreCompileRun
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!ALL_REGISTER_INC255_DEC255:
!NOP QWORD [Rip]
!NOP QWORD [Rip]
BeforeProcedureRegisters_ALL
BeforeProcedureRegisters_ALL
BeforeProcedureRegisters_ALL_xmm0
SIMPLE_MOVE_REGISTERS_Up_and_Down
PSLLD_PSRLD_Setup_Perfect16bits
XOR_R8_R8
XOR_R8_R8_255
!LEA R8, [v_RN]
NEG_to_NEG_R8
After_NEG_to_NEG_R8
PSLLD_PSRLD_Conditioner_Perfect16bits
!ALL_REGISTER_INC255_DEC255_in:
!NOP QWORD [Rip]
!NOP QWORD [Rip]
BeforeProcedureRegisters_HALF
BeforeProcedureRegisters_HALF
BeforeProcedureRegisters_HALF_xmm0
SIMPLE_MOVE_REGISTERS_Up_and_Down
BeforeProcedureRegisters_ALL
BeforeProcedureRegisters_ALL
BeforeProcedureRegisters_ALL
BeforeProcedureRegisters_ALL
BeforeProcedureRegisters_ALL_xmm0
!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_F268_MMX.pbi"
SIMPLE_MOVE_REGISTERS_Up_and_Down
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!NOP QWORD [PureBasicStart]
!NOP QWORD [Rip]
!NOP QWORD [Rsp-16]
!NOP QWORD [Rip]
!NOP QWORD [Rsp]
!NOP QWORD [Rip]
!NOP QWORD [Rip+16]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
!RET
IncludeFile "FNOPx512.txt"

Windows x64 の内部処理を考えていくと、実行されるプログラムの最初を「何度も参照して RET している可能性を考えた」、そして NOP QWORD [PureBasicStart] を記述すると RET 系のジャンプジッターが起きなくなった。Linux では [main] を記述すれば同様に良くなる。Nontallion で使われるデコード処理は、前後に「MajiorityCleanES 最新キュア処理」を実行しており、演算エラーが物理的に起きない仕組みを採用して、完全な意味の「ビットパーフェクト」を達成しており、他の追従を許さない。

AlderLakeからは NOP QWORD [Rip] を多用している。これは下記の処理をやって、指定すると良くなる。特にスレッド処理では改善しやすい。

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による転送処理によって実現しており、ジッター現象は起きにくい。

この実験は過去にやっており、具体的には下記のソースコードで確認していた。オーディオマニアの皆様が確認していき、どの転送モードを使用すると「低ジッター」になるのか? それを確認していたと思います。

Procedure CopyMemory2(*memory, *memory2, mem_size.i, *dummy) ; [4.56] Add *dummy for sound
  Shared feelsound.i                                         ;, dsd_play.i
  Protected s.i, hn.i
  Protected n1.i, n2.i, *memory_in, *memory_out
  
  Select feelsound
    Case #Tune_Blade_1 To #Tune_Blade_11 ;, #Tune_Orochi_1 To #Tune_Orochi_11
      hn = 16
    Default
      hn = 8
  EndSelect
  
  If *memory%hn>0
    n1 = *memory%hn
    *memory_in = *memory - n1
  Else
    n1 = 0
    *memory_in = *memory
  EndIf
  If *memory2%hn>0
    n2 = *memory2%hn
    *memory_out = *memory2 - n2
  Else
    n2 = 0
    *memory_out = *memory2
  EndIf
  ;
  If (mem_size+n1)%hn>0 ; [4.11]
    s = (mem_size+n1) + (hn - (mem_size+n1)%hn)
  Else
    s = mem_size + n1
  EndIf 
  ;
  If (n1-n2)=0
  ElseIf n2>0
    s + hn
  EndIf       
  
  If s<1
    Goto CopyMemory2_end
  EndIf 
  
  CompilerSelect #PB_Compiler_Processor ; [4.51]
    CompilerCase #PB_Processor_x86 
      ReWriteMemory_mmx_var(@s, 4)
    CompilerCase #PB_Processor_x64
      ReWriteMemory_mmx_var(@s, 8)
  CompilerEndSelect
  
  Protected I.l = 0 ; 3.92 quality balance
  
  If feelsound = #Tune_Basic_1
    Goto T_Tune_Basic_1
  ElseIf feelsound = #Tune_Basic_2
    Goto T_Tune_Basic_2
  ElseIf feelsound = #Tune_Basic_3
    Goto T_Tune_Basic_3
  ElseIf feelsound = #Tune_Basic_4
    Goto T_Tune_Basic_4
  ElseIf feelsound = #Tune_Basic_5
    Goto T_Tune_Basic_5
  ElseIf feelsound = #Tune_Basic_6
    Goto T_Tune_Basic_6
  ElseIf feelsound = #Tune_Basic_7
    Goto T_Tune_Basic_7
  ElseIf feelsound = #Tune_Basic_8
    Goto T_Tune_Basic_8
  ElseIf feelsound = #Tune_Basic_9
    Goto T_Tune_Basic_9
  ElseIf feelsound = #Tune_Basic_10
    Goto T_Tune_Basic_10
  ElseIf feelsound = #Tune_Slash_1
    Goto T_Tune_Slash_1
  ElseIf feelsound = #Tune_Slash_2
    Goto T_Tune_Slash_2
  ElseIf feelsound = #Tune_Slash_3
    Goto T_Tune_Slash_3
  ElseIf feelsound = #Tune_Slash_4
    Goto T_Tune_Slash_4
  ElseIf feelsound = #Tune_Slash_5
    Goto T_Tune_Slash_5
  ElseIf feelsound = #Tune_Slash_6
    Goto T_Tune_Slash_6
  ElseIf feelsound = #Tune_Slash_7
    Goto T_Tune_Slash_7
  ElseIf feelsound = #Tune_Slash_8
    Goto T_Tune_Slash_8
  ElseIf feelsound = #Tune_Slash_9
    Goto T_Tune_Slash_9
  ElseIf feelsound = #Tune_Slash_10
    Goto T_Tune_Slash_10
  ElseIf feelsound = #Tune_Slash_11
    Goto T_Tune_Slash_11
  ElseIf feelsound = #Tune_Shine_1
    Goto T_Tune_Shine_1
  ElseIf feelsound = #Tune_Shine_2
    Goto T_Tune_Shine_2
  ElseIf feelsound = #Tune_Shine_3
    Goto T_Tune_Shine_3
  ElseIf feelsound = #Tune_Shine_4
    Goto T_Tune_Shine_4
  ElseIf feelsound = #Tune_Shine_5
    Goto T_Tune_Shine_5
  ElseIf feelsound = #Tune_Shine_6
    Goto T_Tune_Shine_6
  ElseIf feelsound = #Tune_Shine_7
    Goto T_Tune_Shine_7
  ElseIf feelsound = #Tune_Shine_8
    Goto T_Tune_Shine_8
  ElseIf feelsound = #Tune_Shine_9
    Goto T_Tune_Shine_9
  ElseIf feelsound = #Tune_Shine_10
    Goto T_Tune_Shine_10
  ElseIf feelsound = #Tune_Shine_11
    Goto T_Tune_Shine_11
  ElseIf feelsound = #Tune_Star_1
    Goto T_Tune_Star_1
  ElseIf feelsound = #Tune_Star_2
    Goto T_Tune_Star_2
  ElseIf feelsound = #Tune_Star_3
    Goto T_Tune_Star_3
  ElseIf feelsound = #Tune_Star_4
    Goto T_Tune_Star_4
  ElseIf feelsound = #Tune_Star_5
    Goto T_Tune_Star_5
  ElseIf feelsound = #Tune_Star_6
    Goto T_Tune_Star_6
  ElseIf feelsound = #Tune_Star_7
    Goto T_Tune_Star_7
  ElseIf feelsound = #Tune_Star_8
    Goto T_Tune_Star_8
  ElseIf feelsound = #Tune_Star_9
    Goto T_Tune_Star_9
  ElseIf feelsound = #Tune_Star_10
    Goto T_Tune_Star_10
  ElseIf feelsound = #Tune_Star_11
    Goto T_Tune_Star_11
  ElseIf feelsound = #Tune_Snake_1
    Goto T_Tune_Snake_1
  ElseIf feelsound = #Tune_Snake_2
    Goto T_Tune_Snake_2
  ElseIf feelsound = #Tune_Snake_3
    Goto T_Tune_Snake_3
  ElseIf feelsound = #Tune_Snake_4
    Goto T_Tune_Snake_4
  ElseIf feelsound = #Tune_Snake_5
    Goto T_Tune_Snake_5
  ElseIf feelsound = #Tune_Snake_6
    Goto T_Tune_Snake_6
  ElseIf feelsound = #Tune_Snake_7
    Goto T_Tune_Snake_7
  ElseIf feelsound = #Tune_Snake_8
    Goto T_Tune_Snake_8
  ElseIf feelsound = #Tune_Snake_9
    Goto T_Tune_Snake_9
  ElseIf feelsound = #Tune_Snake_10
    Goto T_Tune_Snake_10
  ElseIf feelsound = #Tune_Snake_11
    Goto T_Tune_Snake_11
  ElseIf feelsound = #Tune_Galaxy_1
    Goto T_Tune_Galaxy_1
  ElseIf feelsound = #Tune_Galaxy_2
    Goto T_Tune_Galaxy_2
  ElseIf feelsound = #Tune_Galaxy_3
    Goto T_Tune_Galaxy_3
  ElseIf feelsound = #Tune_Galaxy_4
    Goto T_Tune_Galaxy_4
  ElseIf feelsound = #Tune_Galaxy_5
    Goto T_Tune_Galaxy_5
    ;   ElseIf feelsound = #Tune_Galaxy_6
    ;     Goto T_Tune_Galaxy_6
    ;   ElseIf feelsound = #Tune_Galaxy_7
    ;     Goto T_Tune_Galaxy_7
    ;   ElseIf feelsound = #Tune_Galaxy_8
    ;     Goto T_Tune_Galaxy_8
    ;   ElseIf feelsound = #Tune_Galaxy_9
    ;     Goto T_Tune_Galaxy_9
  ElseIf feelsound = #Tune_Galaxy_10
    Goto T_Tune_Galaxy_10
  ElseIf feelsound = #Tune_Galaxy_11
    Goto T_Tune_Galaxy_11
  ElseIf feelsound = #Tune_Star_2_navx 
    Goto T_Tune_Star_2_navx
  ElseIf feelsound = #Tune_Star_10_navx
    Goto T_Tune_Star_10_navx
  ElseIf feelsound = #Tune_Shine_10_navx
    Goto T_Tune_Shine_10_navx
  ElseIf feelsound = #Tune_Fstar_2_navx
    Goto T_Tune_Fstar_2_navx
  ElseIf feelsound = #Tune_Fstar_10_navx
    Goto T_Tune_Fstar_10_navx
  ElseIf feelsound = #Tune_Blade_1
    Goto T_Tune_Blade_1
  ElseIf feelsound = #Tune_Blade_2
    Goto T_Tune_Blade_2
  ElseIf feelsound = #Tune_Blade_3
    Goto T_Tune_Blade_3
  ElseIf feelsound = #Tune_Blade_4
    Goto T_Tune_Blade_4
  ElseIf feelsound = #Tune_Blade_5
    Goto T_Tune_Blade_5
  ElseIf feelsound = #Tune_Blade_6
    Goto T_Tune_Blade_6
  ElseIf feelsound = #Tune_Blade_7
    Goto T_Tune_Blade_7
  ElseIf feelsound = #Tune_Blade_8
    Goto T_Tune_Blade_8
  ElseIf feelsound = #Tune_Blade_9
    Goto T_Tune_Blade_9
  ElseIf feelsound = #Tune_Blade_10
    Goto T_Tune_Blade_10
  ElseIf feelsound = #Tune_Blade_11
    Goto T_Tune_Blade_11
  ElseIf feelsound = #Tune_Orochi_1
    Goto T_Tune_Orochi_1
  ElseIf feelsound = #Tune_Orochi_2
    Goto T_Tune_Orochi_2
  ElseIf feelsound = #Tune_Orochi_3
    Goto T_Tune_Orochi_3
  ElseIf feelsound = #Tune_Orochi_4
    Goto T_Tune_Orochi_4
  ElseIf feelsound = #Tune_Orochi_5
    Goto T_Tune_Orochi_5
  ElseIf feelsound = #Tune_Orochi_6
    Goto T_Tune_Orochi_6
  ElseIf feelsound = #Tune_Orochi_7
    Goto T_Tune_Orochi_7
  ElseIf feelsound = #Tune_Orochi_8
    Goto T_Tune_Orochi_8
  ElseIf feelsound = #Tune_Orochi_9
    Goto T_Tune_Orochi_9
  ElseIf feelsound = #Tune_Orochi_10
    Goto T_Tune_Orochi_10
  ElseIf feelsound = #Tune_Orochi_11
    Goto T_Tune_Orochi_11
  ElseIf feelsound = #Tune_Galaxy_10_plus
    Goto T_Tune_Galaxy_10_plus
  ElseIf feelsound = #Tune_Blade_10_plus
    Goto T_Tune_Blade_10_plus
  ElseIf feelsound = #Tune_Orochi_10_plus
    Goto T_Tune_Orochi_10_plus
  EndIf
  Goto CopyMemory2_end
  
  T_Tune_Basic_1:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_1: 
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_1: 
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_2:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_2: 
      !movq [Edx], xmm1 ; +
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_2
      !emms ; Don't remove for hq sound
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_2: 
      !movq [Rdx], xmm1 ; +
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_2
      !emms ; Don't remove for hq sound
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_3:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_3: 
      !movq [Edx], xmm1
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !movq [Ecx], xmm1 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_3: 
      !movq [Rdx], xmm1
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !movq [Rcx], xmm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_4:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_4: 
      !movq [Edx], xmm1
      !PXOR xmm0, xmm0 ; +
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !movq [Ecx], xmm1
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_4: 
      !movq [Rdx], xmm1
      !PXOR xmm0, xmm0 ; +
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !movq [Rcx], xmm1
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_5:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_5: 
      !PXOR xmm1, xmm1 ; +
      !movq [Edx], xmm1
      !PXOR xmm0, xmm0
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !movq [Ecx], xmm1
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_5: 
      !PXOR xmm1, xmm1 ; +
      !movq [Rdx], xmm1
      !PXOR xmm0, xmm0
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !movq [Rcx], xmm1
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_6: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_6: 
      !vmovq [Edx], xmm1 ; +
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_6
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_6: 
      !vmovq [Rdx], xmm1 ; +
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_6
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_7: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_7: 
      !PXOR xmm1, xmm1 ; +
      !vmovq [Edx], xmm1
      !PXOR xmm0, xmm0
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !vmovq [Ecx], xmm1
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_7
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_7: 
      !vmovq [Rdx], xmm1
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !vmovq [Rcx], xmm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_7
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_8: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_8: 
      !vmovq [Edx], xmm1
      !PXOR xmm0, xmm0 ; +
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !vmovq [Ecx], xmm1
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_8
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_8: 
      !vmovq [Rdx], xmm1
      !PXOR xmm0, xmm0 ; +
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !vmovq [Rcx], xmm1
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_8
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_9: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_9: 
      !PXOR xmm1, xmm1 ; +
      !vmovq [Edx], xmm1
      !PXOR xmm0, xmm0
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !vmovq [Ecx], xmm1
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_9
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_9: 
      !PXOR xmm1, xmm1 ; +
      !vmovq [Rdx], xmm1
      !PXOR xmm0, xmm0
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !vmovq [Rcx], xmm1
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_9
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Basic_10: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Basic_10: 
      !PXOR xmm1, xmm1
      !vmovq [Edx], xmm1
      !PXOR xmm0, xmm0
      !movq xmm0, [Ecx]
      !movq [Edx], xmm0
      !PXOR xmm1, xmm1 ; +
      !vmovq [Ecx], xmm1
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Basic_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm0, xmm0
      !PXOR xmm1, xmm1
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Basic_10: 
      !PXOR xmm1, xmm1 ; +
      !vmovq [Rdx], xmm1
      !PXOR xmm0, xmm0
      !movq xmm0, [Rcx]
      !movq [Rdx], xmm0
      !PXOR xmm1, xmm1 ; +
      !vmovq [Rcx], xmm1
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Basic_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_1:
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_1: 
      !vmovq xmm4, [Ecx]
      !vmovq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_1: 
      !vmovq xmm14, [Rcx]
      !vmovq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_2: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_2: 
      !PXOR xmm4, xmm4 ; +
      !vmovq xmm4, [Ecx]
      !vmovq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_2
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_2: 
      !PXOR xmm14, xmm14 ; +
      !vmovq xmm14, [Rcx]
      !vmovq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_2
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_3: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_3: 
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vmovq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_3: 
      !vmovq [Rdx], xmm7 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !vmovq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_4: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_4: 
      !vmovq [Edx], xmm7
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vmovq [Edx], xmm4
      !vmovq [Ecx], xmm7 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_4: 
      !vmovq [Rdx], xmm7
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !vmovq [Rdx], xmm14
      !vmovq [Rcx], xmm7 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_5: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_5: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vmovq [Edx], xmm4
      !vmovq [Ecx], xmm7
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_5: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Rdx], xmm7
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !vmovq [Rdx], xmm14
      !vmovq [Rcx], xmm7
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_6: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_6: 
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_6
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_6: 
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_6
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_7: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5 ; +
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_7: 
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovq [Edx], xmm4
      !movq [Ecx], mm5 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_7
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_7: 
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovq [Rdx], xmm14
      !movq [Rcx], mm5 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_7
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_8: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_8: 
      !movq [Edx], mm5 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovq [Edx], xmm4
      !movq [Ecx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_8
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_8: 
      !movq [Rdx], mm5 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovq [Rdx], xmm14
      !movq [Rcx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_8
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_9: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_9: 
      !PXOR mm5, mm5 ; +
      !movq [Edx], mm5
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovq [Edx], xmm4
      !movq [Ecx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_9
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_9: 
      !PXOR mm5, mm5 ; +
      !movq [Rdx], mm5
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovq [Rdx], xmm14
      !movq [Rcx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_9
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_10: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_10: 
      !PXOR mm5, mm5
      !movq [Edx], mm5
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovq [Edx], xmm4
      !PXOR mm3, mm3 ; +
      !movq [Ecx], mm3 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_10: 
      !PXOR mm5, mm5
      !movq [Rdx], mm5
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovq [Rdx], xmm14
      !PXOR mm3, mm3 ; +
      !movq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Slash_11: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Slash_11: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !vmovq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Slash_11
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Slash_11: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Rdx], xmm7 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !vmovq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Slash_11
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_1:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_1: 
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_1: 
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_2:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_2: 
      !PXOR xmm4, xmm4 ; +
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_2
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_2: 
      !PXOR xmm14, xmm14 ; +
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_2
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_3: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_3: 
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_3: 
      !vmovq [Rdx], xmm7 ; +
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_4: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_4: 
      !vmovq [Edx], xmm7
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !vmovq [Ecx], xmm7 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_4: 
      !vmovq [Rdx], xmm7
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !vmovq [Rcx], xmm7 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_5: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_5: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !vmovq [Ecx], xmm7
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_5: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Rdx], xmm7
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !vmovq [Rcx], xmm7
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_6:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_6: 
      !PXOR mm5, mm5
      !movq [Edx], mm5
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !movq [Ecx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_6
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64 ;checked 2014/11/05 15:54
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_6: 
      !PXOR mm5, mm5
      !movq [Rdx], mm5
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !movq [Rcx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_6
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_7:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_7: 
      !PXOR mm5, mm5
      !movq [Edx], mm5
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !movq [Ecx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_7
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_7: 
      !PXOR mm5, mm5
      !movq [Rdx], mm5
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !movq [Rcx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_7
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_8:  ; AVX ; ?
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR xmm3, xmm3 ; +
      !PXOR xmm6, xmm6 ; +
      !PXOR xmm2, xmm2 ; +
      !PXOR xmm7, xmm7 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_8: 
      !vmovq [Edx], xmm3 ; +
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Ecx], mm5 ; +
      !PADDQ xmm6, xmm3 ; +
      !PADDQ xmm7, xmm2 ; +
      !movq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_8
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64 ;checked 2014/11/05 15:54
      !PXOR mm5, mm5
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_8: 
      !PXOR xmm14, xmm14
      !vmovq [Rdx], xmm3
      !movq xmm14, [Rcx]
      !PADDQ xmm6, xmm3 ; 
      !movq [Rdx], xmm14
      !movq [Rcx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_8
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_9: ; AVX
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm2, xmm2
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_9: 
      !PXOR xmm4, xmm4
      !vmovq [Edx], xmm3
      !movq xmm4, [Ecx]
      !PADDQ xmm6, xmm3
      !PADDQ xmm7, xmm2
      !movq [Edx], xmm4
      !vmovq [Ecx], xmm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_9
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64 ;checked 2014/11/05 15:54
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_9: 
      !PXOR xmm14, xmm14
      !vmovq [Rdx], xmm3
      !movq xmm14, [Rcx]
      !PADDQ xmm6, xmm3
      !movq [Rdx], xmm14
      !vmovq [Rcx], xmm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_9
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_10:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_10: 
      !PXOR mm5, mm5
      !movq [Edx], mm5
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !PXOR mm3, mm3
      !movq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64 ;checked 2014/11/05 15:54
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_10: 
      !PXOR mm5, mm5
      !movq [Rdx], mm5
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !PXOR mm3, mm3
      !movq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_11:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm3, xmm3
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_11: 
      !PXOR xmm3, xmm3
      !movq [Edx], xmm3
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_11
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64 ;checked 2014/11/05 15:54
      !PXOR xmm3, xmm3
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_11: 
      !PXOR xmm3, xmm3
      !movq [Rdx], xmm3
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_11
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  
  T_Tune_Star_1:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_1: 
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_1: 
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_2:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; matuoka recommend .
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_2: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_2
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_2: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_2
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_3:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_3: 
      !movq [Edx], mm3 ; +
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !movq [Ecx], mm3 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_3: 
      !movq [Rdx], mm3 ; +
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !movq [Rcx], mm3 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_4:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_4: 
      !PXOR mm3, mm3 ; +
      !movq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !movq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_4: 
      !PXOR mm3, mm3 ; +
      !movq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !movq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_5: ; Star8+sse is best? Slash10+avx is best? Shine4+mmx is best? (machida?)
                 ; Shine4(better for people) or Shine6 + mmx is best? nara Slash4 or Slash8 (better) + avx , Star3 or Star8 (better) + sse (Infinity blade HQ)
                 ; sse2 only ShineX test please.
                 ; mmx ha dac no kuse ga deyasui to omou (machida?)
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_5: 
      !PXOR mm3, mm3
      !movq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !PXOR mm3, mm3 ; +
      !movq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_5: 
      !PXOR mm3, mm3
      !movq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !PXOR mm3, mm3 ; +
      !movq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_6:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR mm1, mm1 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_6: 
      !vmovq [Edx], xmm4 ; +
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !movq [Ecx], mm1 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_6
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR mm1, mm1 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_6: 
      !vmovq [Rdx], xmm14 ; +
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !movq [Rcx], mm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_6
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_7:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR mm1, mm1 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_7: 
      !PXOR xmm4, xmm4 ; +
      !vmovq [Edx], xmm4 ; +
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !PXOR mm1, mm1 ; +
      !movq [Ecx], mm1 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_7
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR mm1, mm1 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_7: 
      !PXOR xmm14, xmm14 ; +
      !vmovq [Rdx], xmm14 ; +
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !PXOR mm1, mm1 ; +
      !movq [Rcx], mm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_7
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_8:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_8: 
      !vmovq [Edx], xmm4 ; +
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !vmovq [Ecx], xmm7 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_8
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_8: 
      !vmovq [Rdx], xmm14 ; +
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !vmovq [Rcx], xmm12 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_8
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_9:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_9: 
      !PXOR xmm4, xmm4 ; +
      !vmovq [Edx], xmm4
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !PXOR xmm7, xmm7 ; +
      !vmovq [Ecx], xmm7
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_9
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR xmm12, xmm12
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_9: 
      !PXOR xmm14, xmm14 ; +
      !vmovq [Rdx], xmm14
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !PXOR xmm12, xmm12 ; +
      !vmovq [Rcx], xmm12
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_9
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_10:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_10: 
      !PXOR mm3, mm3
      !movq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !PXOR mm4, mm4 ; +
      !movq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_10: 
      !PXOR mm3, mm3
      !movq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !PXOR mm4, mm4 ; +
      !movq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_11:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_11: 
      !PXOR mm3, mm3
      !movq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_11
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_11: 
      !PXOR mm3, mm3
      !movq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_11
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_1:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_1: 
      !vmovq xmm4, [Ecx]
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_1: 
      !vmovq xmm14, [Rcx]
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_2:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; matuoka recommend .
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_2: 
      !PXOR xmm4, xmm4 ; +
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5 ; +
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_2
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_2: 
      !PXOR xmm14, xmm14 ; +
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5 ; +
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_2
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_3:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_3: 
      !movq [Edx], mm3 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !movq [Ecx], mm3 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_3: 
      !movq [Rdx], mm3 ; +
      !PXOR xmm14, xmm14 ; +
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5 ; +
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !movq [Rcx], mm3 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_4:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_4: 
      !PXOR mm3, mm3 ; +
      !movq [Edx], mm3
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !movq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_4: 
      !PXOR mm3, mm3 ; +
      !movq [Rdx], mm3
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !movq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_5:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_5: 
      !PXOR mm3, mm3
      !movq [Edx], mm3
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !PXOR mm3, mm3 ; +
      !movq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_5: 
      !PXOR mm3, mm3
      !movq [Rdx], mm3
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !PXOR mm3, mm3 ; +
      !movq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_6:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !PXOR mm1, mm1 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_6: 
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !movq [Ecx], mm1 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_6
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12
      !PXOR mm1, mm1 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_6: 
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !movq [Rcx], mm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_6
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_7: ; [4.09] Snake best?
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !PXOR mm1, mm1 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_7: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !PXOR mm1, mm1 ; +
      !movq [Ecx], mm1 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_7
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12
      !PXOR mm1, mm1 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_7: 
      !PXOR xmm12, xmm12 ; +
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !PXOR mm1, mm1 ; +
      !movq [Rcx], mm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_7
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_8:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm6, xmm6
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_8: 
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !vmovq [Ecx], xmm6 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_8
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12 ; +
      !PXOR xmm11, xmm11
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_8: 
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !vmovq [Rcx], xmm11 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_8
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_9:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR xmm7, xmm7
      !PXOR xmm6, xmm6
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_9: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !PXOR xmm6, xmm6 ; +
      !vmovq [Ecx], xmm6
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_9
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR xmm12, xmm12
      !PXOR xmm11, xmm11
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_9: 
      !PXOR xmm12, xmm12 ; +
      !vmovq [Rdx], xmm12
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !PXOR xmm11, xmm11 ; +
      !vmovq [Rcx], xmm11
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_9
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Snake_10:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_10: 
      !PXOR mm3, mm3
      !movq [Edx], mm3
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !PXOR mm4, mm4 ; +
      !movq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_10: 
      !PXOR mm3, mm3
      !movq [Rdx], mm3
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !PXOR mm4, mm4 ; +
      !movq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect  
  
  T_Tune_Snake_11: ; [4.09] Snake best?
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Snake_11: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Snake_11
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Snake_11: 
      !PXOR xmm12, xmm12 ; +
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Snake_11
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_1:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_1: 
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_1: 
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_2:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; matuoka recommend .
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_2: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_2
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_2: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_2
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_3:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_3: 
      !movntq [Edx], mm3 ; +
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !movntq [Ecx], mm3 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_3: 
      !movntq [Rdx], mm3 ; +
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !movntq [Rcx], mm3 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_4:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_4: 
      !PXOR mm3, mm3 ; +
      !movntq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !movntq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_4: 
      !PXOR mm3, mm3 ; +
      !movntq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !movntq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_5: ; Star8+sse is best? Slash10+avx is best? Shine4+mmx is best? (machida?)
                   ; Shine4(better for people) or Shine6 + mmx is best? nara Slash4 or Slash8 (better) + avx , Star3 or Star8 (better) + sse (Infinity blade HQ)
                   ; sse2 only ShineX test please.
                   ; mmx ha dac no kuse ga deyasui to omou (machida?)
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_5: 
      !PXOR mm3, mm3
      !movntq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !PXOR mm3, mm3 ; +
      !movntq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_5: 
      !PXOR mm3, mm3
      !movntq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !PXOR mm3, mm3 ; +
      !movntq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_6:
  
  T_Tune_Galaxy_7:
  
  T_Tune_Galaxy_8:
  
  T_Tune_Galaxy_9:
  
  T_Tune_Galaxy_10:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_10: 
      !PXOR mm3, mm3
      !movntq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !PXOR mm4, mm4 ; +
      !movntq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_10: 
      !PXOR mm3, mm3
      !movntq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !PXOR mm4, mm4 ; +
      !movntq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_11:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_11: 
      !PXOR mm3, mm3
      !movntq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !movq mm3, mm5 ; [4.22]
      !movntq [Edx], mm3 ; [4.22]
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_11
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_11: 
      !PXOR mm3, mm3
      !movntq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !movq mm3, mm5 ; [4.22]
      !movntq [Rdx], mm3  ; [4.22]
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_11
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_2_navx:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; matuoka recommend .
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_2_navx: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_2_navx
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_2_navx: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_2_navx
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Star_10_navx:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Star_10_navx: 
      !PXOR mm3, mm3
      !movq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movq [Edx], mm5
      !PXOR mm4, mm4 ; +
      !movq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Star_10_navx
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Star_10_navx: 
      !PXOR mm3, mm3
      !movq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movq [Rdx], mm5
      !PXOR mm4, mm4 ; +
      !movq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Star_10_navx
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Shine_10_navx:
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Shine_10_navx: 
      !PXOR mm5, mm5
      !movq [Edx], mm5
      !PXOR xmm4, xmm4
      !movq xmm4, [Ecx]
      !movq [Edx], xmm4
      !PXOR mm3, mm3
      !movq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Shine_10_navx
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64 ;checked 2014/11/05 15:54
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Shine_10_navx: 
      !PXOR mm5, mm5
      !movq [Rdx], mm5
      !PXOR xmm14, xmm14
      !movq xmm14, [Rcx]
      !movq [Rdx], xmm14
      !PXOR mm3, mm3
      !movq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Shine_10_navx
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Fstar_2_navx:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; matuoka recommend .
      !PXOR mm5, mm5
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Fstar_2_navx: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Fstar_2_navx
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Fstar_2_navx: 
      !PXOR mm5, mm5 ; +
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Fstar_2_navx
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Fstar_10_navx:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Fstar_10_navx: 
      !PXOR mm3, mm3
      !movntq [Edx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !movntq [Edx], mm5
      !PXOR mm4, mm4 ; +
      !movntq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Fstar_10_navx
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Fstar_10_navx: 
      !PXOR mm3, mm3
      !movntq [Rdx], mm3
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !movntq [Rdx], mm5
      !PXOR mm4, mm4 ; +
      !movntq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Fstar_10_navx
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_1: ;- Blade 1 AVX 
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_1: 
      !vmovdqa xmm4, [Ecx]
      !vmovntdq [Edx], xmm4
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_1: 
      !vmovdqa xmm14, [Rcx]
      !vmovntdq [Rdx], xmm14
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_2: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_2: 
      !PXOR xmm4, xmm4 ; +
      !vmovdqa xmm4, [Ecx]
      !vmovntdq [Edx], xmm4
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_2
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_2: 
      !PXOR xmm14, xmm14 ; +
      !vmovdqa xmm14, [Rcx]
      !vmovntdq [Rdx], xmm14
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_2
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_3: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_3: 
      !vmovntdq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vmovntdq [Edx], xmm4
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_3: 
      !vmovntdq [Rdx], xmm7 ; +
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      !vmovntdq [Rdx], xmm14
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_4: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_4: 
      !vmovntdq [Edx], xmm7
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vmovntdq [Edx], xmm4
      !vmovntdq [Ecx], xmm7 ; +
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_4: 
      !vmovntdq [Rdx], xmm7
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      !vmovntdq [Rdx], xmm14
      !vmovntdq [Rcx], xmm7 ; +
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_5: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_5: 
      !PXOR xmm7, xmm7 ; +
      !vmovntdq [Edx], xmm7
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vmovntdq [Edx], xmm4
      !vmovntdq [Ecx], xmm7
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_5: 
      !PXOR xmm7, xmm7 ; +
      !vmovntdq [Rdx], xmm7
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      !vmovntdq [Rdx], xmm14
      !vmovntdq [Rcx], xmm7
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_6: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_6: 
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovntdq [Edx], xmm4
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_6
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_6: 
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovntdq [Rdx], xmm14
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_6
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_7: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5 ; +
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_7: 
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovntdq [Edx], xmm4
      !movntq [Ecx], mm5 ; +
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_7
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_7: 
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovntdq [Rdx], xmm14
      !movntq [Rcx], mm5 ; +
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_7
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_8: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_8: 
      !movntq [Edx], mm5 ; +
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovntdq [Edx], xmm4
      !movntq [Ecx], mm5
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_8
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_8: 
      !movntq [Rdx], mm5 ; +
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovntdq [Rdx], xmm14
      !movntq [Rcx], mm5
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_8
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_9: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_9: 
      !PXOR mm5, mm5 ; +
      !movntq [Edx], mm5
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovntdq [Edx], xmm4
      !movntq [Ecx], mm5
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_9
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_9: 
      !PXOR mm5, mm5 ; +
      !movntq [Rdx], mm5
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovntdq [Rdx], xmm14
      !movntq [Rcx], mm5
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_9
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_10: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm7, xmm7
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_10: 
      !PXOR mm5, mm5
      !movntq [Edx], mm5
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vpaddq xmm6, xmm3, xmm7 ; need for Future ; checked 2014/11/05 15:59
      !vmovntdq [Edx], xmm4
      !PXOR mm3, mm3 ; +
      !movntq [Ecx], mm3 ; +
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_10: 
      !PXOR mm5, mm5
      !movntq [Rdx], mm5
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovntdq [Rdx], xmm14
      !PXOR mm3, mm3 ; +
      !movntq [Rcx], mm3
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_11: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3
    CompilerCase #PB_Processor_x86 
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_11: 
      !PXOR xmm7, xmm7 ; +
      !vmovntdq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !vmovntdq [Edx], xmm4
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_11
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_11: 
      !PXOR xmm7, xmm7 ; +
      !vmovntdq [Rdx], xmm7 ; +
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      !vmovntdq [Rdx], xmm14
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_11
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_1:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_1: 
      !vmovq xmm4, [Ecx]
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_1
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_1: 
      !vmovq xmm14, [Rcx]
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_1
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_2:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; matuoka recommend .
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_2: 
      !PXOR xmm4, xmm4 ; +
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5 ; +
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_2
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_2: 
      !PXOR xmm14, xmm14 ; +
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5 ; +
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_2
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_3:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_3: 
      !movntq [Edx], mm3 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !movntq [Ecx], mm3 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_3
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_3: 
      !movntq [Rdx], mm3 ; +
      !PXOR xmm14, xmm14 ; +
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5 ; +
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !movntq [Rcx], mm3 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_3
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_4:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_4: 
      !PXOR mm3, mm3 ; +
      !movntq [Edx], mm3
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !movntq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_4
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_4: 
      !PXOR mm3, mm3 ; +
      !movntq [Rdx], mm3
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !movntq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_4
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_5:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR mm3, mm3
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_5: 
      !PXOR mm3, mm3
      !movntq [Edx], mm3
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !PXOR mm3, mm3 ; +
      !movntq [Ecx], mm3
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_5
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR mm3, mm3
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_5: 
      !PXOR mm3, mm3
      !movntq [Rdx], mm3
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !PXOR mm3, mm3 ; +
      !movntq [Rcx], mm3
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_5
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_6:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !PXOR mm1, mm1 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_6: 
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !movntq [Ecx], mm1 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_6
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12
      !PXOR mm1, mm1 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_6: 
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !movntq [Rcx], mm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_6
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_7: ; [4.09] Orochi best?
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !PXOR mm1, mm1 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_7: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !PXOR mm1, mm1 ; +
      !movntq [Ecx], mm1 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_7
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12
      !PXOR mm1, mm1 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_7: 
      !PXOR xmm12, xmm12 ; +
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !PXOR mm1, mm1 ; +
      !movntq [Rcx], mm1 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_7
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_8:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !PXOR xmm6, xmm6
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_8: 
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !vmovq [Ecx], xmm6 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_8
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12 ; +
      !PXOR xmm11, xmm11
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_8: 
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !vmovq [Rcx], xmm11 ; +
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_8
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_9:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4
      !PXOR xmm7, xmm7
      !PXOR xmm6, xmm6
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_9: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !PXOR xmm6, xmm6 ; +
      !vmovq [Ecx], xmm6
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_9
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14
      !PXOR xmm12, xmm12
      !PXOR xmm11, xmm11
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_9: 
      !PXOR xmm12, xmm12 ; +
      !vmovq [Rdx], xmm12
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !PXOR xmm11, xmm11 ; +
      !vmovq [Rcx], xmm11
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_9
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_10:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_10: 
      !PXOR mm3, mm3
      !movntq [Edx], mm3
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !PXOR mm4, mm4 ; +
      !movntq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_10
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_10: 
      !PXOR mm3, mm3
      !movntq [Rdx], mm3
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !PXOR mm4, mm4 ; +
      !movntq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_10
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect  
  
  T_Tune_Orochi_11: ; [4.09] Orochi best?
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86      ; XMM 14 12 11 10 4 7 6 3
      !PXOR mm5, mm5
      !PXOR xmm4, xmm4 ; +
      !PXOR xmm7, xmm7 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_11: 
      !PXOR xmm7, xmm7 ; +
      !vmovq [Edx], xmm7 ; +
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !movntq [Edx], mm5
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_11
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR xmm14, xmm14 ; +
      !PXOR xmm12, xmm12
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_11: 
      !PXOR xmm12, xmm12 ; +
      !vmovq [Rdx], xmm12 ; +
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !movntq [Rdx], mm5
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_11
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Galaxy_10_plus:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm1, mm1
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Galaxy_10_plus: 
      !PXOR mm1, mm1
      !movntq [Edx], mm1
      !PXOR mm5, mm5
      !movq mm5, [Ecx]
      !PXOR mm3, mm3
      !movq mm3, mm5
      !movntq [Edx], mm5 ; for DDR4
      !movntq [Edx], mm3 ; for DDR4
      !PXOR mm4, mm4 ; +
      !movntq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Galaxy_10_plus
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm1, mm1
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Galaxy_10_plus: 
      !PXOR mm1, mm1
      !movntq [Rdx], mm1
      !PXOR mm5, mm5
      !movq mm5, [Rcx]
      !PXOR mm3, mm3
      !movq mm3, mm5
      !movntq [Rdx], mm5 ; for DDR4
      !movntq [Rdx], mm3 ; for DDR4
      !PXOR mm4, mm4 ; +
      !movntq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Galaxy_10_plus
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Blade_10_plus: ; AVX
  CompilerSelect #PB_Compiler_Processor ; XMM 14 12 11 10 4 7 6 3 2 [2 add, 4.61] 
    CompilerCase #PB_Processor_x86 
      !PXOR xmm4, xmm4
      !PXOR xmm7, xmm7
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !PXOR xmm3, xmm3
      !PXOR xmm6, xmm6
      !PXOR xmm2, xmm2
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Blade_10_plus: 
      !PXOR mm5, mm5
      !movntq [Edx], mm5
      !PXOR xmm4, xmm4
      !vmovdqa xmm4, [Ecx]
      !PXOR xmm7, xmm7
      !vmovdqa xmm7, xmm4
      !vpaddq xmm6, xmm3, xmm2 ; need for Future ; checked 2014/11/05 15:59
      !vmovntdq [Edx], xmm4 ; for DDR4
      !vmovntdq [Edx], xmm7 ; for DDR4          
      !PXOR mm3, mm3 ; +
      !movntq [Ecx], mm3 ; +
      !ADD  Ecx, 16
      !ADD  Edx, 16
      !SUB  Eax, 16
      !JNZ Tune_Blade_10_plus
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR xmm14, xmm14
      !PXOR xmm12, xmm12
      !PXOR mm5, mm5
      !PXOR mm3, mm3 ; +
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Blade_10_plus: 
      !PXOR mm5, mm5
      !movntq [Rdx], mm5
      !PXOR xmm14, xmm14
      !vmovdqa xmm14, [Rcx]
      !PXOR xmm12, xmm12
      !vmovdqa xmm12, xmm14
      ; !vpaddq xmm6, xmm3, xmm7  Not need for clear for Future (Must remove !!)
      !vmovntdq [Rdx], xmm14 ; for DDR4
      !vmovntdq [Rdx], xmm12 ; for DDR4
      !PXOR mm3, mm3 ; +
      !movntq [Rcx], mm3
      !ADD  Rcx, 16
      !ADD  Rdx, 16
      !SUB  Rax, 16
      !JNZ Tune_Blade_10_plus
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect 
  
  T_Tune_Orochi_10_plus:
  CompilerSelect #PB_Compiler_Processor ; mmx 5 3 1 4 7 
    CompilerCase #PB_Processor_x86
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !PXOR mm1, mm1 ; +
      !PXOR xmm4, xmm4
      !MOV Eax, [p.v_s]
      !MOV Ecx, [p.p_memory_in]
      !MOV Edx, [p.p_memory_out]
      !Tune_Orochi_10_plus: 
      !PXOR mm1, mm1
      !movntq [Edx], mm1
      !PXOR xmm4, xmm4
      !vmovq xmm4, [Ecx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm4
      !PXOR mm3, mm3
      !movq mm3, mm5
      !movntq [Edx], mm5 ; for DDR4
      !movntq [Edx], mm3 ; for DDR4
      !PXOR mm4, mm4 ; +
      !movntq [Ecx], mm4 ; +
      !ADD  Ecx, 8
      !ADD  Edx, 8
      !SUB  Eax, 8
      !JNZ Tune_Orochi_10_plus
      !emms
      Goto CopyMemory2_end
    CompilerCase #PB_Processor_x64
      !PXOR mm5, mm5
      !PXOR mm3, mm3
      !PXOR mm4, mm4 ; +
      !PXOR mm1, mm1 ; +
      !PXOR xmm14, xmm14
      !MOV Rax, [p.v_s]
      !MOV Rcx, [p.p_memory_in]
      !MOV Rdx, [p.p_memory_out]
      !Tune_Orochi_10_plus: 
      !PXOR mm1, mm1
      !movntq [Rdx], mm1
      !PXOR xmm14, xmm14
      !vmovq xmm14, [Rcx]
      !PXOR mm5, mm5
      !movdq2q mm5, xmm14
      !PXOR mm3, mm3
      !movq mm3, mm5
      !movntq [Rdx], mm5 ; for DDR4
      !movntq [Rdx], mm3 ; for DDR4
      !PXOR mm4, mm4 ; +
      !movntq [Rcx], mm4
      !ADD  Rcx, 8
      !ADD  Rdx, 8
      !SUB  Rax, 8
      !JNZ Tune_Orochi_10_plus
      !emms
      Goto CopyMemory2_end
  CompilerEndSelect  
  
  CopyMemory2_end:
EndProcedure

このように試して良かったことは「MMXのメモリコピー処理」はジッターレスになりやすい。MOVNTQ QWORD [Rcx], mm4 を使ったあと、NOP QWORD [Rcx] というデータキャッシュを行わないと、ジッター影響になりやすい。キャッシュ回避して書き出すけれど、少しタイミングをずらしてキャッシュさせると良くなる。いまの Nontallion 14.28 では下記のように書いています。

  !WASAPI_Proc_LOOP_222_SS:
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !FNOP
  !FNOP
  !FNOP
  !FNOP
  !PXOR mm5, mm5
  !MOVDQ2Q mm5, xmm13
  !PXOR mm7, mm7
  !PSLLW mm7, mm5 ;1  Left 1bit shift
  !PSLLW mm7, mm5 ;2  Left 1bit shift
  !PSLLW mm7, mm5 ;3  Left 1bit shift
  !PSLLW mm7, mm5 ;4  Left 1bit shift
  !PSLLW mm7, mm5 ;5  Left 1bit shift
  !PSLLW mm7, mm5 ;6  Left 1bit shift
  !PSLLW mm7, mm5 ;7  Left 1bit shift
  !PSLLW mm7, mm5 ;8  Left 1bit shift
  !PSLLW mm7, mm5 ;9  Left 1bit shift
  !PSLLW mm7, mm5 ;A  Left 1bit shift
  !PSLLW mm7, mm5 ;B  Left 1bit shift
  !PSLLW mm7, mm5 ;C  Left 1bit shift
  !PSLLW mm7, mm5 ;D  Left 1bit shift
  !PSLLW mm7, mm5 ;E  Left 1bit shift
  !PSLLW mm7, mm5 ;F  Left 1bit shift
  !PSLLW mm7, mm5 ;0  Left 1bit shift
  !MOVDQ2Q mm7, xmm13
  ; mm7 = 8
  !PXOR mm5, mm5
  !PXOR mm5, mm5
  !PAND mm5, mm5
  !PAND mm5, mm5
  !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
  XOR_R8_R8
  !MOVQ R8, mm5
  MOV_Rdx_Rdx_Up
  !MOV R8, Rdx
  MOV_R8_R8_Down
  XOR_Rdx_Rdx
  !MOVQ Rdx, mm5
  MOV_Rdx_Rdx_Down
  MOV_R9_R9_Up
  !MOV Rdx, R9
  MOV_Rdx_Rdx_Down
  !MOVQ mm5, Rcx
  !NOP QWORD [Rip]
  !NOP QWORD [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 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
  !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 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
  SetR9_SHL_CL_Full
  !MOVQ mm0, R9
  XOR_R9_R9
  !INC R9b
  !INC R9b
  !INC R9b
  !INC R9b
  !INC R9b
  !INC R9b
  !INC R9b
  !INC R9b ;8
  MOVZX_R9
  ; 6 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ mm6, R9
  ; 6 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ mm2, Rdx
  ; 6 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ mm4, R8
  ; 6 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rcx, mm5
  !NOP QWORD [Rip-32]
  !XCHG spl, bpl
  !XCHG Rsp, Rsp
  !XCHG Rbp, Rbp
  !XCHG bpl, spl
  ; 697 @@
  !NOP QWORD [Rip+360]
  !NOP QWORD [Rip+376]
  !NOP QWORD [Rip+392]
  !NOP QWORD [Rip+408]
  !NOP QWORD [Rip+424]
  !NOP QWORD [Rip+440]
  !NOP QWORD [Rip+456]
  !NOP QWORD [Rip+472]
  !NOP QWORD [Rip+488]
  !NOP QWORD [Rip+504]
  !NOP QWORD [Rip+520]
  !NOP QWORD [Rip+536]
  !NOP QWORD [Rip+552]
  !NOP QWORD [Rip+568]
  !NOP QWORD [Rip+584]
  !NOP QWORD [Rip+600]
  !NOP QWORD [Rip+616]
  !NOP QWORD [Rip+632]
  !NOP QWORD [Rip+648]
  !NOP QWORD [Rip+664]
  !NOP QWORD [Rip+680]
  !NOP QWORD [Rip+696]
  !NOP QWORD [Rip+712]
  !NOP QWORD [Rip+728]
  !NOP QWORD [Rip+744]
  !NOP QWORD [Rip+760]
  !NOP QWORD [Rip+776]
  !NOP QWORD [Rip+792]
  !NOP QWORD [Rip+808]
  !NOP QWORD [Rip+824]
  !NOP QWORD [Rip+840]
  !NOP QWORD [Rip+856]
  !NOP QWORD [Rip+872]
  !NOP QWORD [Rip+888]
  !NOP QWORD [Rip+904]
  !NOP QWORD [Rip+920]
  !NOP QWORD [Rip+936]
  !NOP QWORD [Rip+952]
  !NOP QWORD [Rip+968]
  !NOP QWORD [Rip+984]
  !NOP QWORD [Rip+1000]
  !NOP QWORD [Rip+1016]
  !NOP QWORD [Rip+1032]
  !NOP QWORD [Rip+1048]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !WASAPI_Proc_LOOP_222:
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !FNOP ; for wide
  !FNOP
  !FNOP
  !FNOP ;4
  !XCHG ch, cl
  !XCHG cl, ch
  !MOVDQ2Q mm1, xmm0
  !MOVDQ2Q mm3, xmm0
  !MOVDQ2Q mm5, xmm0
  !MOVQ mm1, R8
  !MOVQ mm3, Rdx
  !MOVQ mm5, Rcx
  XOR_R8_R8
  XOR_Rdx_Rdx
  XOR_Rcx_Rcx
  !MOVQ R8, mm1
  !MOVQ Rdx, mm3
  !MOVQ Rcx, mm5
  !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 [Rdx] ; [12.05]
  !MOVQ mm3, [Rdx]
  !MOVQ mm3, [Rdx] ; 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 Rdx, mm2
  MOV_Rdx_Rdx_Down
  !PADDQ mm4, mm6
  !MOVQ R8, mm4
  MOV_R8_R8_Down
  !DEC Rcx
  !DEC Rcx
  !DEC Rcx
  !DEC Rcx ;4
  !DEC Rcx
  !DEC Rcx
  !DEC Rcx
  !DEC Rcx ;8
  ;dame ; ;   !IgaHachimanGoo20190101_1A:
  !FNOP ; for wide
  !FNOP
  !FNOP
  !FNOP ;4
  !NOP QWORD [Rip] ; [12.10 - 2.97]
  !NOP QWORD [Rip] ; [12.10 - 2.97]
  !JNZ QWORD WASAPI_Proc_LOOP_222
  ; 697 @@ End
  ;     CopyMemory(*bufferDecode+WasapiPos, *buffer, length) ; or very light memory copy process
  ;     result = length : WasapiPos + result
  !WAIT ;1 [11.24 - 144]
  !WAIT ; no fwait
  !WAIT ; wait with FNOP
  !WAIT ;4
  !XCHG ch, cl
  !XCHG cl, ch

レジスタの初期化は「スレッシュホールド電圧の "0" を汎用レジスタの命令で決めた後に、MMX 左シフト命令で初期化した mm5 でクリア、それを物理レジスタへ更新 MOV_Up_Down、同様に音楽データに対して処理」、出力バッファに対して「"反転データ" "正規データ" によるスタビライザー処理を実行」して行い、転送している。カウンター処理は数字を使わないで INC 命令だけで処理している。とても難解で理解できない処理ですが、高級オーディオで「音が評価されている」という結果が伴っているので、今の時点では短く最適化できません。

野次馬「これほどに努力しているのなら、ASIO SDK から作ったらいいじゃないの?」

ASIO4ALL が最初に公開された時、不安定すぎる状態でした。これを簡単に作れなかったように、サウンドドライバーの設計を細かく熟知していないと、ソースコードを書けても USB-DAC へ出力できないものになる。それで難しい。ASIO SDK は「サウンドドライバーの独占特許」に関係する部分について「完全非公開」になっており、そこを記述するには「リバースエンジニアリング」する必要がある。これは「ASIO SDK」だけでなく「WINDOWS SDK」や「DRIVERS SDK」のほか、「Sound Blaster Driver's Hack」の知識が必要です。世界中のプログラマーが ASIO4ALL を作ろうとしたけれど、安定するものは「ほとんど作れていない」ぐらいに難しい。



Nontallion 14.28 でも「まだ手を抜いてるの!!」

音量セットアップについて、高級オーディオと低価格USB-DACの音質差が消失するから、そこまで踏み込むのは止めようと書いた後、音楽業界の裏から「まだ手を抜いてるの!!妥協なくやってと言ったよ!!」と言われてしまい、それなら手法を公開した上で進めないと「自分の危険を考えた」。それで、どのようにコードを記述しているのか、Generate Program を公開しておこうと思いました。ビット状態を考えて「それを仕様書に書いて稟議を通す」のは愚かに思います。1人で「通常は15人必要な音楽再生ソフトの研究開発」をやるためには、できるだけ作業を「トヨタ自動車の定番である、カイゼン」を進めて、作業時間を短くしなければ達成できません。

Rcx はカウンターレジスタですので、数値の信頼性は極めて高い設計である。それで Rcx を初期化後、INC cl した後に MOVZX Rcx, cl によりゼロ拡張を行う。それを mm5 へセットして、mm1 に対して WORD 単位の左シフト命令を 16回行って、mm1 を初期化する。次は mm1 へ セットして、mm5 に対しても同様に初期化する。その後に Generate Program により作られた Float 1.000 を作る処理を貼り付けて、完成した。

Macro MacroMakeFloat
  XOR_Rcx_Rcx
  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, Rcx
  !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
  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, Rcx
  !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

Global a.f = 0.05000
Global b.i
Procedure GenerateFloatASM()
  Debug "; **** "+StrF(a,5)
  Debug "XOR_Rcx_Rcx"
  Debug "Set_CL1"
  Debug "MOVZX_Rcx"
  !XOR Eax, Eax
  !MOV Eax, [v_a]
  !XOR R8, R8
  ;
  ; Rax = 1065353215
  ; Float1000 = 0.99999994039536
  ;   !MOV Rax, 1065353215
  !XOR Rax, Rax
  !NOT Rax
  ;
  !MOV R8, Rax
  !MOV [v_b], R8
  For I=63 To 1 Step -1
;   For I=30 To 1 Step -1
    If b&( 2 << I )
      Debug "!PADDQ mm5, mm1"
      Debug "!PSLLQ mm5, mm1"
    Else
      Debug "!PSLLQ mm5, mm1"
    EndIf  
  Next
  If b&2
    Debug "!PADDQ mm5, mm1"
    Debug "!PSLLQ mm5, mm1"
  Else
    Debug "!PSLLQ mm5, mm1"
  EndIf  
  If b&1
    Debug "!PADDQ mm5, mm1"
  Else
    ;   st.s + "0"
  EndIf  
EndProcedure

a = 1.00000: GenerateFloatASM()
	

それで聞くと「きれいな音波はできた」、しかし「高級オーディオでは不満の音になった」、と考える。常に想定では「妥協なく」と言えるためには、自分の感想など必要ない、自分の想定する視野を広げるためには、「きれいな音波はできた、しかし、高級オーディオでは不満の音になった、と考える」の思考アクションが必要です。普通の技術者は「これでいい」と思う、その後、普通の技術者によって「カイゼンが必要だ!」と言って、普通の技術者は「これでいい、と思った状態を作るのに、また数年かかる」となって、トヨタ自動車は技術競争に負けている、と考える。先に進めるためには、「妥協なく」の想定が甘ければ、簡単に技術で抜かれる。

カイゼン
ASIO_ChannelSetVolume_Stabilizer の初期化処理、まだ甘い

いま、考えただけで「約4年間の技術競争について、ショートカット」したと考えると、XOR_Rcx_Rcx Set_CL1 = XOR_Rcx_Rcx XOR_Rcx_Rcx INC cl となるから、もっと最適化を進めると Set_CL1 だけで十分と考えた。それなら R8 = 0 なら MOVQ Rcx, mm3 になるのなら、mm5 の初期化後に MOVQ Rcx, mm5 のほうがいい。そうして、Nontallion 14.29 は処理内容の最適化を進めます。"0" についての Windwos API セットでは極めて慎重にならないと良くならない。それであれば、単純に XOR_Rcx_Rcx だけのほうが良い。

Macro ASIO_ChannelSetVolume_Stabilizer_Pretime
  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, Rcx
  !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 
  !MOVQ2DQ xmm0, mm5
  !MOVQ2DQ xmm1, mm5
  !MOVQ2DQ xmm2, mm5
  !MOVQ2DQ xmm3, mm5
  ; ;     Set_CL1
  ; ;     MOVZX_Rcx
  ; ;     !MOVQ mm1, Rcx
  !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

Macro ASIO_ChannelSetVolume_Stabilizer
  ;
  CALL_ALL_REGISTER_INC255_DEC255_in
  ASIO_ChannelSetVolume_Stabilizer_Pretime
  ; mm5 = -1
  !MOVQ2DQ xmm2, mm5
  MacroMakeFloatFF
  XOR_R8_R8
  XOR_Rcx_Rcx
  XOR_R9_R9
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  ; 5 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rdx, xmm2
  !MOVQ2DQ xmm2, mm5
  !MOVSS xmm2, xmm2
  !EMMS
  ;BASS_ASIO_ChannelSetVolume(False, DM1, NFloat_1_000)
  !CALL QWORD BASS_ASIO_ChannelSetVolume
  ; 5 @@ End
  ;
  CALL_ALL_REGISTER_INC255_DEC255_in
  ASIO_ChannelSetVolume_Stabilizer_Pretime
  ; mm5 = -1
  !MOVQ2DQ xmm2, mm5
  MacroMakeFloatFF
  XOR_R8_R8
  XOR_Rcx_Rcx
  XOR_R9_R9
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  ; 5 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rdx, xmm2
  !MOVQ2DQ xmm2, mm5
  !MOVSS xmm2, xmm2
  !EMMS
  ;BASS_ASIO_ChannelSetVolume(False, DM1, NFloat_1_000)
  !CALL QWORD BASS_ASIO_ChannelSetVolume
  ; 5 @@ End
  ;
  CALL_ALL_REGISTER_INC255_DEC255
  ASIO_ChannelSetVolume_Stabilizer_Pretime
  ; mm5 = -1
  !MOVQ2DQ xmm2, mm5
  MacroMakeFloat
  XOR_R8_R8
  XOR_Rcx_Rcx
  XOR_R9_R9
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  ; 5 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rdx, xmm2
  !MOVQ2DQ xmm2, mm5
  !MOVSS xmm2, xmm2
  !EMMS
  ;BASS_ASIO_ChannelSetVolume(False, DM1, Float_1_000)
  !CALL QWORD BASS_ASIO_ChannelSetVolume
  ; 5 @@ End
  ;
  CALL_ALL_REGISTER_INC255_DEC255_in
  ASIO_ChannelSetVolume_Stabilizer_Pretime
  ; mm5 = -1
  !MOVQ2DQ xmm2, mm5
  MacroMakeFloatFF
  XOR_R8_R8
  XOR_Rcx_Rcx
  XOR_R9_R9
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  ; 5 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rdx, xmm2
  !MOVQ2DQ xmm2, mm5
  !MOVSS xmm2, xmm2
  !EMMS
  ;BASS_ASIO_ChannelSetVolume(False, DM1, NFloat_1_000)
  !CALL QWORD BASS_ASIO_ChannelSetVolume
  ; 5 @@ End
  ;
  CALL_ALL_REGISTER_INC255_DEC255
  ASIO_ChannelSetVolume_Stabilizer_Pretime
  ; mm5 = -1
  !MOVQ2DQ xmm2, mm5
  MacroMakeFloat
  XOR_R8_R8
  XOR_Rcx_Rcx
  XOR_R9_R9
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  ; 5 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rdx, xmm2
  !MOVQ2DQ xmm2, mm5
  !MOVSS xmm2, xmm2
  !EMMS
  ;BASS_ASIO_ChannelSetVolume(False, DM1, Float_1_000)
  !CALL QWORD BASS_ASIO_ChannelSetVolume
  ; 5 @@ End
  ;
  CALL_ALL_REGISTER_INC255_DEC255_in
  ASIO_ChannelSetVolume_Stabilizer_Pretime
  ; mm5 = -1
  !MOVQ2DQ xmm2, mm5
  MacroMakeFloatFF
  XOR_R8_R8
  XOR_Rcx_Rcx
  XOR_R9_R9
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  ; 5 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rdx, xmm2
  !MOVQ2DQ xmm2, mm5
  !MOVSS xmm2, xmm2
  !EMMS
  ;BASS_ASIO_ChannelSetVolume(False, DM1, NFloat_1_000)
  !CALL QWORD BASS_ASIO_ChannelSetVolume
  ; 5 @@ End
  ;
  CALL_ALL_REGISTER_INC255_DEC255
  ASIO_ChannelSetVolume_Stabilizer_Pretime
  ; mm5 = -1
  !MOVQ2DQ xmm2, mm5
  MacroMakeFloat
  XOR_R8_R8
  XOR_Rcx_Rcx
  XOR_R9_R9
  XOR_Rdx_Rdx
  XOR_Rax_Rax
  ; 5 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rdx, xmm2
  !MOVQ2DQ xmm2, mm5
  !MOVSS xmm2, xmm2
  !EMMS
  ;BASS_ASIO_ChannelSetVolume(False, DM1, Float_1_000)
  !CALL QWORD BASS_ASIO_ChannelSetVolume
  ; 5 @@ End
  ;
  XOR_Rax_Rax
EndMacro
	

ありえないクリア感?、そう思ったら「高級オーディオへ対応済み」と考えていい。結果として、ASIO 音量設定 では変数値の参照を行わず、MMX シフト命令から Xmm2 の 音量 1.000 単精度 Float を生成してセットした方が良いと判断した。単精度や倍精度で影響する範囲は、Nontallion では ASIO 音量設定 だけである。CPU の内部設計をカイゼンするとすれば、単精度や倍精度のセット時に「上記のように MMX 左シフト命令 によって、値を作る処理を生成して、その処理を実行してセット」とすれば、超低雑音の演算を実現して、物理的影響を排除できる。

「MacroMakeFloat MacroMakeFloatFF の XOR_Rcx_Rcx は必要ですか?」

XOR_Rcx_Rcx は「Rcxレジスタの基準をキャッシュ化する」を意味しており、SetCL MOVZX_Rcx では XOR_RCX_RCX INC cl MOVZX cx, cl MOVZX Rcx, cl MOVZX cx, cl となっており、参照する回数が多い場合、Intel microcode pre-compiler が意図した通りに機能しない。その判断をするには、2通りのビルドを作ってみればいい。それで判明した、XOR_Rcx_Rcx SetCL1 MOVZX_Rcx と書いたほうが、「キレのある音」になりやすい。「高級オーディオへ対応しようと思う?」ならば、「クリア!キレ!、その結果としてオーケストラの空気感!!」を求めていけばいい。オーケストラの空気感と言われても・・・、ここに再現できる試聴環境は存在しない。「安いオーディオへ最適化するなら、XOR_Rcx_Rcx は実質1回でいい」「高級オーディオへ最適化するなら、XOR_Rcx_Rcx は実質2回必要だ」と回答する。この音質差を「オーディオアクセサリー代金」として表現すると、「XOR_Rcx_Rcx 実質1回、4000円のケーブル」「XOR_Rcx_Rcx 実質2回、16万円のケーブル」、このように差が出る。

「ありがとう」

おかしいと思わないか? この手数の多さ!

  1. Windows Update が始まる直前で「やらされている」
  2. Windows Update は3つあり、累積更新以外は完了済み
  3. Windows Software Distribution では 6つの新規フォルダを確認
  4. システム保護、サイズは 0 のまま。何も更新していないと分かる
  5. 父は「濃いお茶」の科学的根拠を否定、飲まないのに捨ててある
  6. 昼12時、カーテンをあけて幻塔をしてると、外光の光量が急激上昇
  7. XOR_Rcx_Rcxの音の確認ができない
  8. XOR_Rcx_Rcx削除させ、アーカイブ
  9. XOR_Rcx_Rcx、最終EXEの確認で 14.28 より悪い
  10. XOR_Rcx_Rcx、バカの音楽業界と判明!
  11. 「ミリタリーアシストを希望」と宣言、経緯を細かく説明せよ
  12. アシスト:SetCLの前に XOR_Rcx_Rcx をセット、すべて確認
  13. アシスト:食洗機に仕掛けた罠を外せ、完了後に洗顔せよ
  14. アシスト:着ていたジャージのポケットを確認後、洗濯せよ
  15. アシスト:古いバージョンを 14.26 と規定せよ
  16. アシスト:Software Distribution フォルダを強制削除
  17. アシスト:WindowsUpdate の更新、許可あるまで延期
  18. アシスト:アーカイブは怪しい、すべて削除せよ
Macro ASIO_ChannelSetVolume_Stabilizer_Pretime
  XOR_Rcx_Rcx
  Set_CL1
  MOVZX_Rcx
  !MOVQ mm5, Rcx
	

このように「開発環境」は危険と隣り合わせの状況にあり、その原因に「マルチレイヤー並行世界」の存在を疑っている。義務教育の途中、1回で覚えられる人は「並行世界が存在しない、結果を出せない人」、3回で覚えられる人は「並行世界が3つ存在しており、人生が3つ同時に存在している、男・女・女、男・男・女」、5回で覚えられる人は「並行世界が5つ存在しており、人生が5つ同時に存在している、男・女・女・IS男・IS女」、このように考えれば「同時に1回の手数で済ませようとする、バカの音楽業界」の存在を想定する。それで「同時に進行する手数が多い」と判断すれば、おかしいと思うべきである。

伝説のリーダーは言いました。
「運命は変えられない、でも結果は変えられる」、「でも、あなたの結果は変えられない。次は女になると思っていなさい」、「男・女・女・IS女、この次はどうなると思う?」、「でも、親戚はみんな経験済みの話よ」、「男、音楽再生ソフトの研究開発は15人で進行していた件、あなたは1人でやり遂げた」、「女・女、邪魔だったから貸縁組で飛ばしたの、そうしたら世界は破滅した」、「IS女、1人でやっている」、「この次はどうなるか?、もう時間はない、心臓攻撃を受けて生存できる時間は限られている」

このように想定すれば、Nontallion 14.29 は、早めの公開が吉と判断できる。

Nontallion 14.29 のチューニング変更、MajiorityCleanES 92 へ影響

;// Before
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rcx, QWORD 0
  !INC cl

;// After
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rcx, QWORD 0
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rcx, QWORD 0
  !NOP QWORD [Rip-32]
  !INC cl
	

この変更によって、MajiorityCleanES 93 へ更新する手がかりを得る。試しに作ってみて、現在時刻 午前5時24分 ですので、これでも改善するというのなら、改善すると断定できる。この結果によって、Art photo print にも更新作業が含まれると分かると、更新に掛かる時間は約5時間と判明する。今日の公開は無理と分かると、Journal は現状維持となる。





MajiorityCleanES の初期型 All core any cures

RISC型 CPU の micro code 変換処理とは?

同じ命令を繰り返すと「ゲーム」「ワープロ」をしている人では影響ない。しかし「音楽」「オーディオ」「研究」をしている人で「最終結果はDAコンバーターにより得る」という場合、命令の繰り返しは結果へ影響する。それに気付いて作り始めたものが、All core any cures でした。以下は、最初のソースコードです。


; All core any cures
; Copyright (c) Hiroyuki Yokota

Macro Cures
  ; 1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm0, mm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm1, mm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm2, mm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm3, mm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm4, mm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm5, mm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm6, mm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm7, mm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !emms
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm0, xmm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm1, xmm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm2, xmm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm3, xmm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm4, xmm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm5, xmm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm6, xmm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm7, xmm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  CompilerIf  #PB_Compiler_Processor = #PB_Processor_x64
    !PXOR xmm8, xmm8
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm9, xmm9
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm10, xmm10
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm11, xmm12
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm13, xmm13
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm14, xmm14
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm15, xmm15
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
  CompilerEndIf
  
  ; 2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm0, mm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm1, mm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm2, mm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm3, mm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm4, mm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm5, mm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm6, mm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm7, mm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !emms
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm0, xmm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm1, xmm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm2, xmm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm3, xmm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm4, xmm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm5, xmm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm6, xmm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm7, xmm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  CompilerIf  #PB_Compiler_Processor = #PB_Processor_x64
    !PXOR xmm8, xmm8
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm9, xmm9
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm10, xmm10
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm11, xmm12
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm13, xmm13
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm14, xmm14
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm15, xmm15
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
  CompilerEndIf
  
  ; 3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm0, mm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm1, mm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm2, mm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm3, mm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm4, mm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm5, mm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm6, mm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm7, mm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !emms
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm0, xmm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm1, xmm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm2, xmm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm3, xmm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm4, xmm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm5, xmm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm6, xmm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm7, xmm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  CompilerIf  #PB_Compiler_Processor = #PB_Processor_x64
    !PXOR xmm8, xmm8
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm9, xmm9
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm10, xmm10
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm11, xmm12
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm13, xmm13
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm14, xmm14
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm15, xmm15
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
  CompilerEndIf
  
  ; 4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm0, mm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm1, mm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm2, mm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm3, mm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm4, mm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm5, mm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm6, mm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR mm7, mm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !emms
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm0, xmm0
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm1, xmm1
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm2, xmm2
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm3, xmm3
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm4, xmm4
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm5, xmm5
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm6, xmm6
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  !PXOR xmm7, xmm7
  CompilerSelect #PB_Compiler_Processor
    CompilerCase #PB_Processor_x86 
      !XOR Eax, Eax
      !XOR Ebx, Ebx
      !XOR Ecx, Ecx
      !XOR Edx, Edx
      !AND Eax, Eax
      !AND Ebx, Ebx
      !AND Ecx, Ecx
      !AND Edx, Edx
    CompilerCase #PB_Processor_x64
      !XOR Rax, Rax
      !XOR Rbx, Rbx
      !XOR Rcx, Rcx
      !XOR Rdx, Rdx
      !AND Rax, Rax
      !AND Rbx, Rbx
      !AND Rcx, Rcx
      !AND Rdx, Rdx
  CompilerEndSelect
  CompilerIf  #PB_Compiler_Processor = #PB_Processor_x64
    !PXOR xmm8, xmm8
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm9, xmm9
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm10, xmm10
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm11, xmm12
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm13, xmm13
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm14, xmm14
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
    !PXOR xmm15, xmm15
    CompilerSelect #PB_Compiler_Processor
      CompilerCase #PB_Processor_x86 
        !XOR Eax, Eax
        !XOR Ebx, Ebx
        !XOR Ecx, Ecx
        !XOR Edx, Edx
        !AND Eax, Eax
        !AND Ebx, Ebx
        !AND Ecx, Ecx
        !AND Edx, Edx
      CompilerCase #PB_Processor_x64
        !XOR Rax, Rax
        !XOR Rbx, Rbx
        !XOR Rcx, Rcx
        !XOR Rdx, Rdx
        !AND Rax, Rax
        !AND Rbx, Rbx
        !AND Rcx, Rcx
        !AND Rdx, Rdx
    CompilerEndSelect
  CompilerEndIf  
EndMacro

Procedure AnyCures(dummy.i)
  !NOP
  !NOP
  !Mov Eax, 16384
  !First_process:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ First_process
  Cures
  Shared link.i
  AnyCures_1:
  If link = 2
    Goto AnyCures_1
  EndIf
  !NOP
  !NOP
  !Mov Eax, 16384
  !AnyCures_1_S:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_1_S
  Cures
  !Mov Eax, 32768
  !AnyCures_1_T:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_1_T
  AnyCures_2:
  If link = 4
    Goto AnyCures_2
  EndIf
  !NOP
  !NOP
  !Mov Eax, 16384
  !AnyCures_2_S:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_2_S
  Cures
  !Mov Eax, 32768
  !AnyCures_2_T:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_2_T
  AnyCures_3:
  If link = 8
    Goto AnyCures_3
  EndIf
  !NOP
  !NOP
  !Mov Eax, 16384
  !AnyCures_3_S:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_3_S
  Cures
  !Mov Eax, 32768
  !AnyCures_3_T:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_3_T
  AnyCures_4:
  If link = 16
    Goto AnyCures_4
  EndIf
  !NOP
  !NOP
  !Mov Eax, 16384
  !AnyCures_4_S:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_4_S
  Cures
  !Mov Eax, 32768
  !AnyCures_4_T:
  !FNOP
  !NOP
  !FNOP
  !NOP
  !Dec Eax
  !JNZ AnyCures_4_T
EndProcedure

Procedure Main()
  Shared link.i
  Protected Dim Thread.i(64)
  Protected AllCore.i
  For AllCore=1 To CountCPUs(#PB_System_CPUs)
    Thread(AllCore) = CreateThread(@AnyCures(), 4)
    ThreadPriority(Thread(AllCore), 32)
  Next
  Delay(128) : link + 2 ; 2
  Delay(128) : link + 2 ; 4
  Delay(128) : link + 4 ; 8
  Delay(128) : link + 8 ; 16
  For AllCore=1 To CountCPUs(#PB_System_CPUs)
    WaitThread(Thread(AllCore), 30)
  Next
EndProcedure

Main()
End	


大好評 All core any cures の使用法

Windowsスタートアップへ
ショートカットをスタートアップのフォルダへ入れます。
C:\Users\2ch\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

高画質高音質でMMORPGを
MMORPGを始める前に、実行、12秒待機、実行、12秒待機、実行、3回実行します。この12秒は、マザーボードのDC-DCスイッチングやコンデンサーの状態を良好に安定する為の時間で、絶対に必要です。

CDやBDの書き込み品質向上
1. All core any cures
2. 書き込み予定のデータを SSD へコピーするか、ISOにしてから、Rewrite data を書き込み対象をRewrite実施。(.iso)はCTRL+Vにて適用できます。
3. CD書き込みソフトウェアの実行形式を Rewrite data で Rewrite
4. All core any cures
5. 書き込み開始

マザーボードのBIOSを書き換えられる人限定
All core any cures の内容を、マザーボードのBIOSで全コアに対して実施します。BIOSの起動画面で画質が改善したら、当然のようにWindowsのすべてが改善すると予想されます。

サウンドプレイヤー
停止または終了している状態で All core any cures を実行、音がさらに良くなります。

Netflix を楽しんでいる方へ
Netflixアプリを終了してから、All core any cures を実行して下さい。そして、Netflixアプリを起動しますと、ブラウン管テレビで観ているような綺麗な発色になります。つまり、この結果から、液晶テレビはジッター対策を強烈に実施すればブラウン管レベルの発色を実現できると考えて当然でしょう。

この時に「分からないこと」、ソースコードを読んで分かりますか? 当時は 第4世代 Haswell Core i5 で、コアごとに Voltage regulator が使用されて、デジタルジッターが起きやすい状態になっていました。その対策として、Delay命令という方法で「コアを自動選択」した時に XOR 初期化をすると改善した。同時に「キュア処理すると良い?」や「返り値 Eax をカウンターに使用して良い?」、色々と問題点はあります。これを作ってみて、世界中でマニュアルにあるような効能があって、改善したほうが良いのではないか、考える兆しになったと思います。これは結果として、Broadwell では想定外に致命的な問題になったと予想されて、早期に Skylake へ移行したと思います。この問題は「マザーボードの製品寿命」に影響して、最短で10分、最長でも2年で破損、それぐらいに信頼性を損なう話になっていました。

今では Zero idiom optimize(ゼロイディオム最適化)によって、MOV Rax, 0 という記述で XOR 初期化と同じ結果となるよう調整されており、デジタルジッターが起きやすい条件は回避されています。マザーボードの設計は改善されて、デジタル雑音の影響が大きくなっても製品寿命に影響しないよう、部品の改善が進んできました。いま、これを書き直して下さいというと、このように書くでしょう。

Macro XOR_Rax_Rax
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rax, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_Rbx_Rbx
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rbx, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_Rcx_Rcx
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rcx, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_Rdx_Rdx
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rdx, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_Rsp_Rsp
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rsp, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_Rbp_Rbp
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rbp, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_Rsi_Rsi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rsi, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_Rdi_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rdi, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R8_R8
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R8, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R9_R9
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R9, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R10_R10
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R10, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R11_R11
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R11, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R12_R12
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R12, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R13_R13
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R13, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R14_R14
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R14, QWORD 0
  !NOP QWORD [Rip-32]
EndMacro

Macro XOR_R15_R15
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R15, QWORD 0
  !NOP QWORD [Rip-32]
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 MOVZX_Rax
  !MOVZX ax, al
  !MOVZX Rax, al
  !MOVZX ax, al
EndMacro

Macro MOVZX_Rbx
  !MOVZX bx, bl
  !MOVZX Rbx, bl
  !MOVZX bx, bl
EndMacro

Macro MOVZX_Rcx
  !MOVZX cx, cl
  !MOVZX Rcx, cl
  !MOVZX cx, cl
EndMacro

Macro MOVZX_Rdx
  !MOVZX dx, dl
  !MOVZX Rdx, dl
  !MOVZX dx, dl
EndMacro

Macro MOVZX_Rsp
  !MOVZX sp, spl
  !MOVZX Rsp, spl
  !MOVZX sp, spl
EndMacro

Macro MOVZX_Rsi
  !MOVZX si, sil
  !MOVZX Rsi, sil
  !MOVZX si, sil
EndMacro

Macro MOVZX_Rdi
  !MOVZX di, dil
  !MOVZX Rdi, dil
  !MOVZX di, dil
EndMacro

Macro MOVZX_Rbp
  !MOVZX bp, bpl
  !MOVZX Rbp, bpl
  !MOVZX bp, bpl
EndMacro

Macro MOVZX_R8
  !MOVZX R8w, R8b
  !MOVZX R8, R8b
  !MOVZX R8w, R8b
EndMacro

Macro MOVZX_R9
  !MOVZX R9w, R9b
  !MOVZX R9, R9b
  !MOVZX R9w, R9b
EndMacro

Macro MOVZX_R10
  !MOVZX R10w, R10b
  !MOVZX R10, R10b
  !MOVZX R10w, R10b
EndMacro

Macro MOVZX_R11
  !MOVZX R11w, R11b
  !MOVZX R11, R11b
  !MOVZX R11w, R11b
EndMacro

Macro MOVZX_R12
  !MOVZX R12w, R12b
  !MOVZX R12, R12b
  !MOVZX R12w, R12b
EndMacro

Macro MOVZX_R13
  !MOVZX R13w, R13b
  !MOVZX R13, R13b
  !MOVZX R13w, R13b
EndMacro

Macro MOVZX_R14
  !MOVZX R14w, R14b
  !MOVZX R14, R14b
  !MOVZX R14w, R14b
EndMacro

Macro MOVZX_R15
  !MOVZX R15w, R15b
  !MOVZX R15, R15b
  !MOVZX R15w, R15b
EndMacro

Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL
  XOR_Rcx_Rcx
  !INC cl
  ; cx = 1
  MOVZX_Rcx
  !MOVQ mm1, Rcx
  !PSLLW mm0, mm1 ;1  Left 1bit shift
  !PSLLW mm0, mm1 ;2  Left 1bit shift
  !PSLLW mm0, mm1 ;3  Left 1bit shift
  !PSLLW mm0, mm1 ;4  Left 1bit shift
  !PSLLW mm0, mm1 ;5  Left 1bit shift
  !PSLLW mm0, mm1 ;6  Left 1bit shift
  !PSLLW mm0, mm1 ;7  Left 1bit shift
  !PSLLW mm0, mm1 ;8  Left 1bit shift
  !PSLLW mm0, mm1 ;9  Left 1bit shift
  !PSLLW mm0, mm1 ;A  Left 1bit shift
  !PSLLW mm0, mm1 ;B  Left 1bit shift
  !PSLLW mm0, mm1 ;C  Left 1bit shift
  !PSLLW mm0, mm1 ;D  Left 1bit shift
  !PSLLW mm0, mm1 ;E  Left 1bit shift
  !PSLLW mm0, mm1 ;F  Left 1bit shift
  !PSLLW mm0, mm1 ;0  Left 1bit shift
  ;
  !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
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 XORPS_xmm15_to_XMM0_xmm15
  ; 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]  
  !XORPS xmm15, xmm15
  !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
  ; 64 @@ End
EndMacro

Procedure AnyCures(dummy.i)
  !NOP QWORD [Rip]
  !NOP QWORD [Rsp-16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rsp]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  Debug dummy
  Shared AllCore.i
  ; 32 @@
  !NOP QWORD [Rip+24]
  !NOP QWORD [Rip+40]
  !NOP QWORD [Rip+56]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  AnyCures_loop:
  If dummy<>AllCore
    MOV_Rax_Rax_Up_Down
    ; 32 @@ End
    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
    Delay(16)
    Goto AnyCures_loop
  EndIf
  ; 353 @@ End
  BeforeProcedureRegisters_SMSW
  XORPS_xmm15_to_XMM0_xmm15
  BeforeProcedureRegisters_SMSW
  XORPS_xmm15_to_XMM0_xmm15
  Debug dummy
EndProcedure

Procedure Main()
  Protected MaxCPUs.i = CountCPUs(#PB_System_CPUs)
  Protected Dim Thread.i(MaxCPUs)
  Shared AllCore.i
  For AllCore=1 To MaxCPUs
    ; 300 @@
    !NOP QWORD [Rip+160]
    !NOP QWORD [Rip+176]
    !NOP QWORD [Rip+192]
    !NOP QWORD [Rip+208]
    !NOP QWORD [Rip+224]
    !NOP QWORD [Rip+240]
    !NOP QWORD [Rip+256]
    !NOP QWORD [Rip+272]
    !NOP QWORD [Rip+288]
    !NOP QWORD [Rip+304]
    !NOP QWORD [Rip+320]
    !NOP QWORD [Rip+336]
    !NOP QWORD [Rip+352]
    !NOP QWORD [Rip+368]
    !NOP QWORD [Rip+384]
    !NOP QWORD [Rip+400]
    !NOP QWORD [Rip+416]
    !NOP QWORD [Rip+432]
    !NOP QWORD [Rip+448]
    !NOP QWORD [Rip]
    !NOP QWORD [Rip]
    Thread(AllCore) = CreateThread(@AnyCures(), AllCore)
    ThreadPriority(Thread(AllCore), 32)
    SetThreadAffinityMask_(ThreadID(Thread(AllCore)), 1<< (AllCore-1) )
    ; 300 @@ End
  Next
  Delay(2000)
  For AllCore=1 To MaxCPUs
    WaitThread(Thread(AllCore))
  Next
EndProcedure

#MC_ProductName = "CPU Core Registers Stabilizer 2023/10/14"
#MC_VERSION = "www.mics.ne.jp/~halt-and-halt/Lab/"
#MC_Copyright = "Copyright (c) Hiroyuki Yokota (oryaaaaa)"
#MC_DevelopEnv = "Compiler :: PureBasic 6.02 (FASM 1.73.27)"
#MC_INFO1 = "This program control the CPU register"
#MC_INFO2 = "to the electronic reference"
#MC_INFO3 = "inside the CPU embeded cache memory"
#MC_INFO4 = "to made lost the digital jitter in PC."
#MC_Finished = "Finished all core cure process."

If OpenConsole(#MC_ProductName)
  PrintN(#MC_ProductName)
  PrintN(#MC_VERSION)
  PrintN(#MC_Copyright)
  PrintN(#MC_DevelopEnv)
  PrintN(#MC_INFO1)
  PrintN(#MC_INFO2)
  PrintN(#MC_INFO3)
  PrintN(#MC_INFO4)
  Main()
  PrintN(#MC_Finished)
  CloseConsole()
Else
  Main()
EndIf

End

これの問題点は「音楽」「映像」の制作をしようとする時、対応しているPCモニターやオーディオデバイスが存在しないこと。どうしても悪化している様に見えるので、壊れる寸前ではないか?と疑わしく感じる。壊れる寸前という現象は「Goto AnyCures_loop」の部分で「AVX命令 VPXOR ymm, ymm,ymm」という「1行」を書くだけで、画面の色が飽和して色合いについて不審に見えるようになると、壊れる寸前という状態を再現できる。このテストは「オーバークロック対応のマザーボード」でなければ、すぐにオーディオ的な破損になる部品が多い。オーディオ的な破損とは、スピーカーに対して過入力をして、エッジが破損している感じの鳴り方と同様の意味を持つ。音楽は正常に鳴っているけれど、電話機の音声みたいに乱れすぎているイメージです。

それで「他の電子ビット基準をスタビライズする処理」とセットで使うと、壊れる寸前は回避できるけれど、AVX命令が実行されているコアでも動作させようとすると悪化する現象を引き起こす。裏から開発許可されているのは「AVX命令を使うメモリ転送命令が標準になると、この方法は使用不能になる」からであり、販売した時に「全体傾向としてAVX命令の転送命令だけになると、改善効果は起きない」という根拠に基づくので、開発は許可されている。それでプロセス優先度は「32 (time critical) 」ではなく「 1 (lowest priority)」にしなければならない。

プロセス優先度を「32 (time critical) 」のままにしているプログラマーは「半導体設計の電子工学理論をまったく理解してない」ので、このプログラミングの担当者にしてはならない。ソースコードを読んで、これぐらいの技術的見地を想定できるプログラマーでなければ、何がトラブルになるのか、トラブルを予期できない。銀行間の決済サービスで「一方的に、スーパージッターレス信号を送りつければ、受信側の通信設備はすべて破壊される」というトラブルになる。送信側は「光ケーブル通信の設備」でトラブルなし、受信側は「同軸ケーブル通信の設備」でトラブルあり、違いとして「同軸ケーブルは、ジッターレス状態の雑音を増幅させる、科学的根拠」により、壊れると予想できる。これぐらいは余裕で説明できるプログラマーでなければ、間違った根拠で作ってしまうと思います。

最低必要なプログラマーの知識
会社の開発環境で「スーパージッターレスの研究をしているPC」と「銀行決済の情報サービス保守をしているPC」、ローカルネットワークが同じであるとき、すべて「スーパージッターレス対応のPC」でなければ、「銀行決済の情報サービス保守、決済不能トラブル」になる。なぜなら、サイバーアタックの「本物」では「スーパージッターレスで送信され、通信機器が中継機器もフルボッコで破損する」という根拠に基づく。この場合、デジタルからアナログに変換された経路から「すべての機材を新品へ交換しなければ信頼性は回復しない」というもので、無関係と思っていたPCで「キーボード」「マウス」の入力機器が動作異常を引き起こせば、「スーパージッターレス信号のサイバーアタック」を受けたと判断できる。

作者環境では「無線LAN SSID を開発環境と通常環境、信号分離して運用」


作者環境は「常に誤認攻撃を受けている」前提で報告せよ!

ソースコードの表示を PC 1080p で CRT 720p となる時、東芝の映像処理エンジンで「補正処理」をして、多くの誤認攻撃を回避できている。それでも完全ではなく、少し間違えると「それをトリガーに連鎖して誤認する攻撃に変化」して、修正できなくなる。時々、ソースコードを完全に公開して、トラブルの原因を調査するしかないが、そのネット公開において「すべてのライセンスを放棄」という条件で進めるしかない。それで「親戚に相談」ということを1年間やってきたけれど、どうにも音楽業界やアニメ業界や声優業界の利権が絡んで、相談を受け付けてもらえない。スーパージッターレス技術のネット公開は「核ミサイルで首都攻撃」と同じ意味と考えても、強行するしかない。

!PSLLW mm0, mm1 ;0 Left 1bit shift
;
!PSLLW mm1, mm0 ;1 Left 1bit shift

ここは MOVQ mm0, mm1 というレジスタコピーが必要であったのに、それが誤認攻撃によって認識できなくなっていた。これは裏システムで調査すると「どこ国?どこの都市?どこの命令?期間はいつ?繰り返しの頻度?管理責任者はだれ?日本政府の公認か?グローバルの公認か?」という細かい部分が「作者の公表により調査できる」状態になる。

利用者は「匿名で利用できる」と説明を受けていても、その組織内部のみに限定されており、実際は世界へ完全公開の条件で運用されているので、すべての秘密は「日本政府」「公安」そういう裏システムの管理部門に筒抜けになっている。それを無警戒で使っている街が岡崎市の自警団らしい、なぜなら中枢権力に対する支配力が強いからである。引き継ぎする時に、真実を言わない主義者がいると「現場は大混乱」する結果となる。


ソフトウェア開発でも「軍事転用可能」「数兆円規模の影響」というグローバル企業に役立つ内容と判明すると、「テクノロジー犯罪を可能とする裏システムにより、要人保護システムは有効になる」という結果となる。普通には「毎年2千万円ぐらい支払わないと使えないサービス」を「無償提供」になっている。「無償提供の都合上、グローバル企業や米国軍事産業に利益のある話にしなければならず、この際は日本政府の都合は考慮されない」という言えない条件に同意している。

親戚が「横田宏幸」を保護対象にすれば、グローバル要人保護サービスの無償提供は停止される。しかし、親戚が契約したサービスは「娯楽産業専任型」というもので、「横田宏幸」が声優として働くと困る。「娯楽産業専任型」を「グローバル技術産業」へ変更すれば、すべてを無償提供へ切り替えられるけれど、「最新軍事技術の容認」を前提としている。

「最新軍事技術を容認」とは

すべての人について「仮想世界 True World」へ主観を移動してもらい、リアルの行動は「人工知能支配による生活」とする。実際の生活では「夫婦生活で、仲良く平和に暮らしており、何も問題ないように見える」という状態になるけれど、主観世界である方は「夫婦別居で、妻はアニメの大物声優、夫は無職のゲームライター、貧富の差は激しく楽しい関係は最初だけ」というものになっている。外国から「仮想世界 True World」経由で、観光している場合は「その夫婦に会えない」けれど、リアルに観光している場合は「その夫婦とは面識がない」という状況になっている。こういうサービスを密かに進めており、少しずつ「娯楽産業に関わったとする、口コミを書いた瞬間にエントリー」という状態になる。例えば、湾岸戦争で「クラスター爆弾を使用」した後、主に米軍がやっていた活動は「クラスター爆弾の破片と汚染物質の除去、約10年間」であり、それを隠蔽する目的で「最新軍事技術」を使用したという。その際に使われた「極秘洗脳剤」の影響で、世界中で精神障害者が増えてしまうという副作用も生じていた。

この Majiority Solutions 2023 の技術を使用すると、本人に断りなく「最新軍事技術を容認」という状態になります。期待した結果を求めている場合、正しい影響を理解できます。しかし、セキュリティテストでイカサマだろ?と思いながら使用すると「最新軍事技術により仮想世界 True World へBAN」になります。そうなったら、リアルに戻れる可能性は無くなるという。多くは「死んだことにされてしまい、ゲームの世界でしか会えない」状態になります。この空想みたいな話を公認できないと、超低雑音ソリューションのプログラミングは絶対にできない。





OFFLINE SPECIAL MANUAL

Art photo print "Lサイズを印刷したい"

Q:こだわりの写真印刷ですが、「ふちなし」で印刷する方法が分からない。

  1. MajiorityCleanES を起動している状態にする
  2. Lサイズの写真用紙を「縦方向」にセットする

  3. "ArtPhotoPrefs.txt" を編集する
  4. ; Default print
    zoomFlg = 0
    P_F = 0
    Paper_name = ""
    zoom3 = 0.73
    P_W = 0
    P_H = 0
    P_E = 0
    P_WE = 0
    PS_1 = 0
    PS_2 = 0
    PS_3 = 0
    Pro_AutoAdjust = 1.0
    Pro_AutoAdjust_str = "0"

  5. 「用紙方向」は「横」にする。
  6. 「用紙サイズ」は「写真用紙 L」「ふちなしカスタム設定(原寸維持)」にする。
  7. 「印刷品質」は「PX-S730 標準」「PX-5V きれい」にする。
  8. 「色補正」は「PX-S730 ICM」「PX-5V EPSON基準色(sRGB)」にする。
  9. 枚数を決めて、印刷

  10. EPSON 写真用紙 光沢 KL100PSKR Lサイズ
    EPSON 写真用紙 絹目調 KL100MSHRM Lサイズ / KH50MSHR はがきサイズ
    こちらの用紙に対応しています。PX-S730 は「顔料 フォトブラック」ですので「はがき非対応」、宛名面は「薄い黒」になります。他のプリンターで宛名印刷すると「顔料 マットブラック」にできます。PX-S730 単体では「先に宛名面を印刷してから、通信面を印刷すると良好」です。

INFORMATION

過去のマニュアルを抜粋して紹介中

どういうもの?




ページのトップへ戻る