お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#26 2022-11-28 14:10:43

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

ES38 はとても結果として、おりゃさんの職業名は「グランドマスター」でいいんじゃね?
とされてしまい、with に紹介用のプロフィールを書いておけーって、裏司令が飛んできた。
ジェダイの騎士「グランドマスター」という地上最強を意味するが、なにぶん1人活動なので
ファースト・オーダーに潰されるのは時間の問題というジレンマを抱える。

ES38のうち、どういう方法を用いたか、それを抜粋で解説したいと思います。

コード:

  ; / ES38 Special Tuning Step
  ALL_MMX_CLEAR_SHIFTWORD_INC_CL
  BeforeProcedureRegisters_255MEGA
  ; / ES38 Special Tuning End
  ; EMMS

Macro BeforeProcedureRegisters_255MEGA
  MOV_Rax_Rax_Up_Down
  MOVQ mm0, Rax
  XOR_Rax_Rax_255
  MOVQ Rax, mm0
  MOV_Rax_Rax_Up_Down
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 x16
  ;
  PSLLW mm1, mm0 ;1  Left 1bit shift x16
  PSLLW mm2, mm0 ;1  Left 1bit shift x16
  PSLLW mm3, mm0 ;1  Left 1bit shift x16
  PSLLW mm4, mm0 ;1  Left 1bit shift x16
  PSLLW mm5, mm0 ;1  Left 1bit shift x16
  PSLLW mm6, mm0 ;1  Left 1bit shift x16
  PSLLW mm7, mm0 ;1  Left 1bit shift x16
 ; MMレジスタのクリアです。最後に EMMS が必要です。
 ; PXOR ではジッターレスにできない。
EndMacro

Macro MOV_Rax_Rax_Up_Down
  MOV al, al
  MOV ah, ah
  MOV ax, ax ; UP
  MOV Rax, Rax
  MOV ax, ax ; DOWN
  MOV ah, ah
  MOV al, al
 ; CPUレジスタは論理的に書かれており、RISCで実行される時、
 ; 物理レジスタは al ah ax Eax Rax と5つ存在すると仮定して
 ; CALL引数で指定する前に、論理レジスタ状態を物理へ更新
EndMacro

Macro XOR_Rcx_Rcx
  SHL cl, 1
  SHL cl, 1
  SHL cl, 1
  SHL cl, 1
  SHL cl, 1
  SHL cl, 1
  SHL cl, 1
  SHL cl, 1
 ; cl を初期化する
  INC cl
  INC cl
  INC cl
  DEC cl
  DEC cl
  DEC cl
 ; cl を INC DEC で増減して最高255 FF 1111 1111 を作る
  SHL ch, 1
  SHL ch, 1
  SHL ch, 1
  SHL ch, 1
  SHL ch, 1
  SHL ch, 1
  SHL ch, 1
  SHL ch, 1
 ; 同様に 上位の ch に対して
  INC ch
  INC ch
  INC ch
  DEC ch
  DEC ch
  DEC ch
 ; MOVZX はゼロ拡張になるけれど、低ジッターを実現
  MOVZX cx, cl
  MOVZX Rcx, cl
  MOVZX cx, cl
  ;
  MOV cl, ch
  INC cl
  INC cl
  INC cl
  DEC cl
  DEC cl
  DEC cl
  MOVZX cx, cl
  MOVZX Rcx, cl
  MOVZX cx, cl
  ;
  NOP [Rip]
  NOP [Rip]
  BSWAP Rcx
  NOP [Rip]
  NOP [Rip]
  ; [Rip] は次の命令アドレスを示す。次の実行命令アドレスをキャッシュする
  ; 正しくは NOP QWORD [Rip] となる。メモリ空間が QWORD より大きいなら変更
  INC cl
  INC cl
  INC cl
  DEC cl
  DEC cl
  DEC cl
  MOVZX cx, cl
  MOVZX Rcx, cl
  MOVZX cx, cl
EndMacro

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

これをどこへ配置するとよいか?
レジスタの内容を書き換えない仕様になっていますので、
Functions の最初と最後にセットしておくと信頼性の改善になる
これを冗長で書くと、コード行数は2000万行ぐらいになるけれど
Intel Core では100万行の実行に 0.01 秒未満になってしまうので、
あまり短くする必要はない。短くするなら CALL RET で最適化

コード:

AsioProc dac_buffer, length

  ; / ES38 Special Tuning Step
  ALL_MMX_CLEAR_SHIFTWORD_INC_CL
  BeforeProcedureRegisters_255MEGA
  ; / ES38 Special Tuning End
  EMMS

  CopyMemory(MusicBuffer, dac_buffer, length)

  ; / ES38 Special Tuning Step
  ALL_MMX_CLEAR_SHIFTWORD_INC_CL
  BeforeProcedureRegisters_255MEGA
  ; / ES38 Special Tuning End
  EMMS

return length

こんな感じで書いてみたら、Bug head Nontallion 13.90 は強烈な音へ
この処理コードは Intel CPU なら全般的に、どのOSでも実行可能

推測で言うと、Intel CPU は命令解読処理の特殊なケースである、
ARM CPU とも言えてしまうので、この命令処理を ARM CPU に置換すると
同様に良くなる可能性はあります。

根拠として数値計算処理の多くは、左シフト命令を使って
デジタル出力データを作って計測を繰り返した可能性を考えており
そういう計算処理に最適化したので、XOR ではジッター傾向になる。

オフライン

 

#27 2022-11-29 07:43:00

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

前の投稿について、簡単な説明を求められました。

今まではレジスタの初期化をしなくても、画質や音質に影響する劣化は起きない、
とされてきました。それはWINAMPなどを聞く時に本格的なオーディオで聞いて
いれば、Intel Pentium 2 3 までは「確かにその通り」
でも、CISC設計を止めて、RISC設計にシフトしていくと、常識は通用しない。

例えば、音の悪いという条件は、地上最強の音質を達成した研究成果として言えば、

1.円周率精度を産業界が基準を決めていない
教科書は PI = 3.14159 までしか書いていない。高学歴という人たちは、
どうしてなのか、精度を上げろという仕事の時、PI はそのまま、演算精度を上げた?
それが ADコンバーター や DAコンバーター の設計へ影響するだけでなく、
音楽コンクールの審査にも影響して、世界中で決まらない音の基準により、
ピアノの調律基準もバラバラになっている状況。
Bug head では 円周率精度を 倍精度で定数セットしていると宣言してやっていたが、
演算結果は追試をした人達によって「ごまかしている」とされて、倍精度ではない!
倍精度の定数セット、レジスタを調べてみると、定数の倍精度セットは単精度になってる。
数字のセットは、R8 の 64ビットレジスタに対して INC SHL によって円周率をセット
それをSSE2 xmmレジスタへコピーして取り扱える倍精度の変数へ円周率をセット
演算してみた後、4倍精度演算 BINARY-128 の件を確かめるために、
2倍精度演算で仮数100ビット演算すると、音へ大きく影響した。

Bug head では円周率精度 49ビットとしているけれど、正しくは 52ビットあり、
仮数 53ビット目について正しくセットしておらず、フリーソフトの領分を守っている。
しかし、リサンプル処理の演算テーブル計算では、104ビットの円周率精度で処理、
本格的なプロ用の波形編集ソフトを超えるリサンプル処理を実現している。
多くのレーザー加工システムでは Z80 プロセッサーを使用しており、
それを考えてみると、単精度の円周率精度でやっている可能性はあって、
この円周率精度を仮数100ビットの基準でレーザー制御を行えば、加工トラブルは改善

この件は、以下に示すリサンプル処理のタップ数が多めになっていても、
円周率精度のビット数が不足していれば、結果としてタップ数の不足と同じ結果を招く。

2.波形のリサンプル処理は、タップ数で高域通過フィルターになる

PCMの場合、10Hzを再現する場合、44100Hz PCM ならば、
少なくとも 4410 samples の波形データがなければ再現できない。
それなのに、、、
オーディオメーカーって、リサンプル 16 samples で、
30Hz の音を再現できます!

どうやれば、それができる?

簡単に言えば、リサンプル処理という方法は、音の波形を「みじん切り」
44.1kHz PCM で 16 samples なら、1379Hz 以上は正しいけれど、
1379Hz 未満は「みじん切り」状態になっている。

これの復元には「オーディオのバッファ回路」が必要になるけれど、
どれぐらいが必要なのか?
世界中で、基準がバラバラで、技術者の世代交代するほど、
最終的な結末として「オーディオのバッファ回路は、不要です!」
それで起きたのは?

日本のアニソン、
テレビは 1379Hz 未満の音を鳴らせないから、これでいいよ。
その結果、
スマホでも「オーディオのバッファ回路、不要」
低音ブースト機能を使って、聞いたりすれば、音圧は鼓膜破壊レベル
「スマホ難聴になる」

しかし、これは音量制限すればいいんじゃねと WHO は言う。
なぜなら、WHOの検討委員の国では「アニソンを聞いていない」かな?
KORG NAUTILUS 最新のシンセサイザーで音を作って確認すると、
リサンプル録音では 512点 リサンプルにより、録音されていた。
これは当然、最も低い音は「みじん切り」になっている。

「みじん切り」を解決する方法として、
1024点 リサンプル処理を行うと、復元できる。
これが Bug head の研究成果ですが、色々な方法で、方法はある。

DACチップ・バッファ回路などで、並列処理をして実質的な低音復元
AKM AK4497EQ などでは、フィルター改善により低音復元
独自のFPGAフィルターによって、低音復元
円周率精度を改善するフェムトクロックによって、低音復元

このように低音復元はできているけれど、本来の音は再現できない。

よくレコードが最近になって流行っているというけれど、
「アナログっぽい音がいい」・・・激安のレコード環境のおと
高級のレコード環境になると、「CDと変わらないおと」
これも、Bug head では、アナログとは?
円周率精度を1秒間に数回の周期で劣化させたら、レコードかな?
それで、
Bug head Elementary [Kogane] というモード、
プロフェッショナル用途に、Bug head Re-sampler [0 skip Junk PI]
音楽ファイルを [0 skip Junk PI] 128 samples , 200Hz未満は断片化
CD-R へ焼いて、カーオーディオで鳴らすと「ハイエンドオーディオ」

3.パソコンのどこに劣化原因があるか?

書きたくない。書くと、日本海から弾道ミサイルの発射実験を繰り返される。
国民全体が「だれだ、ばかやろう」という状況になる。

ES38の科学的根拠、書こうとするとパソコンは動かない状態になる。
オフラインの iMac は WIFI も LAN も未使用でも、「やめろ」と聞こえた瞬間に、
ポーン、と再起動、しかも起動処理でフリーズ
Apple Japan へ修理に出すと、「異常ありませんよ」といわれ、帰ってくる。
それでしばらく使えるけれど、科学的根拠を書き始めると、
iMac が発熱暴走して、使用不能へ
Apple Japan へ修理に出すと、「電源ユニット以外、すべて故障してますよ」

ほとんどの技術者は書ける話でも、この圧力に対抗するには、どうすればいいか?
匿名掲示板では、「ガクガクブルブル」という状態になるけれど、それ以上にひどい。

無理して解説しようとすれば、ウソのフェイクニュースをテレビを通じて
放送されたり、めちゃくちゃな状況に陥る。

解説したいなら、100分割して、100話を見て考えたら理解できる内容へ

オフライン

 

#28 2022-12-03 19:15:09

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

ES38=ES39 と思っていいです。少し違うところは CALL DWORD ではなく
CALL QWORD にしたこと。これはやっていいのか、分からない。
それでも品質の改善にはなったと思います。

Linuxでの効果はどうか?
実機のハードウェアとして、候補になったPCは売り切れている。

CPUのある製品があるほど、テクノロジー犯罪は当たりやすくなるので、
あまり増やしたくない。

よくニオイが気になる場合、Panasonicエオリアのエアコンについて、
電源ブレーカーを落とすと、急に臭わない。外国製造のモデルは注意みたい。
最近は低濃度オゾンという原理よりも、超音波式加湿器で、水道水をタンクに入れ、
数時間の塩素臭を抜いたものを、加湿に使っている方が様々な症状は治りやすい。
同様に加湿器にもCPUが使われており、激安品でも用心して電源の根本を遮断。

他にも SONY Bravia では NHK データ通信が改ざんされており要注意、
天気予報が最初は狙われて、台風通過で大雨に注意という警報が出ていると、
他の民放では快晴になっており、外に出ると快晴で何も起きない。
次はNHKデータ通信のニュースで改ざんされていて、指摘しないでいると、
放送データに介入されており、「要は見るな」って事かな。
どうしても見たければ、カーナビのワンセグで見れば、NHKの放送は?なぞなぞ?

民放では思考追従型の放送が行われて、興味があると分析されると、
そのニュースを深堀りして取り上げていくけれど、ニュースキャスターの女性は、
なぜか原稿を見ている片目と、真っ直ぐを見ている片目の、同時スキルが気持ち悪い。
なんですか、これ。
Andoroidは完成しているということでしょうか。

それでも、もう少し改善していきたい。それで ES39 を試みています。

コード:

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

脅迫されている状況は、小学生の頃から続いており、
緑化委員をクラスでやるときも、「無理やりに挙手した感覚」があって、
サマージャンボリーの平湯温泉に行った時にも、
閉会式の直前になって「小学生代表で閉会式の代表スピーチをやってほしい」
・・・え・・・
そんなことを言われても・・・
引率の先生に「それぐらい小学4年ならできて当たり前だぞ!」と叱られる。
なんで?

小学校で何も訓練しないで、いきなりできるの?
そういうこともあり、
BLOGやREVIEWで自己主張する訓練をひたすら続けてきた。
それをやっていると、
映画やアニメで「エンドロールが流れるとき」、その名前の陰に「300時間の仕事」がある。
ようやく大変さが理解できれば、
BLOGで「定額制のネット動画配信サービスは実現できないの?」と言えば、
コンテンツ料金の未払い状態は解消されてきた。

これが偉そうと言われてもな。
学校のせいではない。

オフライン

 

#29 2023-06-30 14:48:37

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

AlderLake optimized MajiorityCleanES78
MCES78Ubuntu2204.tar.gz.003

コード:

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
y2PtecKy9PXS9WxhwXf9YCHtOcOywOWx9sxhWfp66Xr+sOC7xrCQ9ixiWeDyWHsusSx9vQw9o7Wq
75CrFXHPbK2SvbecouwZrpX8N2PRnularevfxdAzXqv6DtlaEffM1yrZe88pypGBWsl/MxYdmajV
uv5dciMj3PB32XMjMrLDTQe3ZVUjU9z0dr/kRta44R/y4UZkZJCbDm7LqkY2uentfsmNzHLDP1TI
jejIMjcd3J5VjYxz09v9khvZ54Z/qJkb0ZkJ3HRwe1Y1s4Kb3u6X3MwQbvinKnAjOrOFmw5uz6pm
5nDT2/2Sm1nEDf9UF25EZ0Zx08HtWdXMLm56u18rnJkmLfkJPdJa2cw8aSVn7/WsNc1MlJZahqZm
ZkpLvy4rn5kqLfkJfdJa2cxcaSVn7/asNc1MlpZahqZmZktLvy5jzExvnfanBLdOl28GtI4+FtKM
9WZG6+jzIs0ob8a0TvuvJLROl28mtY4+FtKM9WZY6+jzIs0ob+a1TvuvQrVO129Gto4+HtKM9WZq
6+jzIs0obwa3TvuvYrZO129mt44+HtKM9WZ86+jzIs0oKxO0TvuvgrdO1ytDtI4+HtKMtTJH6+jz
Is0oK6O0TvtLUbRO1yvTtI4+HtKMtTJQ6+jzIo2uzKTSBUVUujKXKk/J1btU/UpXZlNpZKDSlflU
SKm5GF26MqNKFxRT6cqcqhwlV+9U9StdmVWlkYFKV+ZVIaXmYnTpysyKYnRJU0XRlckVJR91C8rY
6Mr8ipKL+gtlbPSXKRQljS7proyN/jKLovxl7+x1nAaiKCw6UhlKKoREAR2UdImEJSPhmjegJCVd
WjwFT8DLmN8QgWCJBCyKEEhEsMCGf2Wh2XDGQtp1HMcb0szsfOLcudeZwYnszxnn7G6GaQEhViZC
6D/EfIHCFitzIdQslrJBYYuV6RBiekCocaU5VmZEiPkCoYPMF6xMihBL+SHEyrwIHVBMDyhssTI1
QgcV8wUKW6zMjlCzWMoYhS2ZS+MlwfSAwhXTAwpbxRWQKoqiajw9nn+o8ZpC6LCK+QKFrfJ8YY2n
e52N9wvVuNw9QodV9vKYdnafIBSmZC69XxJMDyhcMT2gsFVcAamiKKrG05P5hxqvKYQOq5gvUNgq
zxfWeHpgV7JTPFI8V7zRY28VnxS/FLvR9SzPxldNnphcbTbW5jCbXjXDxAzVZtNs2LYDxomxreq2
7Z4mxraq42xwNTaD1BQpzqSRqlFqihRn0kTVJDVFijNppmqWmiJpKxtoiBkk2odRqc2RhphRon0Y
ldmobQdMEmNb1W3bPUuMbduZdpFrT3lqihRn0lDVMDVFijNprGqcmiLFmTRVNU1NkbQ1N5cW+di/
fLT8eJHj6MrsZ0dfo/Uzjno7tnpqq6+2emmrD7Z6o0pNR5uq1NHREFs9tdWOrfq2mnEa9k6DPeyV
u51+blND9+WbF0+fu7Sz2ZlupDdytar3XlV8VFUrT1tF0tal6NrWek+oa2hr74bs5JLht9U2dev1
fOxE3TPr7qX30b4DDFJFUVy+edkelled6bP0xkCt6j1g4qOqWoO0VSRt2Zex/kvYd1iORNdvjd69
2in/67w+slDOjHtzdqFcGadDuvg0KFfO0qLu3dv7Vz2NruQ/ohc2Hio2FJuKt4otxTfF7yS69if6
3l9J+j+3o+8PV9TGitpcUW9X1NaK+raifq8kvUccmXvv1WHu15/uvk2N3b2v5W+J1NO0FMcVJxSn
FGcV5xUXqqOj7mbUfRR1/0Tdl1H3R9R9H3W37TAgDRjS0v2CDvP9+tN936bG7t6kvHbOMkiro+sg
nQBpsJBW7nJ1oO/Wn/C7NjV29z6LhFGisLkB0tLYOkQ/g2i4iM5/MrMHej0eEt2i7yeiAdHS2DpE
PzY+J4geVkQrH/71KTJf/8N1+eujlkFaHb0QUzsMTAPGdM6SEqZ36jm8Y1NDt/VTy39sugzT6ug6
TD+BacCYzhmlwvRePYf3bGroFlHb5V9NXYZpdXQdpttgGjCmc/a9MH1Qz+EDmxq6RdSX8g+ylmFa
HV2H6RcwDRZTvFIg9QBSvFIgdRxSvFIQdR1RvFIQdRtRvFIw9QJTvFIw9QBTvFIw9QBTvFIwdR5T
vFIg9QBSvFIgdRxSvFIQdR1RvFIQdRtRvFIw9QJTvFIw9QBTvFIw9QBTvFIwdR5TvFIg9QBSvFIg
dRxSvFIQdR1RvFIQdRtRvFIw9QJTvFIw9QBTvFIw9QBTvFIwdR5TvFIg9QBSvFIgdRxSvFIQdR1R
vFIQdRtRvFIw9QJTvFIw9QBTvFIw9QBTvFIwdR5TvFIg9QBSvFIgdRxSvFIQdR1RvFIQdRtRvFIw
9QJTvFIw9QBTvFIw9QBTvFIwdR5TvFIg9QBSvFIgdRxSvFIQdR1RvFIQdRtRvFIw9QJTvFIw9QBT
vFIw9QBTvFIw/cuuHfM2DYRxGA9bMsHIBgNDx46MRCLSRcp9jY6sbFkbD/0EfBlLpUTZIBNVhBjI
UASBLR3T/12HNrVjD1neV37UXu4sn9rU+il1n8Y8U1opSB0gpZWC1DhSWilErROllULUNlFaKUxd
MKWVwtQBU1opTB0wpZXC1DxTWilIHSCllYLUOFJaKUStE6WVQtQ2UVopTF0wpZXC1AFTWilMHTCl
lcLUPFNaKUgdIKWVgtQ4UlopRK0TpZVC1DZRWilMXTCllcLUAVNaKUwdMKWVwtQ8U1opSB0gpZWC
1DhSWilErROllULUNlFaKUxdMKWVwtQBU1opTB0wpZXC1DxTWilIHSCllYLUOFJaKUStE6WVQtQ2
UVopTF0wpZXC1AFTWilMHTD130rHe0wPnZ5cTN6cjm+vh9tv8XyhR61Hs4V+7EUsFqO+VoNFHORJ
R7oOv4/7hnrK+Svcr189O/ZW6sNNum7HfpWnt1iTi/fpsnwfbr/G81KPWj/cCY76Wg3KOMiTjtLT
OP4pPLosvecfP61+Xd/ufwx/9Go/zez7eVL7aWWfLikv6l19Ue+904t6sQ1FetQ6NLykh/mXNLWe
nv5L9XUbNPJC36av8ULjpcZrjRONU4231d31uYF/f3Ub6fqsWIciPWodGm6Pw/xzmlpPT/8mbeug
kRdNSKu765Fye9xlpLMyKS2Dmlih5awMDU0szMs0tZ6e3khCGTTS3IJ0b289UXpYp4ku02/7ZVAP
K7ScLUNDDwv3wav1tAqXulbQSHML0b299URpYV0m+vBndpp0NNaFPv6P67ORKESNvGhCWt1dHxn4
B1i3ma7kcxWLPOlITC8PO7xMU8tpifqTvK2iRl40Ma3urmfKWwm6zXQjn5tY5ElHYnp12OFVmlpO
S9QmedtEjbxoYlrdXc+UN2V1m+lOPnexyJOOxHR+2OE8TS2nJep/8raLGnnRxLS6u54pb3DtMlNa
KUgdIKWVgtQ4UlopRK0TpZVC1DZRWilMXTCllcLUAVNaKUwdMKWVwtQ8U1opSB0gpZWC1DhSWilE
rROllULUNlFaKUxdMKWVwtQBU1opTB0wpZXC1DxTWilIHSCllYLUOFJaKUStE6WVQtQ2UVopTF0w
pZXC1AFTWilMHTCllcLUPFNaKUgdIKWVgtQ4UlopRK0TpZVC1DZRWilMXTCllcLUAVNaKUwdMKWV
wtQ8U1opSB0gpZWC1DhSWilErROllULUNlFaKUxdMKWVwtQBU1opTB0wpZXC1DxTWilI79i3ErA2
iii8CWhDqdlYr3gWtWrqCZ6goqRN6lChoi2CNxRdW61SFSzerSmVFaP1+Py8b/38/LzPegexHLUq
xdrDaksVZSm20FopvVj/N7vZJAWF6vf5gc6G2ffmvTczb978Mzs7CYMApOKsVIB0gINUnJUKiA50
iIqzUgHRgQ1RcVYqYDooYCrOSgVMBwFMxVmpgOkggKk4KxUwHfAwFWelAqSDAKTirFSAdICDVJyV
CogOdIiKs1IB0YENUXFWKmA6KGAqzkoFTAcBTMVZqYDpIICpOCsVMB3wMBVnpQKkgwCk4qxUgHSA
g1SclQqIDnSIirNSAdGBDVFxVipgOihgKs5KBUwHAUzFWamA6SCAqTgrFTAd8DAVZ6UCpIMApOKs
VIB0gINUnJUKiA50iIqzUgHRgQ1RcVYqYDooYCrOSgVMBwFMxVmpgOkggKk4KxUwHfAwFWelAqSD
AKTirFSAdICDVJyVCogOdIiKs1IB0YENUXFWKmA6KGAqzkoFTAcBTMVZqYDpIICpOCsVMB3wMBVn
pQKkgwCk4qxUgHSAg1SclQqIDnSIirNSAdGBDVFxVipgOihgKs5KBUwHAUzFWamA6SCA6eA/K+3f
XiQrmDUyOXPjMm/nwuw76nEHH9ny+B3gEuqzEzhBDnFo/WcNhvcpBj/C9ufmISJ9qOGPhniN+qe1
3KpRkEPZSJzJCvooLEu9nQ3Zd4RwB++vgE4NZashvwNcQig7gRPkyI1/7oJYcP6XC07UbJCAZemv
1oWeS4Ait4d+kxdXK/JUogABp7Um/cykNSb93KTzQHEsMwmpEKkAqb0e8i8gJwoQcfq1Seeb9CuT
LjDpl0RRD1IhUgFSeyPk30BOdKFJl5i00aSLTbrIpN8SRT1IhUgFSO3LIV8OOdFlJl1p0u9MusKk
35v0B6KoB6kQqQCpvRnynyAnusqkLSb90aS/mLTZpD8TRT1IhUgFSO1rIG+DnGirSdtNinMETtea
9FeTriGKepAKkQqQ2jsh/w1youtMutGk603aadINJv2dKOpBKkQqQGrXId8COdFNJtVNutmk3Sbd
atJtRFEPUiFSAR4uBCAfEARuKjhgyOJqLe4zi6uxuM8tbh7ncAOe/AQoPyHKD0hBC0xBy7n6MAdc
GRyQFeaALYMjdBkc8MU5qhk3QIxqxg0ggxYog5ZzCy1uicU1hjmgzeAIbwYHxHGOasYNoKOacQPs
SLuctJxbZnErwxzQZ3CEP4MDAi3uB85RzbgBhlQzbgAitEAitOCAxTAHNBoc4dHggEiLa7a4nzlH
NeMGYFLNuAGa0AKb0HKu1eLaLW61xa21uF8tbg3nqGbcAFWqGTeAFVqgFVpwwKvFbbS49RbXGeaA
W4MDcjlHNeMG8FLNuAG+0AK/0IIDgi1OD3NAscEBx2EOSDY4YJlzuAHNqBk34FnOw6n0cCyie0oK
eIUyCuXkvHrwDrAOBbxCGYVycl4jeBdYlwJeoYxCOTlvOXg3WLcCXqGMQjk5rxl8EtgkBbxCGYVy
ct4a8B6wHgW8QhmFcnJeJ/hksMkKeIUyCuXkPB18KthUBbxCGYVyfjjvh+9+6ghlFOTAIYtcPTIO
8A6FMqQChyxyjci4/NQZypAKHLLILUfG7afuUIZU4JBFrhmZJD91iDKkAocscmuQ8fipS5QhFThk
ketEJtlPnaIMqcAhi5yODDqBblGGVOCQFeMzsMcHE+ui0Hq6EVdPXD1xjcQ1ErecuOXENRPXTNwa
4tYQ10lcJ3E6cfr/rT55eo/v3Xp8y7Hd18fb/eShx4lzj7O9HqcoPd5XK+photYz1KGCRXY5TNTl
TF2OO/TLM8hgDVPpDj6D1DpT6Q4+8q5DxF+Bv0ZwjdkqJ/4K/DWDa85WOfFX4K8TXGe2yglytK91
/9V7C2jdWyv0vuyqtxcsaxAf8RGf/+snZj34y4OR2n79Puxvfd2cWftZP451/uZZWZ8nPiFO+rHA
Xv6qWGDFR3zEZwc+LCXEAp8z78XeS6rB5+BigV89TO1iqm8kaAfRZKY2EE1l/ViHkvbte73StuwT
K+zvInfe7qv6XOS042G0nbDH7zj70ZbftrLvtpJg1P+nVC/H9zhnr5fXVe3gX58H8eJcfgf+xHsc
CHLAYghpPtIipBX4smsVUhvS70h9zgYm25r6YfNjP2z6MUNtv/RlkynbVvXD5qd+2PzcD5uWnj7e
GkKaj7QICfG8dRVSG9LvSDp9x4b0BdK3SCsR4yak1UgbkLpZ3zHos3+sH/1j/egfo/71HYM+xz+z
H+Of2Y/xz8T49xLvKqQvkL5FQjxvbUJajbQBqVuc2OzIiY1/c98vFFoSjLYX0jHjei++U6Lb13Rb
QreVdGuhWzvdNtJN/5tvVb0+Sr3dIW9jUz/vsb8CULzfQLjjJFt+L5RJnLj/6b27fodG8W9tiIq7
5OI6ubiB/3amSS7W5OIOWl2xinb1AbGs4E4TJ0hS/38C0sebfnaiI/ZHvH227xuZ0f/Ws+VqB3pV
1/evTLiJwY/gc9LM858dhHn+fZzc9wYy5i+qIld0RZvlvneWMX9RFbmjK9oi973ljPnjK41cvFBu
XxKps8UdxbuieKv39MDtO5BNfxHIpGi3t8p973xj/qIq8kRXtE3ue0sc80e/GuFfnsp9741j/via
jB+XyO3tUQFKjuI9UXxSdCTCvFy8opeYQ/xtL+GHeEGPkehR4W+9+ALx6l7cgnjV4Pawj9/spe7Q
b/bEuiDWBbEu9GPWDXwP/9Y/b/ayoeoONTZ1f97Y/Pdp9+cM+1z2TVP3//S2I+EWv8cdNOd+2//j
8o78Pvcvytqg37v3/4CWp7dOTBBfu4mP+PyfP/3/xkj8ruGeYN/HkNXL+gy5+IiP+PxXP+bvGPC/
USN8eFWWD9jMipZU6SPwYwY3m/LZN9mTXKyq69BR+FlDC3uIqd1MjR/JpoTcW3Wd2RrAZYyWJfqN
g0P7ZMoKHZW5qbJZEi5eXy6qcrHg1JHDmNqufXDFCh30Exu02i1UoLY2Y69JqGGt9omh02pAUY/r
ompefgIqcLDaedwM6vdIXRtyULbSzcqXl+wdbo8Fb3Jpe1GtlftCUdoOu8kRu125fuPkKD3qm264
7bjAaA8/4aiO9t+b652YWfs5tZ7L1G1Zaot2Ajwgmk4lgycosPx0KHVoGATa9OESGrzFpec6yMgB
Y/wftgvlMytvkVi5XuKm3jbESciEShKRyYIbUrwkkb0G97QA6rgoJeS90HtRtaIcHePPxNwJ2sFo
yHSKqfOo2NM8liGX1dvSoW0ZRjdLUlnala7S9WR2J2qvHOMpD926O/bqn/JhOHEKZBM85Y23tV9w
kffC6kh7VCIfJbgY9lY81A0YFnULRiY/0xyZWkCAl0FfdjcGlpz5JJmaCBidlWfdxy0KXFnBS0e6
4DpT83mU3rx8hc5BQZlvKSNJLiseLHjzSAdTW7PUX1hwD6Vb17VdISb1eXw00TbFcgRT/dyBZ1ED
l2Jg8+E9xZFOB7hPHGz32iWpbZE8YkbY52koQtYpoYg9xx8G3YBg5f6XXiVJFNADeTka5jFJ1G4C
q7zJxWzteoMJrF9Y+ZoSB6ErYWeYGehS5vD4IXpbK9MTUBUGcpxCmK+mSoaPC8YfbAyAhefK9Nap
CF88HtaV6YvBMrUG5lo1799RiyChluZZ/vjd3B/gD/6sJH+uIovSn8OVR8NpjjGealem+q13YqCp
KzcQcmBcf6PuZnTWDsmqPGQKmpD9XayoPbu8uWR8ZXoOBFn42ls9ajy5pl5GHVjL1FrtiXjyMjns
5Txtf/JSXZqVoJVmUwyy1CYrttxfTJ6HMZgsmL75StQVRF0Usz14RS0QoSJtCUIER5qQbZthrFOf
eFAYpRZRqcMAmyw1yUDSZBeNz33jgjcfIunfxDZqxJ8F0h9AManUXj2H+lmZfivVciDaJvMe8cGk
Sl9VKFVKiOsQc52kcikh7RVd52Vi1gsWPLfDmORpS0oT2/aTR2RILG1zyW6s8nTIS39LCVn2+JlY
1Gwz/KO6s4JjO1jl2I6stCElB7PKc7H62mlc45ma48hCqN+KM1AV9kcdQuZksorVZvB5SGZ3hc14
vA3/+Lwt6tZexwSgAnuwyt1YeWPJUKaOdhCvYl7GsUDIdUG12f9TMWdquYvR0eHzw/AXG+YQbFI6
U3TtxUuNQEbmD4JxtPYGXAEmCCdji4xhHh9PiN2p9lgiqZqMgoQMX3g1dcKubUWP+Bj+oMkZIBNS
dPW3lM5aCSCALAQ30GoxJebCLSeJVbLkyoxUeddx6Ne4ZHV0akpIUUfvKe9ql3c9Jykwadjv2ga0
hMLJKKy651JVF1Rj3Kz+fWInf241hzv2+caxoGsLTWWv44letqYAtjou6uoDaA+yL6NlMwzZwmjZ
VO5XDY+trp2GXO/tYx69sCvCtjO52TKJP5UeIAFf3xdDwMtZ/hiP3/GT/qw+7bpJPWdDZD38lq8R
6mJuOplM+dqb9sOt+7Dg8W4W3N1j4LJmZ8CvxsbSFpduCC+CPeIDeOzFa3IWxvjTA24ZEfwGah3a
MRQkmpRMdQOujgvQv2j9a6iup563d8wEVnlGFzqByYpHRDsCOM2hHWBWmGAVSAkZOMCUjeyPUP6w
CVSIl7/eoSlo6M/K/UV/qQptnwJrtvh672+5fkNCzc5HbVxJkVQ3e+d+uWDBguAZyTW+kRoOzV5r
YFWrDw4Ou89WP6qO4WuvlgrfyJaAnnD9wcoctZEFWm1MbSC7QCiZm556n00f1VVhK28sXZnS2DYE
4yq/G79rRfyeLPCZbVaodF2P/Y+xByPPj8fDS7sM0/MKzPZPW7cRw4L5Nn9KvT8lpC7LUn/UHgS6
zruYFSHA22jFO9CA4Qh0Fa/dmeo8DoUsVYs8lwO1Nk2/BHsaKBHJr66QUJFXbVWXXYECIbMp7VRU
xB7y1vjwPMxHBecboKJqYuarVn3xn+IX/fmY/PFOzAoeMs2Jp7D6u9W9YdS9GhT2BSfbfGorvOA9
szz4AMuYujZYpuMh3I3p5lWXGWZRXj4Im4hjPfZv53r59IMf5MHaXSQptvkzePPT0Py6Hs2fgqoR
WIK4Tde+hCUcgGGMAwiiNtz0AUG6gLzwXhy1f1O3eSf61QW5Weo8zJZvqPXAJl2eRXHxztxGdZRc
6seu4SxsHeRZ12P18+Ph700JldeXnEJ4eW83ZeZmXZrurMiVvIFfbSwwzxYIgVTbAbiSvWFe+h21
H/O8x3yIkUlqPQueeiZvpJDaDny+U3bRovFB3x54ZG65rsEb2LoTfgWoam1j+PzITAvJsw+zS3Bg
fVaQ2ZTA5tvkO+gspwKL+xdZah1TP2OjVrO0lfJsne8Rxu2UmTZfvns9MvCaBc+0q4uVmb9IW5WZ
3dLS0ldY2tfy7EU20l5nV9cpM1eRapP0vVw+HusBb/EdqGf+qMfh/gvd0c14hu5W/Tj0/WGoOGF9
8E0JTyB1fdXq4YH5HRU5elZa6NrhrVejBsIlr6UQGXU9lftmdeDH0wPzZ8Au0LrzDatax5p2M7v1
IZI03Q0z9YuU+qrVOwfmhypc6Ffbq6Tn8vcBO6lq9bDA/CZDdX9kv6gu0eqgRmhaj+s2HkhqQyTe
CKocmE4KdSlTv2tLonHhkVmoBDbdNv1yRoOorsfWRZ79GlcMZcFr7V61TvHObJK24t6FqH3N0rrl
wN1GgOPl986xKzN/pLhtlr4vvZGp86keHhrjOUBZ6unGtud5Htihfrogt6O5tnu4H4Yd8ryHbfOV
OeX18qy6bboe9OKJNnGMHU9uXl6ZeYpkCzRIhDeW9k1pe+tzsFLmjFra+igYKx6jtNbKqPxf4780
kcJXf/4KHeELT4NcmgaT0X/aZhcB/hfSTMhL6Qyerfux2urcH6yfx/mCY22K6iuV1A5aqdM+Kzne
m1ZV2kxj4FND4cWA27MiAH/3RA78hwAuemXYF+ODmR4xj5o32UULMCmyJfT1uuVMbbWWtHfjWPA6
rNmyuhDZ9E9xu/6D9JWkuoPwH2ga4X2frzYf4E74YKM2ZgHyd73As7/h0XztiNaPkCF8BVpOr2ra
OaFL3Thqpc+2pGRvlvbd9bvL756CQNu86iZvYFXIO2PTjJLF6bqOIrMDKAjWJU0/gQWvsWemdVyf
cxSmAkamKl6tUQ7R46rWDlV2kb5XVG+3MvMraamiXrMV1cp3nA7Qs1GtiK23ShvhtdV5F3a1bgM4
I+slS1t/w75RNsEjHV5VI7tvyW4OOmCuC3XXv62oNrRqb3smUj69XQLM9g40yd737TwKdG/9HYVR
DvqNPFLlyAeahnjfj+M2dG9dCNkcjIs863JwCLwcuJjaNMc7keKu1s2ql9V7JAB6Ew/99JmbjNjf
b8TeCP3cSOix2tx8jhl2d1tBYBWPd526btQyn60K+wIM8HDUTvFWvw60hDJm6DNKlvJoX59iRHo4
Ftt4cuj2UkTQwNPCbYhLawhYR57HrawNzcDS3rbIigfc5AFxIyBGPObyeBQY9ZB+I+l3QzAQC9Lz
WGRAn6lqmYj7Rdv4+PScT9giFK0w3gVC2p6TJOxer86jff48VpnhCmzRS+NY0dLRweMn4yXVgfdT
gPpnVvQVC+YADgtvmcjS6Y3/tv3wolrEVL+LJgILxo8IzwTuXzfZzKWbnNXBijqZWurAbBuq/cjb
8iPMtW0fK1Z/a6QMrCSLo/2N9XH+uSgHB439cU/9S1xvvmtxfdt3kf73tL+R27tYXA6vEluv6oh5
VP21sMcOSnsE9pofOt5Cz/ruPDd6f5iTh5feJy+k96XTNRmqezJc+Wgg5rztUzrw196A9lN+5I/d
wHPI0Et6rd9BIh4oowmISEJNFSOEve3PDcNcWDyeS51LpRongaV3uPNBMTh/Go8ryC6Q4bJH+mfo
JqhboD6T1EVbmFqGkKXi6O2CHu9PSuB0qeQAqPg+MWRXAqlSaSfDieTCrsi+ojrSNjUkiUtc4hLX
wLpskl0aQ3TfuFM+wq7gRPDunBU6xFIXXn+XQubBa/KvoA/9ouseyDXQDFBPi64XgD4EWgH6IuhT
oKmari8AnQsaHwd5q67ngHaBloFWrNb110HL2nR9K+lBd8fJ21LQZFD3r9jegJaBTgZ9EbQCtA70
MVANdC5o6hpdX0p60A2kBx22E/SgHlC2Fn6CloHmgz4EOg10LmgFqKMdfoCmgtaB5oM2kz2otDPs
QEeCdoEyUE8H+gv6ImgZaP46Xf8etAx0A9mBHjkE+fXwm+jvut4AWtel60kO5DehPOhDoGWgc0Hn
OKAHfdGB8qAhUPdm9As0H7QD9EXQYQmID6gnAXagGaCeLagPlK7dw+N54zmSrcxl23fYEMccjJkL
sv2Q3HgxP5QMfENcJEtGOh4ydJdfI0mF5Bq/QnfRFszpGut0j5MTpztmSKfvc8rhx408KNzOVKTJ
zbp+BgnGO5PKnA7exiykpyDPILnf6Zpt9zmTSp0uL/RU/3NIoWaMgaX3Ot2BOBjZi5xuLzek+hcg
OX7WdUcUTj1IzcRAXk50rNMVtI92uu+KY86k2fH2q51un9M1Gk1Jx1M/0PdLYXuLaXsXtTU7zutM
CsTbzx+K5rjxmYmZYRZ4kZBQ7mWUWxPbho/a8Do9gZ3OcM6w2Z8Z6vSgKlQ5mpf1JV7q9IyJEvD+
PoC6cjBXxkfFw+jvreHucl9p3pXBbpbl6zjL13MsV8cl2nNifd2Acg0ot9by9QzLV5/ha7J9Alz1
RXnGEu2Xxkr4mNJ8LmkB3iVcE52usyB3S8Ag5HdB7iH5hU7XmZAbOIA9dE9BR33gF8ca7O3ANOTn
kYA5XVOGOh1nJBZQSa5/GXqHhrluxiVgvwI6fnG80trhhn44l4BHaoJsJGT7m3VO5CWM+rZC54HO
Z8X5KrQ4NpGXJZs49AN64BYnW9SePR/FeR9SoXsZur3Meseb/ab16m3IYQN5bL+nQkdrW56ps48H
bgn//NVE148x5YoZ28cgd7fGtMHlb0Oe1Mr7yeWZHDfoP+QeyMfE4macM+mqMG54+Q2wy4HdgWSX
zctz34fFY35CPsKK73nkPdd5oJvaiy4JyQfdNOhOId040l2GOHoTxzgd/mrThtbju2BznGVzUYzN
7jT+tCZH+ZXN/cX8hzxEz4AovBQQ/iH34Jnwcuyc81pzzudMPsuZmunMyHWmep3JlxizzxeZfROc
qeOcGfnOVFj6Yqem6VPSTsDr6thYE25TIb8Z8lKrbWatKWN425hDZ8dWmQpTeo58vjqyvtxN5YJx
o51Jd8WzcLlz+UQbHXEFaxLhH2UdeNZtBG6NNv09520+dTJm3o7tsejEXWqDbEyMTDKuLOr3zpif
eBaOjfuLdi6OXR8wUS/psWKg+KnkO9XXgWeVFKkvZpyoviyU9keVNqahMf4o71rHscfH4FyOC4w/
5G7IDzDluaZ8EeRJkIOELy7/1bQ/xLQHgrk8Hs/aZMiBUy7P43LMf8hTId/XlJ9jzpPjhwB/66Ln
2S3WPMmB7gHoPDyYpLvAwtLUIcD3du3w5x/kr0M+kpehuZEXs649B30I+iMkcYlLXOL6966mpAxO
XzepDYmurSYzDIlfLkO/CxLf8n1YyOneZl77wcjva+YdJt3HpB2mfr/t9PEmfSoug1MceBcTXRpv
5HcK6x1GPrzmd5n6oWb+SLtBEyN7Q37tIcVecVbHDX/sEUXM+9IQk+4VNk/MiJHnIB/djzkmTdiu
fRzE8/4kmfY68tFx7jDzC4ZmSAPp6sJ49XadaOJgrEnPNanCKY7+TTrbpA+a9AWTvmvSGpMuNukv
Ju0E5eO8q0H3NOmhoLx9UN4+KG/fpAoobx+Utw/K2wfl7YPy9k1aA8rbB+Xtm7QTlLc/3GwflLcP
2tul4+KMjafINce4pkhXS9dJU7C/uwz75BJpMqc+fM6Rjre4E8BdJV2GVCxdK92AXBEsp0jT6KUL
XCFquVK6DnKFLECvhfX10hTcp5McFiW4j5NysMPzSudZlqWoE5sYqQx6lOGtTABfKE1C6alIN0JC
NZ4kpeKeC3mpdDUsSpE7Fp+jcSaAHbHVcibXXoaySTghykEJ9AJ56uXl0KEUSqQgHWVw6J2EEsVR
/UdppCLuUzHKTAFv9ElBAoWsCHcp3AIoWudlz8H9cpS4DqVhC5rUW4+sNq+ChkcfumIqFfEDcviM
hNK8P1dwnteLHMYO9xy0fTT3pBh1TeNtGPqT8SF9KfdsNOpADHhPTuRROxacRxoreeFfNvgUSE/i
9+OkNGmUMbbUE+im8UhcjnshWsH487jw+HDPuMdREb82NgoW5KJxybG5AxcvP0Cvq9HH4+g8AtGZ
gphIGKtpxsTDJyODqFvyHIsZy0+FYIk0A4nk/IJu+yskLnGJS1ziEpe4xCUucYlLXH+0cyavTwNR
HI+7RFzAg4KXUUQUfo3pNM0v9eS+71XcDjJpJu1om5QkVSt69uJBTx7EkxfBf0DBQ8SLF1HBg+BB
BQ8KHsSDeHF5WYxNXJrUuOcD09dZvu+9yUzT5jAt+H1wOTFyFPfH4HLix926o8LlQV4+3VEZzVum
/PMK+uvzT+kkzeCUTlK6SpO/66Z1kl6SxklKP8HIlPNKGdrNzh+Vf0ph7k7+/PxHc5417gghUjoZ
zXn6iCP7T+lnZP9Dc/4F+Y/sn8uCOxJcFtzUcBlxR4XLgpsOLiPuD8BlwU0Hlw43D9J4zhSR435F
2pnyz3T/+TVp/8r83Z/Jb88/5bCh8rwiZnI11NtQfnb+P+htKLnnn2kJUg5L6SGNqzTD0vgcOmAo
3A+Tr3M3C1weuG6eUdwscHngpiMXJwUFBQUFBQUFBQUFBQUFP/L4WfDv8wHgBLtlO5ZDVE5ghkOt
LicYpkOFptETupbZpZbTH2hSe6ytlZgWNq1avankkCbn97WI3eIErW/Y/Y5vwXHQc4xaNjONWOUw
9Fm0TbyB4btu2/GyYPDq0BPwqkMF+kyNOIQTaOuwbpEOPdzSrM+1QHGYWBbpB4rwveeYdFgDopqO
/xIECJypts3lxAwoEwbOU86ftDK00f9/xJiQqM+FMm1Ar4A+sEEdJcZPT9SXJPT7QR/Y6H9sYkxO
1GsJ/SnQ+/ZT/CH6LVCmePr4eVaw4XzCCU/7xvnXDVDefPhgevro/Ktvo+v3NX3ErnANJsbPx4IN
6lcmfdZNGNDPD+0BKJMG85++MrTR+drvrh+B8iHKPzrPCjaob0/kPzFhDSjvI310XhZsUBe5r+Yf
cTq8lhPj53PBBvVzsfhfzv9MqF8dP+8LNmyY9Fk//yv682FeU+PnpcEGZsGQ/XM2oUegD2zoJnH9
5yTshWR8tDK2cQ9dXPg1BxGXIn3sfDfYQDdzSP6XE59/ziWhDfRTh+ivJvTTQe/bUH9jwvf11xP6
2zdJaAP9tWnfv3/cgjLLX+b4efbndxZ+dfz0hL0LZfaA/hXofZtS/yi8RpNi56/BhvonE76qi5bx
mTf/Af3DxySwdwP90iHxX8T1EDBcv3uBfv6E7+tfJ/Tzn5LA3g/0D6rfv/5vvbbB+PNU37ycuujL
G86X9+ModpzP+ndfjC/4HtvWrKuPK3vVnuH0MBal5RYlWocKDvwkyQsRkGUJrE/S4qpY5cqSJI1L
sihjmRPLWBLh0LzI/QJ6tkMshLj/lHUnHIt2aB1+FLM2O0ktNIbWmN2+xZotB2GxXCthEVfG0EZm
mf3eUYYOmEdNh6ClyLT6xAMt47eyYxQxA23p9c2Sao6heosZGjVKjRZUdhwlJ8lRNoZWsUYLzGbS
JYaAYMVLlfK4xK8rbSOsvQIZVmVlh5nCkS7P14/22+QoRWt27kVrqc2ahpeMjEpoN+nCT/etX3Ri
iedtwzxu+f0rP79dsRgJy7+Y57iCeNDDZC2KdtMms2GojT4P4L+8NKAJPikIY0GUeN200CZ4kGgn
0yz56expEeOojbxRFj3G6HEbEQdt3rl11QGvsdfh15idLmuD5xUr0M6eRVcTmzWQLIgYLV2/qr4N
lYXxslCpLQNfzEbwjNKExwDUMA3HMtvIaQXXwArT5x3Tb6Nt2oABBmtAl04tajQozwybadTvX7t2
t+S9VFGHdmAZESxL1xN3CIxom7bjD9NYkzmkjY4wB5x767tzjcDzGu1SQ/MCQxM89vQaDjzi2PwJ
WYLFOVHarZR2290xtG3bftgI9XV4DO1eu3vV9rVQ21bfx/OLvrIYi/j6poPrEB7DFTwmSgpS+w61
+frGVbiEqzLCRKlgpVqhjaqo0JpMRarrdBxjpaZDH4b7iCbTqiZXaUVtjFfLelkZrxFFwhVNUaoi
7ChiaP3VFtOayV0lwq7aSOzjtJ1cyGrGLWWYwUx/3tYSS15axdYKt1a0pb6zGMO2Vk3URfjmU4lc
k8tKWdKxXlNhU6lqVVV1raJICpZ1+JaiqlhWKg0C7bhMdIxpWVTKOs9zBQUFBX8fHwHhkdR2ADJE
AA==

オフライン

 

#30 2023-06-30 14:52:00

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

AlderLake optimized MajiorityCleanES78
MCES78Ubuntu2204.tar.gz.001

コード:

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
rfbIIzEgDH1AfuRW8LJFIj2t9sgjQyAMwUC5SLLg5YtEnlrtkUeqQBgSgnKRbcHLF4mEtdojj5yB
MEQF5SLtgpcvEplrtUceyQNhyAzKRf4FL1+kp6DVnoSehbmXG3Cbp0V7Jrucnos5lOvZGPX/TNGe
kZm0uQk9K3Mnt8NhyvbMHuT03My+XM/OqP9nivYMzaTNLdezlCLvgkkp0nOVMsFtqfaMpUx9v+V6
3lLkXVQpRXr2Uia4LdXMgZSp77dcZkKKvOsupWjmQ8oEt6eaWZEy9f2Wy9xIkac2pBTNDEmZ4PZU
M09Spr7fcpktKfLUj5SimTMpE9yeamZOytT3Wy7zJ0WeGpNSNLMoZYLbU81cSpn6fhUyo7mSn5DL
lcKZ2VwJZm81pWRmOFfqfzImzUznyrz+XQqZ8VzJT8jmSuHMfK4Es/eaUnJkIFfqfzImHZnIlXn9
u+qNjGijn7LXpsrIjjYreCyzGpnSZm3Pq97Imjb6Qz7aVBkZ1GYFj2VWI5varO151RuZ1UZ/qFCb
qiPL2qzg8cxqZFybtT2veiP72ugPNWtTdWaCNit4PLOaWaHN2p5XvZkh2uhPVdCm6swWbVbweGY1
M0ebtT2vejOLtNGf6qJN1ZlR2qzg8cxqZpc2a3teM5yZVlvqT+ipLTObmVdbgrP31ixzmplYW2gZ
FjUzs7bw4zLzmam1pf6Evtoys5m5tSU4e3fNMqeZybWFlmFRM7NrCz8ubcxMXzrLnxK8dFb5zYCl
w9eiNm19M2Pp8H2pTSvfjFk6y/9KwtJZ5TeTlg5fi9q09c2wpcP3pTatfDPvL3vn8uo0EIVxRUVd
jYigC0EXCt0IuhAUURqwkIoBF+LjH3AlFlQQRNwomCCuVVzoxp241G19e33G+uaC9mqt9YXv+k79
ZvRq0qSdqS5Kmu+e35mZTE7SaXLnnNzkZibtpP9VqLQz0G9Gph12j36TrTdT0w77S7/JypvBaSf9
r2KmnYF+MzvtsHv0m2y9GZ922F/6TVZGJkg76X8VPO0M9MgQaYfdo99ka2SOtMP+0m+yMjJK2kn/
UBRpZ6BHpkk77B79JlsjA6Ud9pd+w5GZKBxQhMKRuShmoh29izK4wpHZKLwyoHBkPkqPQneRdeHI
jBQOKEbhyJwUE9GO3kkZXOHIrBReGVA4Mi+lR6G7yLpwZGZCAg5pSghHJifEHIYFkm04Mj8hpjBe
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
pUXJVR9SCxQQm3rAX4vV4+G9tHC56kNq

オフライン

 

#31 2023-06-30 14:56:30

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

AlderLake optimized MajiorityCleanES78
MCES78Ubuntu2204.tar.gz.002

コード:

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
lylzpYjUAZEyV4pIN1ykzJUi0d/s2j9v00AYx/GwJROMbDAwdOzISCQiXaTc2+jIypa18dBXwJux
VFVVNshEFSEGMpQ/gS0dw+8uQwl27MHL88hftZc7y6c2tT5K3W9jnSitFKK2idJKYeqCKa0Upg6Y
0kph6oAprRSm5pnSSkHqACmtFKTGkdJKIWqdKK0UoraJ0kph6oIprRSmDpjSSmHqgCmtFKbmmdJK
QeoAKa0UpMaR0kohap0orRSitonSSmHqgimtFKYOmNJKYeqAKa0UpuaZ0kpB6gAprRSkxpHSSiFq
nSitFKK2idJKYeqCKa0Upg6Y0kph6oAprRSm5pnSSkHqACmtFKTGkdJKIWqdKK0UoraJ0kph6oIp
rRSmDpjSSmHqgCmtFKbmmdJKQeoAKa0UpMaR0kohap0orRSitonSSmHqgimtFKYOmNJKYeqAKa0U
puaZ0kpB6gAprRSkxpHSSiFqnSitFKK2idJKYeqCKa0Upg6Y0kph6oAprRSm5pnSSkHqACmtFKTG
kdJKIWqdKK0UoraJ0kph6oIprRSmDpjSSmHqgCmtFKbmmdJKQeoAKa0UpMaR0kohap0orRSitonS
SmHqgimtFKYOmNJKYeqAKa0UpuaZ0kpB6gAprRSkxpHSSiFqnSitFKK2idJKYeqCKa0Upg6Y0kph
6oCp/1Y6PWJ66vTsavbqfPpwN959ipdLPWo9WSz1Yy9jsZwMtRot4yhPOtJ1+N7tG+op569wWL94
0vVW6t19um5dv8r/t1izq7fpsnwe7z7Gy1KPWj/eCU6GWo3KOMqTjtLT6P4U/rksg6fvP6y/3T0c
f4y/DGo/zez7elb7aWWfLikv6n19UR+80Yt6sQtFetQ6NLykh8Nrduvp+e9UX3dBIy/0bYYazzSe
a7zUONM413hd3V2fG/j3V7+Rbi6KTSjSo9ah4fY4HO5/W0/PfyVtm6CRF01Iq7vrkXJ73GekizIp
LYOaWKHlogwNTSwcbnBaT8/vJaEMGmluQXq0t54oPazXRFfpt/0qqIcVWi5WoaGHhUPwaj09/yEJ
q6CR5haiR3vridLC+kz08c/sNOloqgvd/Y/ri4koRI28aEJa3V0fGfgHWL+ZruVzHYs86UhMr087
vE5Ty2mJ+pm8raNGXjQxre6uZ8pbCfrNdCuf21jkSUdienPa4U2aWk5L1DZ520aNvGhiWt1dz5Q3
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
3dHxnzxLP91yhuWPa27aE0BDw2wmPYOj

オフライン

 

#32 2023-06-30 21:31:25

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

こんにちは、Ubuntu forum の皆様。

久しぶりにMajiorityCleanESの新バージョンを公開しました。
いま、音楽再生ソフトの研究開発では、業界混乱の状況故に、
しばらくの終了を実施中です。

主に混乱している件
スマホ難聴問題、CD製造方法、マイクの仕様表の不正、

スマホ難聴の原因としては「密閉型」「BASSポートなし」の
条件で起きやすい。まれに「DSPの円周率精度の問題」

CD製造方法としては「レーザー加工の出力調整演算精度」
「円周率の計算方法が、製造装置の設計に合致していない」
「メディアのエラー計測時、円周率の精度が 3 になっていた」
「3」とは「3.14... ではなく 整数 3 で処理していた」

マイクの仕様表の不正
「周波数特性を計測しておらず、400Hz未満は録音できない」
「周波数特性を計測できる機材は、まだ製造されてない」
「製造されてない」とは「試作機の段階」


さて、Linux の方は、Ubuntu 22.04 LTS なら公開していい。
ThinkPad Yoga 260 [Core i5-6200U] [Skylake mobile]
こちらへ最小限の内容でインストールしました。

PureBasic 6.02 LTS を使いました。
このバージョンから /REASM を Linux で使用可能になり、
高度な低ジッター処理を実現できるようになっています。

コード:

;// ES76 Tuning
;   !NOP QWORD [START+0]
;   !NOP QWORD [START+16]
;   !NOP QWORD [START+32]
;   !NOP QWORD [START+48]
;   !NOP QWORD [Rip]
;   !NOP QWORD [Rip]
; NOPMemoryQ_S_1
; !START:
; @ Process Optimize generated code
; @ This enables the C code optimizer. 
; NOPMemoryQ_E_1
;//1
;   Debug "; "+Str(?NOPMemoryQ_E_1-?NOPMemoryQ_S_1) + " @@"
;   For I=0 To ?NOPMemoryQ_E_1-?NOPMemoryQ_S_1 Step 16
;     Debug "  !NOP QWORD [Func_+"+Str(I)+"]"
;   Next
;   Debug "  !NOP QWORD [Rip]"
;   Debug "  !NOP QWORD [Rip]"
;   Debug "  !Func_:"
;   CallDebugger
;//

これは・・・・ん!!!!ん!!!・・・
超危険産廃機密&超危険産業機密

こういう処理に変更して、AlderLake最適化を実施しています。
この最後の [Rip][Rip] は・・・んん!ん!んん!!・・・。
超危険老廃機密&超危険仙人機密

この処理は PureBasic が FASM をコンパイラーとして設計された、
開発環境になっており、ソースコードへ 64bit Inline asm を記述。
これは・・・んんんん!・・・・

MajiorityCleanESを公開する理由について
日本のアニメを高画質・高音質・高解像で閲覧したい目的、
ソースコードを記述する仕事で、医療用モニターみたいに低雑音表示
プログラマー職をしていれば、どれほど眼精疲労が消えたか?

復元方法について
各テキストを テキストエディタで Copy & Paste して保存します。
> base64 -d テキストファイル > MajiorityCleanES.tar.gz.001
それを連結して、通常解凍すれば、復元できると思います。

分からないなら、ポーランドで利用者の多い PeaZip を使用して。
よろしくお願いします。

オフライン

 

#33 2023-07-04 23:28:55

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

Linux 用の音楽再生ソフトウェアを「Nontallion 2023」として作ろうとしましたが、
「WindowsOS用に作っている開発者は、LinuxOS用に作ることは許されない」と、
声が聞こえて、「LinuxOS用に作るなら、WindowsOSでは作ってはならない」

断念しました件を報告いたします。

いま、声の練習ソフトを作ろうとしましたが、下記の条件が付帯していました。
1.過去に付き合った彼女や、女優や声優「すれ違いでいいから会いなさい」
2.テレビを含め、開発環境では「スピーカーを使用禁止、ヘッドホンを使用」
3.アニメなど、放送などはすべて無音声にすること。演技を聞いてはならない。
4.声の練習ソフト開発は「シンセサイザーの音を入力して、いかなる声も発声禁止」
5.すべてのネット動画の契約を解約し、無料動画やAnimeHP閲覧も自主的に閲覧禁止
「声優関係のソフトウェアの開発を日本でやるなら、この基準を求める」

これを守れないなら、信用できない。・・・と裏から通知されて、
半年以上かかって、ようやく達成しました。

シンセサイザー KORG NAUTILUS-88 は「弾く練習」をしようとすると「弾くな」
声の代わりに使う音源ということで、安い電子ピアノでは練習ソフトを作れない。

オフライン

 

#34 2023-10-04 17:01:18

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

Windows環境では
MajiorityCleanES と Art photo print と Magiclobe viwer を作り、
カラーマネージメントソフトウェアなしで、カラーマッチングできる段階
推奨環境として、
ThinkPad T16 Core i7 / 45%NTSC Display / Intel UHD
EPSON SC-PX5V2 / EPSON 写真用紙 光沢
印刷した色合いと、画面の色合いは、デルタE<2 という感じ

当然に Ubuntu で、それは可能か?
確かめてみました。
MajiorityCleanES 88 を使ってみて、MajiorityCleanES 78 のほうがいい。
Magiclobe viewer は動くけれど、表示されない不具合頻度多く、公開困難。
「不具合あるまま出せば、眠れない、死にそうな夢を繰り返す」攻撃がある。

写真の印刷を考えるなら、
ThinkPad Intel Core AlderLake / 45%NTSC / Intel UHD / Win11
+
MajiorityCleanES 88 と Art photo print rev77 と Magiclobe viwer rev29
EPSON PX-S730 顔料4色 / EPSON 写真用紙 絹目調(これしか推薦できない)
設定 ふちなし自動拡大標準 / 色補正 ICM / 印刷濃度 +8% / はがきサイズ
+
Rewrite data 5.10 / 必ず PCIe-NVMe SSD でなければ効果なし
Software と Photo image files を Rewrite してから、印刷します。

今日時点、やすく買えるモデル
ThinkPad E シリーズ> E14 Gen 5 (14″ Intel)> ThinkPad E14 Gen 5
ThinkPad E14 Gen 5 Core i5-1335U P2E8 45%NTSC IrisXE AX211 2x2
512 GB SSD, M.2 PCIe-NVMe / 16 GB DDR4-3200MHz / HDMI / RJ-45

写真関係は妥協して下さい。
これなら、Win11 終了後、Ubuntu へ転用できると思います。

印刷に関しては、2000年頃の大手印刷会社カラープルーフよりも、
高画質・高品質・高演色を実現できており、なにも「おとがめない」状態です。
ただし、現在の配布サイトで書いているように「裏システムの監視つき」です。
EPSONなら純正用紙と純正インクを使っているなら何もトラブルなし。
でも、少しでも安くしようとすると「無線LANが停止」「あたりや出現」
しかし「あたりや」は監視カメラやドライブレコーダーには「記録されてない」
さいあくすぎる・・・。

なにはともあれ、これを作ったことによって、高精度の測色機について、
明るいレンズではない、標準の既製品を使用した原因によって、測色は暗い。
測色機に使うレンズを「明るいレンズ」にしていれば、アニメは色で混乱しなかった。
Hisense 24A40H では、映像設定を初期化したあと、自動 色の濃さ +2

mics_halt-and-halt_VoiceBlog による投稿:

映像メニュー:自動、画面の明るさ:0、お好み調整:黒レベル0、色の濃さ+2、色あい0
音声メニュー:スタンダード、リマスター:オフ、低音強調:オフ、サラウンド:オフ
省エネ:節電1、HDMIケーブル:8K 48Gbps "Ultra High Speed HDMI Cable" 認証取得
映像メニューの初期化後、色の濃さ+2、で良いと思う。大前提として、省エネ:節電1
省エネ「標準」「節電2」では「調整不足」に見える。

Hisense 24A40H 推薦できる HDMI ケーブル
HiFind 8K認証 HDMI 2.1 cable 48Gbps 販売: LongLan Store

Hisense 24A40H をソースコードの編集、開発環境で使用していますが、
左右にスタンドの足があるので、左右に揺れず、見やすい。

オフライン

 

#35 2023-10-05 10:58:23

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

あー、つかれた・・・。
MajiorityCleanES 89 for Ubuntu 22.04
完成しました。テキストは base64 コマンドで復元して es89.tar.xz
展開すれば使用可能です。

想定するマザーボード
GIGABYTE AORUS や Lenovo ThinkPad という高級グレード品
特に「ファンが高回転で維持される」場合、非対応と思ってください。

Skylake CPU Design 2016 - RapterLake CPU Design 2024
snowrapter@snowrapter:$ ./ExtremeStabilizer89

CPU Core Registers Stabilizer
ExtremeStabilizer 89 Ubuntu 22.04
for Intel CPU Design 2016-2024
Thanks for reviews at JPLAY forum
Compiler :: PureBasic 6.02 (FASM 1.71.39)
This program control the CPU register
to the electronic reference
inside the CPU embeded cache memory
to made lost the digital jitter in PC.


depend CPU instructions
x64 Rax-R8-Rsp, MMX, SSE2, RDRAND, SMSW

"ExtremeStabilizer89"
SIZE 2,002,680.00 bytes
MD5 c7d081d6a5de4d043c9bdd599087aba5

コード:

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

オフライン

 

#36 2023-10-10 05:55:51

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

今日はMajiorityCleanES92を公開します。
最近やっている AlderLake 対応ですけれど、簡単に PureBasic で適用する方法を見つけました。

コード:

; デバッグ実行時に、関数処理の最初へ記述しておきます。

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]"
CallDebugger

NOPMemoryQ_S_1:
Bass_ChannelGetData(chan, *bufferDecode, Bass_flags_FFFFFFF|BASS_DATA_FLOAT )
NOPMemoryQ_E_1:

適用後、このように書きます。

コード:

; 56 @@
!NOP QWORD [Rip+40]
!NOP QWORD [Rip+56]
!NOP QWORD [Rip+72]
!NOP QWORD [Rip+88]
!NOP QWORD [Rip]
!NOP QWORD [Rip]
Bass_ChannelGetData(chan, *bufferDecode, Bass_flags_FFFFFFF|BASS_DATA_FLOAT )
; 56 @@ End

このように、外部DLLに対して、命令キャッシュを指定します。
これだけで音質が急激に良くなる現象を確認しています。
PureBasic の命令では CopyMemory() や SetWindowColor() で改善しています。
プログラムが使えるメモリ空間であれば DWORD が適切でしょうけれど、
実際にはアドレス変換後に QWORD の状態で実行されるので、この方法が適切です。

ループ処理では
for-next の 前から指定すると良くなくて、下記のほうが速い。
だいたい [Rip+500] 、約500bytes を超えないように注意していれば有効

コード:

    For nx=0 To nw-1
      For ny=0 To nh-1
        ; 190 @@
        !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+200]
        !NOP QWORD [Rip+216]
        !NOP QWORD [Rip+232]
        !NOP QWORD [Rip+248]
        !NOP QWORD [Rip+264]
        !NOP QWORD [Rip+280]
        !NOP QWORD [Rip]
        !NOP QWORD [Rip]
        Origin = (ny * nw + nx) << 2
        If PeekL(*MemoryCopy + Origin)=1
          zx1 = nx : zy1 =ny
          Break 2
        EndIf
        ; 190 @@ End
      Next
    Next

これを書いた本当の理由ですか、、
半導体露光装置など、マルチパターン露光問題の改善に役立てばいいかな?

base64 -d this.txt > ES92.tar.xz

コード:

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
owGAuHofA9L+scRn+wIAAAAABFla

オフライン

 

#37 2023-11-03 05:18:03

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

完成かなと思っていますと「ソースコードをみせろ!」と来て、
ライセンスは未定義、あぶなくてきめられん!

MajioritySolution download | SourceForge.net
https://sourceforge.net/projects/majioritysolution/

こちらへ Windows のソースコードのうち、許可されたものを公開

もっと簡単にしたソースコード、具体的な成果

コード:

; RDRAND SMSW CPU reg. Stabilizer
; from ExtremeStabilizer 99 (2023 10 22) (2023 10 23)
; from Lemonade Elitest 64 SSE2
; Copyright (c) 2020-2023 Hiroyuki Yokota (oryaaaaa)
; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Macro XOR_R15_R15_255
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV R15, QWORD 0
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
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 XOR_Rcx_Rcx_x2
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOV Rcx, QWORD 0
  !MOV Rcx, QWORD 0
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
EndMacro

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

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

Macro Set_CL1
  XOR_Rcx_Rcx_255
  !INC cl
  ; cx = 1
EndMacro

Macro Set_CL64
  XOR_Rcx_Rcx_255
  !INC cl
  !INC cl
  !INC cl
  !INC cl
  !SHL cl, cl
  ; cx = 64
EndMacro

Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL
  XOR_Rcx_Rcx_x2
  Set_CL1
  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
  !MOVQ mm0, mm1
  ;
  !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 SIMPLE_MOVE_REGISTERS_Up_and_Down
  ; 249 @@
  !NOP QWORD [Rip+136]
  !NOP QWORD [Rip+152]
  !NOP QWORD [Rip+168]
  !NOP QWORD [Rip+184]
  !NOP QWORD [Rip+200]
  !NOP QWORD [Rip+216]
  !NOP QWORD [Rip+232]
  !NOP QWORD [Rip+248]
  !NOP QWORD [Rip+264]
  !NOP QWORD [Rip+280]
  !NOP QWORD [Rip+296]
  !NOP QWORD [Rip+312]
  !NOP QWORD [Rip+328]
  !NOP QWORD [Rip+344]
  !NOP QWORD [Rip+360]
  !NOP QWORD [Rip+376]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  MOV_Rax_Rax_Up_Down
  MOV_Rdx_Rdx_Up_Down
  MOV_Rsp_Rsp_Up_Down
  MOV_Rsi_Rsi_Up_Down
  MOV_R9_R9_Up_Down
  MOV_R11_R11_Up_Down
  MOV_R13_R13_Up_Down
  MOV_R15_R15_Up_Down
  MOV_Rcx_Rcx_Up_Down
  MOV_Rbx_Rbx_Up_Down
  MOV_Rbp_Rbp_Up_Down
  MOV_Rdi_Rdi_Up_Down
  MOV_R8_R8_Up_Down
  MOV_R10_R10_Up_Down
  MOV_R12_R12_Up_Down
  MOV_R14_R14_Up_Down
  ; 249 @@ End
EndMacro

Macro BeforeProcedureRegisters_RDRAND
  ALL_MMX_CLEAR_SHIFTWORD_INC_CL
  MOV_Rax_Rax_Up_Down
  MOV_Rdx_Rdx_Up_Down
  MOV_Rsp_Rsp_Up_Down
  MOV_Rsi_Rsi_Up_Down
  MOV_R9_R9_Up_Down
  MOV_R11_R11_Up_Down
  MOV_R13_R13_Up_Down
  MOV_R15_R15_Up_Down
  MOV_Rcx_Rcx_Up_Down
  MOV_Rbx_Rbx_Up_Down
  MOV_Rbp_Rbp_Up_Down
  MOV_Rdi_Rdi_Up_Down
  MOV_R8_R8_Up_Down
  MOV_R10_R10_Up_Down
  MOV_R12_R12_Up_Down
  MOV_R14_R14_Up_Down
  ; 17 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip+32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ mm0, Rax
  !MOVQ mm1, Rdx
  !MOVQ mm2, Rsp
  !MOVQ mm3, Rsi
  !MOVQ mm4, R9
  !MOVQ mm5, R11
  !MOVQ mm6, R13
  !MOVQ mm7, R15
  ; 17 @@ End
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rax
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rdx
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rsp
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rsi
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R9
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R11
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R13
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R15
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 49 @@
  !NOP QWORD [Rip+32]
  !NOP QWORD [Rip+48]
  !NOP QWORD [Rip+64]
  !NOP QWORD [Rip+80]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]  
  !MOVQ Rax, mm0
  !MOVQ Rdx, mm1
  !MOVQ Rsp, mm2
  !MOVQ Rsi, mm3
  !MOVQ R9, mm4
  !MOVQ R11, mm5
  !MOVQ R13, mm6
  !MOVQ R15, mm7
  !MOVQ mm0, Rcx
  !MOVQ mm1, Rbx
  !MOVQ mm2, Rbp
  !MOVQ mm3, Rdi
  !MOVQ mm4, R8
  !MOVQ mm5, R10
  !MOVQ mm6, R12
  !MOVQ mm7, R14
  ; 49 @@ End
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rcx
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rbx
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rbp
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND Rdi
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R8
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R10
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R12
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !RDRAND R14
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 19 @@
  !NOP QWORD [Rip+24]
  !NOP QWORD [Rip+40]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rcx, mm0
  !MOVQ Rbx, mm1
  !MOVQ Rbp, mm2
  !MOVQ Rdi, mm3
  !MOVQ R8, mm4
  !MOVQ R10, mm5
  !MOVQ R12, mm6
  !MOVQ R14, mm7
  !EMMS
  ; 19 @@ End
  MOV_Rax_Rax_Up_Down
  MOV_Rdx_Rdx_Up_Down
  MOV_Rsp_Rsp_Up_Down
  MOV_Rsi_Rsi_Up_Down
  MOV_R9_R9_Up_Down
  MOV_R11_R11_Up_Down
  MOV_R13_R13_Up_Down
  MOV_R15_R15_Up_Down
  MOV_Rcx_Rcx_Up_Down
  MOV_Rbx_Rbx_Up_Down
  MOV_Rbp_Rbp_Up_Down
  MOV_Rdi_Rdi_Up_Down
  MOV_R8_R8_Up_Down
  MOV_R10_R10_Up_Down
  MOV_R12_R12_Up_Down
  MOV_R14_R14_Up_Down
EndMacro

Macro BeforeProcedureRegisters_SMSW
  ALL_MMX_CLEAR_SHIFTWORD_INC_CL
  MOV_Rax_Rax_Up_Down
  MOV_Rdx_Rdx_Up_Down
  MOV_Rsp_Rsp_Up_Down
  MOV_Rsi_Rsi_Up_Down
  MOV_R9_R9_Up_Down
  MOV_R11_R11_Up_Down
  MOV_R13_R13_Up_Down
  MOV_R15_R15_Up_Down
  MOV_Rcx_Rcx_Up_Down
  MOV_Rbx_Rbx_Up_Down
  MOV_Rbp_Rbp_Up_Down
  MOV_Rdi_Rdi_Up_Down
  MOV_R8_R8_Up_Down
  MOV_R10_R10_Up_Down
  MOV_R12_R12_Up_Down
  MOV_R14_R14_Up_Down
  ; 17 @@
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip+32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ mm0, Rax
  !MOVQ mm1, Rdx
  !MOVQ mm2, Rsp
  !MOVQ mm3, Rsi
  !MOVQ mm4, R9
  !MOVQ mm5, R11
  !MOVQ mm6, R13
  !MOVQ mm7, R15
  ; 17 @@ End
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rax
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rdx
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rsp
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rsi
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R9
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R11
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R13
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R15
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 49 @@
  !NOP QWORD [Rip+32]
  !NOP QWORD [Rip+48]
  !NOP QWORD [Rip+64]
  !NOP QWORD [Rip+80]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]  
  !MOVQ Rax, mm0
  !MOVQ Rdx, mm1
  !MOVQ Rsp, mm2
  !MOVQ Rsi, mm3
  !MOVQ R9, mm4
  !MOVQ R11, mm5
  !MOVQ R13, mm6
  !MOVQ R15, mm7
  !MOVQ mm0, Rcx
  !MOVQ mm1, Rbx
  !MOVQ mm2, Rbp
  !MOVQ mm3, Rdi
  !MOVQ mm4, R8
  !MOVQ mm5, R10
  !MOVQ mm6, R12
  !MOVQ mm7, R14
  ; 49 @@ End
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rcx
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rbx
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rbp
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW Rdi
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R8
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R10
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R12
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !SMSW R14
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 19 @@
  !NOP QWORD [Rip+24]
  !NOP QWORD [Rip+40]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !MOVQ Rcx, mm0
  !MOVQ Rbx, mm1
  !MOVQ Rbp, mm2
  !MOVQ Rdi, mm3
  !MOVQ R8, mm4
  !MOVQ R10, mm5
  !MOVQ R12, mm6
  !MOVQ R14, mm7
  !EMMS
  ; 19 @@ End
  MOV_Rax_Rax_Up_Down
  MOV_Rdx_Rdx_Up_Down
  MOV_Rsp_Rsp_Up_Down
  MOV_Rsi_Rsi_Up_Down
  MOV_R9_R9_Up_Down
  MOV_R11_R11_Up_Down
  MOV_R13_R13_Up_Down
  MOV_R15_R15_Up_Down
  MOV_Rcx_Rcx_Up_Down
  MOV_Rbx_Rbx_Up_Down
  MOV_Rbp_Rbp_Up_Down
  MOV_Rdi_Rdi_Up_Down
  MOV_R8_R8_Up_Down
  MOV_R10_R10_Up_Down
  MOV_R12_R12_Up_Down
  MOV_R14_R14_Up_Down
EndMacro
  
;- PureBasicStart
If OpenConsole("RDRAND SMSW CPU reg. Stabilizer")
  PrintN("Setup ... RDRAND SMSW CPU reg. Stabilizer")
  ; 1 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 2 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 3 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 4 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 5 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 6 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 7 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 8 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 9 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 10 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 11 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 12 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 13 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 14 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 15 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 16 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 17 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 18 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 19 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 20 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 21 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 22 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 23 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 24 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 25 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 26 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 27 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 28 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 29 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 30 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 31 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 32 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 33 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 34 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 35 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 36 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 37 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 38 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 39 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 40 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 41 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 42 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 43 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 44 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 45 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 46 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 47 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 48 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 49 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 50 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 51 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 52 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 53 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 54 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 55 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 56 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 57 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 58 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 59 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 60 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 61 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 62 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 63 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; 64 Setup
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  XOR_Rcx_Rcx_x2
  Set_CL64
  !XCHG dil, cl
  MOVZX_Rdi
  !NOP QWORD [Rip+16]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  !CALL QWORD PB_Delay
  !NOP QWORD [Rip-32]
  !NOP QWORD [Rip]
  !NOP QWORD [Rip]
  ; EndMacro
  BeforeProcedureRegisters_SMSW
  BeforeProcedureRegisters_RDRAND
  PrintN("Finished")
  CloseConsole()
EndIf

Delay(800)
End

; IDE Options = PureBasic 6.02 LTS (Linux - x64)
; ExecutableFormat = Console
; CursorPosition = 1838
; FirstLine = 1815
; Folding = -------
; Optimizer
; EnableXP
; UseIcon = NR5_ES.ico
; Executable = ../../Documents/CPUsetupRDRAND
; CPU = 2
; Compiler = PureBasic 6.02 LTS (Linux - x64)

オフライン

 

#38 2023-11-03 05:50:45

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

上記のビルド版
$ base64 -d text > CPUsetupRDRAND.tar.xz

text

コード:

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
Kj4AAZsmgIATANAE9pexxGf7AgAAAAAEWVo=

Ubuntu では「自動起動するアプリ」という設定で、こちらの CPUsetupRDRAND を指定すれば、
ログイン後、2秒間のキュアプログラムで「RDRAND基準のCPU状態をセットアップ」
解析していないけど、動画配信などは RDRAND を使った暗号化をしているので、画質と音質は大きく改善

でも、これを Windows で作って配布すると「とろい!」と判定されて動かない。
RDRAND のない CPU では RDRANDマクロ行を削除、SMSW だけにすると、動作する。

このソースコードをみて、簡単じゃん?
そう思うやつは「デスマーチ」のはじまり、はじまり

何が危ないか?
NOP QWORD [Rip]
NOP QWORD [Rip]
で終わっている部分がある。これを消すと、CPU内部でクロック制御が無効化される。
クロック制御なく、1ステップの「オーバークロック状態で実行」になり、
環境条件によっては、オーバークロックした条件になって壊れる。
修理に出しても「オーバークロックした痕跡から、規約違反で修理不可、保証対象外」です。
その場合、
自分の給料から「損害賠償を支払う」というデスマーチが始まります。

これは脆弱性ではなく、軍事攻撃として用意された命令になるので、
本気の攻撃では「セキュリティソフトは機能せず、貫通して、ぶっ壊れる」
そして厄介なのは、クレームをOS設計者へ言っても「無視!」される。
軍事攻撃できる CPU OS RAM SSD という条件で、パソコン販売は許可されてる。

NOP QWORD [Rip]
NOP QWORD [Rip]

CPU キャッシュを「カレントラインへ戻す」という内容になり、正常動作の復帰方法
NOP 行の削除でなく、この2行を NOP行 の最後へ、追加すればいい。
それでも CPU の内部において、マイクロコードへ変換する部分に対策されると、
この方法では対策できない。
そこから、デスマーチのはじまり、はじまり。

そもそも、インターネット経由ではない、オフラインの攻撃手段があるので、
ひどいことのラッシュが起きる。

MajiorityCleanES99 の開発環境は、Hisence 24A40H 1366x768 に対して、
東芝映像エンジンと Intel UHD770 色差出力による 1080p 入力によって、
むりやり 720p を 1080p で表示して「テキスト誤認攻撃」を阻止している。

こういう対策をやらないと「ソースコードは正しく認識できない」
デスマーチのはじまり、はじまり

Lenovo ThinkPad にそういう機能を作れないのかな、、

オフライン

 

#39 2023-11-08 15:01:57

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

今週、SourceForge から「AWARD」のお知らせが届きました。
SourceForge Favorite(月間2,000ダウンロード)

この受賞って、普通はどうなんですか? 日本での就職に役立つの?
いちおう、あれこれに使っていいよ!
とありますので、ホームページに使ってみましたけれど、いいのかな。

ライセンスは「未定義」のまま、です。

SoftwareDesign の個人開発の記事を読んでいますと、
誰かわからない匿名で

Voice:
産業界が無償提供を希望する間はライセンス未定義がベスト
儲ける状態にするには「対価を誰かに支払う代行費」が必要


ということで、
自分ひとりで完結している状態では「支払い代行費」の名目は作れない

個人開発について、ひとことありますか?
そうですね、
大企業は「基礎研究」だけでも「投資家へ説明義務」が生じる。
中小企業では「投資家=経営者」ですけど「銀行へ説明義務」が生じる。
個人は「説明義務」は求められないが「国民の模範」を求められる。
これだけを気にしていれば、いいよ。

オフライン

 

#40 2023-12-08 06:55:55

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

MajiorityCleanES 101 について
RDRAND 命令から RDSEED 命令へ、MajiorityCleanES 99 から変更
それだけで「最高品質の限界突破」となります

RDSEED は CometLake から「結果はキャッシュされ、同値を返す」
この処理を悪用して電子ビット基準を正確に整えることができた

問題点は、USB-DAC の多くが未対応で、AKM ESS DAC と相性最悪
CS43131 とは相性良好、S.M.S.L M300SE が現在の Best USB-DAC

RDSEEDの設計を変更されたら、効果は無くなる
それで公開すると AKM ESS など多くのメーカーへ影響するおそれ
DAC 製造メーカーに留まらず、電子基板を使用した世界の全製品へ影響

現状の AlderLake RapterLake から設計変更された段階で、
研究開発のリファレンスとならない、そのため RDSEED 依存ではなく
同じ結果をもたらす処理にしなくてはならない

RDSEED は「既存のCPU命令から作られた処理」ではなく、
「独自の乱数生成ハードウェアから得る乱数値」との説明で、
これをどのように再現するのか、とても難しい

MajiorityCleanES 99 から RDRAND を RDSEED にしたもの

REX.W + 0F C7 /6
RDRAND r64
Read a 64-bit random number and store in the destination register

REX.W + 0F C7 /7
RDSEED r64
Read a 64-bit NIST SP800-90B & C compliant random value and store in the destination register

Executable から該当コードを見つけ、+1 すると RDSEED に変わる

CPUは「アナログ回路から、"1" を 電圧70%以上、"0" を 電圧30%以下、デジタル基準を定義して作られた」ものと考えている技術者なら、この問題点は理解できるだろう。しかし、電子工学を深く勉強していないソフトウェア工学の専門家は「あり得ない」と断言しやすいが、こういう論者は大学教授には不適切です。常にソフトウェアのバグのうち、再現不能という場合、アナログ回路であるので、電源や雑音の影響を調査しなければならないと説明できる大学教授ならば、日本の将来に不安はない

ここの部分について無理解であったり、日本政府指定の特定機密になったりすれば、日本の大企業によって作られた人工知能の暴走によって、日本の領地は「人工知能による戦争に使われて来た実験場」という運命になりやすい。世界を破滅させた国として、いつでも消滅できる場所へ移動した可能性から「この歴史では最も東に位置しており、海底火山の噴火によって消滅できる」、そう考えると責任とは? 日本に住むすべての人に影響する。おかしい技術根拠を言っている場合、何も言わなければ世界の破滅は避けられない

オフライン

 

#41 2024-04-05 09:55:14

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

いまなお電子ビット基準のCPUレジスタ・スタビライザーの研究開発は続行しており、様々な妨害あっても、それが日本の国益になると理解されたら続行できるようになる。それをどのように示すか、いつも悩みを抱えている。

いま、写真印刷ソフト Art photo print という名称を使用していたけれど、誤解を招くとされて、JK print 女史後世 という名称へ変更している。アイドルの推し活や、コスプレイヤーの写真を印刷してフォトアルバムを作りたい用途が多いということにした。しかし、元々は「大企業の印刷機材メーカーから提供できる印刷品質は平均クラス」ということであり、「左8人、王様、右2人」という王様カレンダーの印刷には「Art photo print」で対応できるというもの。許可されているというのは「カレンダー」「大企業の宣伝用途」に限られていると思っている。

こうした写真印刷ソフトを作れば、EPSON CANON のカメラやプリンターの改善が行われ、ファッション雑誌やコミック雑誌の印刷品質は改善されてきた経緯がある。これ以上に良くならないとされても、限界突破できる根拠があれば、闇の権力強硬派という印刷会社から印刷機材メーカーへ「もっとよくできるだろ!」と言えるので、それを知っていれば維新の関係先は十分に貢献していると言える。普通のソフトウェア開発者は怖がって作れない。

あまりにも関係性を証明できないけれど、印刷品質の改善は「レーザー加工技術の改善」でもあって、デジタルで記録された設計図からレーザーで半導体製造装置の露光処理など、具体的な設計は分からないけれど、役に立っている可能性はある。日本では各種権利関係が複雑で、中国や台湾のメーカーへ後れを取るだろうけれど、根本的な先進技術では相変わらず日本の技術へ依存しており、半導体技術の限界に達すると「おまえ、これ以上になんとかならね?」と日本の技術会社へ無理難題を吹っ掛けられている。

デジタルジッターの起きやすいCPUは作ろうとして製造しているのではなく、できれば起きない方が安全である。人工知能の暴走は「製造品質の悪化によって起きるデジタルジッター原因説」が有力とされる。裏のシステムでも人工知能を使用していると「オフェンスとディフェンスを間違える」、offense defense 言葉のスペルを暗記して間違えない人は少ない。ofense deffense と覚えている人工知能があると、世界の全体で大混乱を引き起こす。これはどうして起きたのか? いま、作っているMajiorityCleanESを使用すると問題が起きなかったという。それで現在のCPUは、外側のCPU、内側のCPU、そういう2重シールド・3重シールドという構造を考えれば、「作り続けてくれ」と言われ、収入になる仕事にならないのだろうか?と思っても、権利構造の都合から「我慢しろ」という状況である。

要人護衛の問題について、ひとこと

英語の勉強をするとき、桐原書店の「コウビルド英語語法辞典 改訂第4版 2020年」ぐらいは買って勉強できないか? と思う。3000円ぐらいだけれど、間違えやすい英語の意味について解説してあって、これぐらいは理解できていないと、いくら英語の成績が良くても実用性のあるスキルにならない。人工知能の ChatGPT にしても、曖昧な意味の違いによっておかしい命令を発行してしまう。日本語で「英語語法辞典」を書くと、曖昧な言葉表現として勉強した日本語で理解していると、意味の分からない英語を多用しやすい。日本語に「論理表現」の言語ルールを新たに作らないと、日本の技術専門書は意味不明に陥りやすい。

オフェンス is offense as 攻撃
ディフェンス is defense as 防御
ターゲット is target as 対象

攻撃対象 is offense target as アタック
防御対象 is defense target as 守れ

これらの意味が理解されていない英語の ChatGPT で操作する人工知能は極めて危険である。

fense target body guard

と聞こえたら、なにをするべきか? 最初の3文字が伝わっていないのに、勝手に判断して、off とするか、de とするか、英語の問題はここにある。日本語は最後まで聞かないと「アタック」「守れ」の役割が分からない。

簡単な英語だから「わかるだろ?」といって、私の護衛は始まったけれど、ほとんど全員が「攻撃」「防御」を間違えており、この簡単そうな研究開発は「日本最強権力」の家系しか出来ないという危険な状態である。これを対策してくれないと、いつまで経過しても、私は給料の支払われる仕事へ就職できない。

オフライン

 

#42 2024-04-06 07:48:28

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

技術知識の鍛え方、参考になるかな?

UNIX を使い始めた時期とは、大学生になりサン・マイクロシステムズのSunOSでSVR4を学び始め、それで基本操作を覚えたあと、岐阜の悶絶美少女昇天ネットワークという草の根BBSで、京都大学マイコン部が作成した 386BSD 0.1 for PC-98 で応用分野を独学していきました。カーネル再構築によって「ハードウェアドライバー」を選別して起動カーネルを生成すれば、高速動作になるほか、メモリ使用量を抑制して動作できた。春日井の草の根BBSでは、信じられない能力者に出会い、中学生にしてオライリーの全書籍を部屋に置き、すべて勉強していると言い切った。その話を大学の情報処理センターのアドミニストレーターへ相談して、学術インターネットの使用承諾を得て、東京大学のメーリングリストで配信していた Linux 日本語FAQ を読んで勉強していきました。そういう知識が前提にあって、MajiorityCleanESは時分割タイムスケジュール処理によって、Ubuntu の安定性改善に役立つと考えている。

Ubuntu PC を子供に与える。それだけでは何も身につかない。オライリーの関連書籍をすべて買って、本棚は「大学図書館より充実」の状態が望まれる。市民図書館へ行き、「プログラミングの勉強」という本を読んでいると、ダーク・スレイブ・アッセンジャーという連中に絡まれる原因になって、小学生の段階で就職先が確定してしまう。それなら書店なら良いか? ダメ。プログラミングのコーナーで中学生女子が立ち読みしていると、先輩から好感されるかもしれないが、不審人物に狙われて就職できなくなる。行き着く先は夜の酒場しか働けなかった・・・。個人技は「プログラミングしりとり」とか、Ascii?Image?Elements?Scroll?Load?Dialog?、面白すぎて人気者になっていた・・・。

MajiorityCamisole 161 for Windows x64
留意点、Windows API 引数レジスタを Linux API 引数レジスタへ変更

コード:

Debug "; MajiorityCamisole 161 (2023 04 03)"
Debug "; RDSEED CRC32 BLSRx64 BZHI CPU reg. Stabilizer from JAPAN"
Debug "; Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)"
Debug "; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)"
Debug ""
Debug "MessageRequester("+Chr(34)+"END"+Chr(34)+","+Chr(34)+"Compiler options Executable Format Console And CPU With MMX"+Chr(34)+") : End"
Debug ""
!extrn PB_RandomSeed

Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R9" : AddElement(Reg64A()) : Reg64A() ="R11"
AddElement(Reg64A()) : Reg64A() ="R13" : AddElement(Reg64A()) : Reg64A() ="R15"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R8" : AddElement(Reg64B()) : Reg64B() ="R10"
AddElement(Reg64B()) : Reg64B() ="R12" : AddElement(Reg64B()) : Reg64B() ="R14"

!RDRAND Rcx
!CALL QWORD PB_RandomSeed
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

ForEach Reg64()
  Debug "Macro BLSR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !BLSR "+Reg64()+", "+Reg64()
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro SHR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !SHR "+Reg64()+", 1"
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro MOV_"+Reg64()+"_Up_Down"
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  Debug "  !MOV "+Reg64()+", "+Reg64()
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  Debug "EndMacro"
  Debug ""
Next

Debug "Macro Set_CL1"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  ; cx = 1"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL8"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 8"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL64"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 64"
Debug "EndMacro"
Debug ""
Debug "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  BLSR_Rcx_x64"
Debug "  Set_CL1"
Debug "  MOVZX_Rcx"
Debug "  !MOVQ mm1, Rcx"
For Loop=1 To 16
  Debug "  !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift"
Next
Debug "  !MOVQ mm0, mm1"
For Roop=1 To 7
  For Loop=1 To 16
    Debug "  !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift"
  Next
Next
Debug "EndMacro"
Debug ""

Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
EndMacro

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

Macro BeforeProcedureRegisters_1st
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64A() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64A() : Loop + 1 : Next
 EndMacro
 
Macro BeforeProcedureRegisters_2nd
  Loop=0
  ForEach Reg64A() : Debug "  !MOVQ "+Reg64A()+", mm"+Str(Loop) : Loop + 1 : Next
  ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Debug "  ;"
  ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64B() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64B() : Loop + 1 : Next
EndMacro

Macro BeforeProcedureRegisters_3rd
  Loop=0
  ForEach Reg64B() : Debug "  !MOVQ "+Reg64B()+", mm"+Str(Loop) : Loop + 1 : Next
  ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Debug "  !EMMS"
EndMacro
  
Macro BeforeProcedureRegisters_RDSEED_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64A()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64B()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !CRC32 "+Reg64A()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !CRC32 "+Reg64B()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_RDSEED_SHR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64A()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  SHR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64B()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  SHR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro
  
;- Start
Debug ";- PureBasicStart"
BeforeProcedureRegisters_RDSEED_SHR
Debug "If OpenConsole("+Chr(34)+"MajiorityCamisole 161 setup To General-purpose 64-bit registers."+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"-"+Chr(34)+")"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !StartStabilizer:"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  PrintN("+Chr(34)+"Setup 1... CRC32 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Global SineWave.i, SineBits.i, SineAngels.i, CountBits.i, CountChk.i
; totalWave = 114581
For SineAngels=1 To 178
  CountChk = 0
  Debug "  ; "+Str(SineAngels)+" Setup"
  BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_RDSEED_BLSR
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Debug "  BLSR_Rcx_x64"
  Debug "  BLSR_R8_x64"
  SineWave = Abs(Round(Sin(Radian(SineAngels))*1000, #PB_Round_Nearest))
  !MOV Rax, [v_SineWave]
  !MOV R8, Rax
  !MOV [v_SineBits], R8
  Debug "; "+Str(SineWave)
  totalWave.i + SineWave
  Debug  "  !INC cl"
  For CountBits=63 To 1 Step -1
    If SineBits&(2<<CountBits)
      CountChk+1
      Debug  "  !INC R8b"
      Debug  "  !SHL R8, cl"
    ElseIf CountChk
      Debug  "  !SHL R8, cl"
    EndIf  
  Next
  If SineBits&2
    Debug  "  !INC R8b"
    Debug  "  !SHL R8, cl"
  Else
    Debug  "  !SHL R8, cl"
  EndIf  
  If SineBits&1
    Debug  "  !INC R8b"
  EndIf
  Debug "  !XCHG Rcx, R8"
  Debug "  !NOP QWORD [Rip+16]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !CALL QWORD Sleep"
  Debug "  !NOP QWORD [Rip-32]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  !RDRAND Rcx
  !CALL QWORD PB_RandomSeed
  RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
Next
SortList(Reg64(), #PB_Sort_Ascending)
SortList(Reg64A(), #PB_Sort_Ascending)
SortList(Reg64B(), #PB_Sort_Ascending)
BeforeProcedureRegisters_CRC32_BLSR
BeforeProcedureRegisters_RDSEED_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  PrintN("+Chr(34)+"Finished"+Chr(34)+")"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !JMP QWORD StartStabilizer"
Debug "  CloseConsole()"
Debug "EndIf"
Debug "Sleep_(0)"
Debug "End"
CallDebugger
End

コード:

Macro MajiorityBuild_Tunes_2

ForEach Buffer()
  If FindString(Buffer(), "PureBasicStart:")
    ; 1
    BeforeProcedureRegisters_CRC32_BLSR
    BeforeProcedureRegisters_RDSEED_BLSR
    ; 2
    BeforeProcedureRegisters_CRC32_BLSR
    BeforeProcedureRegisters_RDSEED_BLSR
    ; 3
    BeforeProcedureRegisters_CRC32_BLSR
    BeforeProcedureRegisters_RDSEED_BLSR
    ;
    
    Break
  EndIf
Next
EndMacro

Macro MajiorityBuild_Tunes_6
  ForEach Buffer()
    If FindString(Buffer(), " SUB    rsp,") And Val(StringField(Buffer(), 2, ","))>0
      Sub_pos = 0 : Sub_max =0
      Sub_max = Val(StringField(Buffer(), 2, ","))
      Buffer() = ""
      MOV_Rsp_Up_Down
      For Sub_pos=1 To Sub_max
        AddElement(Buffer()) : Buffer() = "DEC rsp" ; Sub
      Next
      MOV_Rsp_Up_Down
    EndIf
  Next
  ForEach Buffer()
    If FindString(Buffer(), " ADD    rsp,") And Val(StringField(Buffer(), 2, ","))>0
      Add_max = 0 : Add_pos = 0
      Add_max = Val(StringField(Buffer(), 2, ","))
      Buffer() = ""
      MOV_Rsp_Up_Down
      For Add_pos=1 To Add_max
        AddElement(Buffer()) : Buffer() = "INC rsp" ; Add
      Next
      MOV_Rsp_Up_Down
    EndIf
  Next
  ForEach Buffer()
    If FindString(Buffer(), "PUSH ")
      If FindString(Buffer(), "rax")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_Rax_Up_Down
      ElseIf  FindString(Buffer(), "rbx")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_Rbp_Up_Down
      ElseIf  FindString(Buffer(), "rcx")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_Rcx_Up_Down
      ElseIf  FindString(Buffer(), "rdx")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_Rdx_Up_Down
      ElseIf  FindString(Buffer(), "rsi")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_Rsi_Up_Down
      ElseIf  FindString(Buffer(), "rbp")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_Rbp_Up_Down
        ;     ElseIf  FindString(Buffer(), "rsp")
        ;       MOV_Rsp_Rsp_Up_Down
      ElseIf  FindString(Buffer(), "rdi")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_Rdi_Up_Down
      ElseIf  FindString(Buffer(), "r8")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R8_Up_Down
      ElseIf  FindString(Buffer(), "r9")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R9_Up_Down
      ElseIf  FindString(Buffer(), "r10")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R10_Up_Down
      ElseIf  FindString(Buffer(), "r11")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R11_Up_Down
      ElseIf  FindString(Buffer(), "r12")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R12_Up_Down
      ElseIf  FindString(Buffer(), "r13")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R13_Up_Down
      ElseIf  FindString(Buffer(), "r14")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R14_Up_Down
      ElseIf  FindString(Buffer(), "r15")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        MOV_R15_Up_Down
      Else
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
      EndIf
      NextElement(Buffer())
      MOV_Rsp_Up_Down
    EndIf
  Next
  ForEach Buffer()
    If FindString(Buffer(), "POP ")
      If FindString(Buffer(), "rax")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_Rax_Up_Down
      ElseIf  FindString(Buffer(), "rbx")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_Rbp_Up_Down
      ElseIf  FindString(Buffer(), "rcx")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_Rcx_Up_Down
      ElseIf  FindString(Buffer(), "rdx")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_Rdx_Up_Down
      ElseIf  FindString(Buffer(), "rsi")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_Rsi_Up_Down
      ElseIf  FindString(Buffer(), "rbp")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_Rbp_Up_Down
        ;     ElseIf  FindString(Buffer(), "rsp")
        ;       MOV_Rsp_Rsp_Up_Down
      ElseIf  FindString(Buffer(), "rdi")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_Rdi_Up_Down
      ElseIf  FindString(Buffer(), "r8")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R8_Up_Down
      ElseIf  FindString(Buffer(), "r9")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R9_Up_Down
      ElseIf  FindString(Buffer(), "r10")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R10_Up_Down
      ElseIf  FindString(Buffer(), "r11")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R11_Up_Down
      ElseIf  FindString(Buffer(), "r12")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R12_Up_Down
      ElseIf  FindString(Buffer(), "r13")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R13_Up_Down
      ElseIf  FindString(Buffer(), "r14")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R14_Up_Down
      ElseIf  FindString(Buffer(), "r15")
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
        MOV_R15_Up_Down
      Else
        PreviousElement(Buffer())
        MOV_Rsp_Up_Down
        NextElement(Buffer())
      EndIf
      MOV_Rsp_Up_Down
    EndIf
  Next
EndMacro

;- MC build
; MajiorityBuild_Tunes_Open
If ReadFile(2, #SourcePath1+"PureBasic.asm")
  While Eof(2)=0
    AddElement(Buffer())
    Buffer() = ReadString(2)
  Wend
  CloseFile(2)
EndIf
CallDebugger
; _Tunes_Open
MajiorityBuild_Tunes_2
MajiorityBuild_Tunes_6
; MajiorityBuild_Tunes_Write
If CreateFile(2, #SourcePath1+"PureBasic.asm")
  ForEach Buffer()
    WriteStringN(2, Buffer())
  Next
  FlushFileBuffers(2)
  CloseFile(2)
EndIf
; CallDebugger
DeleteFile(#SourcePath1+"PureBasic.asm")
DeleteFile(#SourcePath1+"PureBasic.exe")

Linux のカーネル起動処理において、MajiorityBuild_Tunes_2 を実行すると、それだけで高級仕様のワークステーションに迫る性能になると思っている。今回は CRC32 Rax, QWORD [Rip] とある内容は、次の命令アドレスにあるプログラムのメモリーを参照して Rax へCRC32演算後にセット、この問題点は SSD や RAM の性能が悪いと、意図した結果は出ないと思う。

オフライン

 

#43 2024-04-06 08:43:58

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

上記の内容を投稿後、30分ぐらいか「おい、それ全書籍を買うといくらか、書いとけ」と声がする。

オライリー BOOK について、エリアを選択して MIFES へコピペします。
MIFES では 空白を TAB へ置換します。それをコピーします。
表計算プログラムで「コピペ」して、列が乱れた行だけ TAB を空白へ変更

表計算でセル選択後、合計金額を計算すれば、
オライリー全書籍 ALL BOOKS、1,445,950円になりました。

「いいよ、悟空ゴー!」 と覚えておけばいいらしい。

オフライン

 

#44 2024-04-11 14:13:39

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

MajiorityCamisole 168 のソースコードを下記に示す。
Linux API で使用される引数レジスタへ変更、Rcx → Rdi だったかな
WindowsAPI Sleep_ ではなく、PureBasic PB_Delay へ変更したら動作すると思う。

168 と 169 の差は、長周期か短周期か、それで異なっており、短周期はアニメ用、
長周期はオーディオ用、複数起動の場合は高級環境では良くなる傾向があるという。
通常は MajiorityCamisole 168 で十分と判断していますが、音の比較では 169 で行う。

*FXSAVE *FXSAVE2 のバッファ初期化は「ループしない処理」へ意図的に書いた。
「ループする処理」にすると品質悪化するので注意しなければならない。

ジャンプして命令アドレスが変更されるとマイクロコード変換の再確認が行われる。
再確認のCPU処理は「オーバークロック」で行われる。CPU電圧は上昇する。
CPU電圧は上昇と下降を繰り返すと、それでデジタルジッターとなる。

もっと高品質に動作させたいなら、「ループしない処理」にすれば解決する。
音楽再生ソフトの Nontallion でも「ループしない処理」にすれば音質改善する。
要求されるバッファLengthに応じて Galaxy100 のような処理で良くなるけど・・・
ASIOproc() のスレッド処理が想定外に巨大化すると負荷制御できない環境で困る。

100万行の計算プログラムを「下記のような手法」で作成して実行したら、
0.001 秒未満しか掛からない。マイクロコード変換する時に計算されてしまい、
実行時間は不明という状態になるので、100万行ぐらいなら気にしなくていい。

コード:

Debug "; MajiorityCamisole 168 (2023 04 11)"
Debug "; RDSEED CRC32 BLSRx64 BZHI CPU reg. Stabilizer from JAPAN"
Debug "; Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)"
Debug "; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)"
Debug ""
Debug "MessageRequester("+Chr(34)+"END"+Chr(34)+","+Chr(34)+"Compiler options Executable Format Console And CPU With MMX"+Chr(34)+") : End"
Debug ""
!extrn PB_RandomSeed

Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R9" : AddElement(Reg64A()) : Reg64A() ="R11"
AddElement(Reg64A()) : Reg64A() ="R13" : AddElement(Reg64A()) : Reg64A() ="R15"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R8" : AddElement(Reg64B()) : Reg64B() ="R10"
AddElement(Reg64B()) : Reg64B() ="R12" : AddElement(Reg64B()) : Reg64B() ="R14"

!RDRAND Rcx
!CALL QWORD PB_RandomSeed
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

ForEach Reg64()
  Debug "Macro BLSR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !BLSR "+Reg64()+", "+Reg64()
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro SHR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !SHR "+Reg64()+", 1"
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro MOV_"+Reg64()+"_Up_Down"
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  Debug "  !MOV "+Reg64()+", "+Reg64()
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  Debug "EndMacro"
  Debug ""
Next

Debug "Macro Set_CL1"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  ; cx = 1"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL8"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 8"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL64"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 64"
Debug "EndMacro"
Debug ""
Debug "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  BLSR_Rcx_x64"
Debug "  Set_CL1"
Debug "  MOVZX_Rcx"
Debug "  !MOVQ mm1, Rcx"
For Loop=1 To 16
  Debug "  !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift"
Next
Debug "  !MOVQ mm0, mm1"
For Roop=1 To 7
  For Loop=1 To 16
    Debug "  !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift"
  Next
Next
Debug "EndMacro"
Debug ""

Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
EndMacro

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

Macro BeforeProcedureRegisters_1st
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64A() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64A() : Loop + 1 : Next
 EndMacro
 
Macro BeforeProcedureRegisters_2nd
  Loop=0
  ForEach Reg64A() : Debug "  !MOVQ "+Reg64A()+", mm"+Str(Loop) : Loop + 1 : Next
  ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Debug "  ;"
  ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64B() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64B() : Loop + 1 : Next
EndMacro

Macro BeforeProcedureRegisters_3rd
  Loop=0
  ForEach Reg64B() : Debug "  !MOVQ "+Reg64B()+", mm"+Str(Loop) : Loop + 1 : Next
  ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Debug "  !EMMS"
EndMacro
  
Macro BeforeProcedureRegisters_RDSEED_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64A()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64B()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !CRC32 "+Reg64A()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !CRC32 "+Reg64B()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_RDSEED_SHR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64A()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  SHR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64B()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  SHR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Debug "  Global *FXSAVE, *FXSAVE2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC cl"
Debug "  !INC R8b"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  !MOVNTI QWORD [p_FXSAVE], Rax"
Debug "  !NOP QWORD [p_FXSAVE]"
;  "*FXSAVE = AllocateMemory(512,1)"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE]"
For Loop=0 To 512 Step 8
  Debug "  !MOVQ QWORD [R8+"+Str(Loop)+"], mm5"
Next
Debug "  !EMMS"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC cl"
Debug "  !INC R8b"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  !MOVNTI QWORD [p_FXSAVE2], Rax"
Debug "  !NOP QWORD [p_FXSAVE2]"
;  "*FXSAVE = AllocateMemory(512,1)"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE2]"
For Loop=0 To 512 Step 8
  Debug "  !MOVQ QWORD [R8+"+Str(Loop)+"], mm5"
Next
Debug "  !EMMS"

Macro FXSAVE
  Debug "  !MOV R8, QWORD [p_FXSAVE]"
  Debug "  !FXSAVE64 [R8]"
EndMacro

Macro FXRSTOR
Debug "    !MOV R8, QWORD [p_FXSAVE] "
Debug "    !FXRSTOR64 [R8]"
EndMacro

;- Start
Debug ";- PureBasicStart"
BeforeProcedureRegisters_RDSEED_SHR
Debug "If OpenConsole("+Chr(34)+"MajiorityCamisole 168 setup To General-purpose 64-bit registers."+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa)"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"-"+Chr(34)+")"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !StartStabilizer:"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  PrintN("+Chr(34)+"Setup 1... CRC32 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 2... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 3... Logical to Physical CPU reg. Balancer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"[Loop 29 times] ... Setup + FXSAVE64 sleep_(sine wave) ...[End] FXRSTOR64"+Chr(34)+")"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Global SineWave.i, SineBits.i, SineAngels.i, CountBits.i, CountChk.i
; totalWave = 19,356 ms
For SineAngels=1 To 178 Step 6
  CountChk = 0
  Debug "  ; "+Str(SineAngels)+" Setup"
  BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_RDSEED_BLSR
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  FXSAVE
  Debug "  BLSR_Rcx_x64"
  Debug "  BLSR_R8_x64"
  SineWave = Abs(Round(Sin(Radian(SineAngels))*1000, #PB_Round_Nearest))
  !MOV Rax, [v_SineWave]
  !MOV R8, Rax
  !MOV [v_SineBits], R8
  Debug "; "+Str(SineWave)
  totalWave.i + SineWave
  Debug  "  !INC cl"
  For CountBits=63 To 1 Step -1
    If SineBits&(2<<CountBits)
      CountChk+1
      Debug  "  !INC R8b"
      Debug  "  !SHL R8, cl"
    ElseIf CountChk
      Debug  "  !SHL R8, cl"
    EndIf  
  Next
  If SineBits&2
    Debug  "  !INC R8b"
    Debug  "  !SHL R8, cl"
  Else
    Debug  "  !SHL R8, cl"
  EndIf  
  If SineBits&1
    Debug  "  !INC R8b"
  EndIf
  Debug "  !XCHG Rcx, R8"
  Debug "  !NOP QWORD [Rip+16]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !CALL QWORD Sleep"
  Debug "  !NOP QWORD [Rip-32]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  !RDRAND Rcx
  !CALL QWORD PB_RandomSeed
  RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
Next
SortList(Reg64(), #PB_Sort_Ascending)
SortList(Reg64A(), #PB_Sort_Ascending)
SortList(Reg64B(), #PB_Sort_Ascending)
BeforeProcedureRegisters_CRC32_BLSR
BeforeProcedureRegisters_RDSEED_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
FXRSTOR
Debug "  Swap *FXSAVE2, *FXSAVE"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE]"
For Loop=0 To 512 Step 8
  Debug "  !MOVQ QWORD [R8+"+Str(Loop)+"], mm5"
Next
Debug "  !EMMS"
Debug "  PrintN("+Chr(34)+"Finished"+Chr(34)+")"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !JMP QWORD StartStabilizer"
Debug "  CloseConsole()"
Debug "EndIf"
Debug "Sleep_(0)"
Debug "AllocateMemory(0,0)"
Debug "End"
CallDebugger
End

FXSAVE FXRSTOR による方法は今では使われていないようで、CPUのバーンインが必要でした。
FXSAVE を試して良くなって、FXSAVE64 で悪くなって、FXSAVE へ戻すと悪くなった場合、
その部分だけ 32ビット状態のまま でバーンインされていたと考えられ、FXSAVE64 で変化した。
168 使用後は FXSAVE64 FXRSTOR64 でなければ、ジッター現象になります。
厳密なジッターを測定している環境では、この件について注意してください。

オフライン

 

#45 2024-04-11 17:07:48

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

AllocateMemory(512) では (R8+512) となれば、メモリエラー

コード:

; 間違えた処理
For Loop=0 To 512 Step 8
  Debug "  !MOVQ QWORD [R8+"+Str(Loop)+"], mm5"
Next

;正しい処理
For Loop=0 To 511 Step 8
  Debug "  !MOVQ QWORD [R8+"+Str(Loop)+"], mm5"
Next

オフライン

 

#46 2024-08-17 10:24:16

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

こんにちは、アニメの表示について限界突破したので、手法を部分公開します。
32ビット esp の初期化について、「神社のおつげ」を聞いて対応、さらに工夫しています。
ありえないぐらい高画質のアニメ視聴を実現すれば、映画業界や放送業界は「書いて!」という状況へ

最近、このフォーラムへ情報共有を行うことに迷いがありました。けれど、隣町の豊田市へ行くと「明らかにおかしい街の様子」になっており、今までテレビなどで登場した最高幹部が子どもの姿で現れて、センチュリーの模範的説明をしている状況があったりして、ここまでするって、つまり「子どもの対応」を求められているのかな、と決断を迫られていた。それでも、十分に時間をかけて状況を見守っており、準備はできたのだろうか?と試しの目立つ行動をしてみて、突発的な判断ミスが起きないように迫った。

Ubuntuフォーラムに対しては、完全なソースコードの情報公開はできなくて、部分的に公開する Code snippets になります。この方法を誤った判断で「必要処理」を削除すると、パソコンを数秒で破壊する処理になると判明しており、今まで「大丈夫か?」と足踏みを繰り返して「業界ストップ」を期待していた。しかし、業界対応は「隠蔽」を選んでおり、いつでも「悪の勢力」を潰せる機能は残しておきたいのだろう、なんでか知らないけれど、ゲーム機において容認され、CPU設計は変更しない、その方針を確かめた。ゲーム機では PS4 Tower of Fantasy において、60 fps では従来の 120fps に感じるぐらいに反応速度の改善が行われており、使っているか分からないが、命令キャッシュの正しい使用法を理解していれば、使っていいみたいだ。

この活動を通して分かることは、短い処理コードにすると「強制マルウェア処理」になってしまい、実行できない状態になるということ。開発環境では動作しても、ユーザー環境では動作しない、または「ウイルスデータベースへ強制登録」になっている。短い処理コードは「軍事転用できる危険な処理」と判断して、できるだけ冗長化して記述しなければならない。それから、なぜCPUはクロック制御が必要なのか、それを考えていくと、表向きの処理と、監視する処理と、同時に実行されていないと不審な結果に対して、正しい判断を得られない。これはOSに依存しないで存在しており、WindowsからUbuntuへ変更しても、逃れる方法は無いと思う。それで Mach カーネルを用いた MacOSX などでは、複雑な処理から実行すると「プロフェッショナル用途に向く」と判断されていたけれど、裏のシステムが高度な人工知能解析を実現するようになれば、Macにする根拠は希薄になってくる。それで独自のCPUを作るようになったけれど、問題点は HDMI インターフェースなど、表示部分について、クラウドストリーミングゲームのように対応した仮想環境技術によって、正しい処理を実現していない可能性があり、私はMac環境やLinux環境への移行は許可されていない。

いま、すごく困っていることは「連絡できない状態」にあり、「最新情報を得られない状態」でもある。それでも、裏のシステムを通じて「最新の改善手法」を伝えられる状況も継続しており、今回は32ビットレジスタの対応について、新しい手法を試している。いま、Windowsでは MajiorityLabyrinth Solution と名称変更して、限界突破技術の無償公開を始めてみれば、PureBasic forum へ MajiorityLabyrinth 2 のソースコードを公開するように声がして、逆らうと困ることが多発するので、完全に公開している。なお、実際に公開しているものは、REASM を用いてビルドプログラムのチューンアップを行っており、これは命令キャッシュを含めるので、研究所の各種ソリューションで不具合を生じるかもしれない。

CPU 13th 14th keep codes some rules.
1. Don't remove "NOP QWORD [Rip] x2 lines" CPU power management brake down
2. Don't remove "XCHG al, ah ... dh, dl , XCHG spl, spl after NOP" same reason
If you can try crush CPU, You should hear CPU fan motor noise. boom ? RESET!
This troubles is not depend 13th 14th only, others Skylake CometLake any crushed

この内容を英語で説明すると責任を生じるので、日本語で説明する。どちらも、NOP とは no operation という説明ですが、主に CPU 命令 キャッシュ や マザーボードの設計用途 に使われており、細かい仕様はネット検索しても見つけられない。上記のルールを無視すれば、処理の実行から「2秒でパソコンが燃える」という環境もあるぐらいで、何を監視しなければならないか、何を注意しないといけないか、細かく説明しておく。

CPU温度モニター は、平均温度を表示しており、急速な温度上昇には対応していない。温度表示を見てから、マザーボードの RESET を押しても、その時点で完全に破損している。CPU ファンクーラーについて、高回転になったか?、騒音を聞いたら RESET を押していないと、10万円以上するマザーボードやCPUは即座に壊れる。ファン設定について、急激な温度上昇に対応していないファン回転数の設定であれば、気付かないまま壊れていく。一般的には、CPU 温度 は 80度 を超えたら、使用不能になると考えていいので、すぐに RESET を押さない人は「オーバークロックの恐怖」を知らない人だろう。「オーバークロックの趣味」は、1分の挑戦で 20万円の部品を壊す、そういう経験がまったくない人は試したらダメだ。

レジスタのグループ分けについて、下記資料から判断した。高品質に動作させようと考える場合、RSPを含むグループを ユーザー専用、CL を含むグループを システム専用、このように設計を最適化すれば、産業用途では使いやすいCPUになると分かっている。定数のセットアップは システム専用 において、CL を使用するジェネレート式にすれば、低雑音処理になるだろう。

コード:

; ; ; ; ; ; ; ; IntelR 64 And IA-32 ArchitecturesSoftware Developer’s Manual
; ; ; ; ; ; ; ; Volume 2 (2A, 2B, 2C, & 2D):Instruction Set Reference, A-Z
; ; ; ; ; ; ; ; Opcode Column in the Instruction Summary Table (Instructions without VEX Prefix)
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; ALNone0AXNone0EAXNone0RAXNone0
; ; ; ; ; ; ; ; DLNone2DXNone2EDXNone2RDXNone2
; ; ; ; ; ; ; ; SPLYes 4SPNone4ESPNone4RSPNone4
; ; ; ; ; ; ; ; SILYes6SINone6ESINone6RSINone6
; ; ; ; ; ; ; ; R8BYes0R8WYes0R8DYes0R8Yes0
; ; ; ; ; ; ; ; R10BYes2R10WYes2R10DYes2R10Yes2
; ; ; ; ; ; ; ; R12BYes4R12WYes4R12DYes4R12Yes4
; ; ; ; ; ; ; ; R14BYes6R14WYes6R14DYes6R14Yes6
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; CLNone1CXNone1ECXNone1RCXNone1
; ; ; ; ; ; ; ; BLNone3BXNone3EBXNone3RBXNone3
; ; ; ; ; ; ; ; BPLYes5BPNone5EBPNone5RBPNone5
; ; ; ; ; ; ; ; DILYes7DINone7EDINone7RDINone7
; ; ; ; ; ; ; ; R9BYes1R9WYes1R9DYes1R9Yes1
; ; ; ; ; ; ; ; R11BYes3R11WYes3R11DYes3R11Yes3
; ; ; ; ; ; ; ; R13BYes5R13WYes5R13DYes5R13Yes5
; ; ; ; ; ; ; ; R15BYes7R15WYes7R15DYes7R15Yes7


Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R8" : AddElement(Reg64A()) : Reg64A() ="R10"
AddElement(Reg64A()) : Reg64A() ="R12" : AddElement(Reg64A()) : Reg64A() ="R14"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R9" : AddElement(Reg64B()) : Reg64B() ="R11"
AddElement(Reg64B()) : Reg64B() ="R13" : AddElement(Reg64B()) : Reg64B() ="R15"

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

ForEach Reg64()
Debug "Macro BLSR_"+Reg64()+"_x64"
For Loop=1 To 64
Debug "  !BLSR "+Reg64()+", "+Reg64()
Next
Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
Debug "EndMacro"
Debug ""
Next

ForEach Reg64()
Debug "Macro SHR_"+Reg64()+"_x64"
For Loop=1 To 64
Debug "  !SHR "+Reg64()+", 1"
Next
Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
Debug "EndMacro"
Debug ""
Next

ForEach Reg64()
Debug "Macro MOV_"+Reg64()+"_Up_Down"
Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
If Len(Reg8(Reg64()))=2
Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
EndIf
Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
Debug "  !MOV "+Reg64()+", "+Reg64()
Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
If Len(Reg8(Reg64()))=2
Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
EndIf
Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
Debug "EndMacro"
Debug ""
Next

Debug "Macro Set_CL1"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  ; cx = 1"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL8"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 8"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL64"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 64"
Debug "EndMacro"
Debug ""
Debug "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  BLSR_Rcx_x64"
Debug "  Set_CL1"
Debug "  MOVZX_Rcx"
Debug "  !MOVQ mm1, Rcx"
For Loop=1 To 16
Debug "  !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift"
Next
Debug "  !MOVQ mm0, mm1"
For Roop=1 To 7
For Loop=1 To 16
Debug "  !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift"
Next
Next
Debug "EndMacro"
Debug ""

Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
EndMacro

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

Macro BeforeProcedureRegisters_1st
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
Loop=0
ForEach Reg64A() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64A() : Loop + 1 : Next
Debug "!MOVQ mm0, mm0"
Debug "!MOVQ mm1, mm1"
Debug "!MOVQ mm2, mm2"
Debug "!MOVQ mm3, mm3"
Debug "!MOVQ mm4, mm4"
Debug "!MOVQ mm5, mm5"
Debug "!MOVQ mm6, mm6"
Debug "!MOVQ mm7, mm7"
EndMacro

Macro BeforeProcedureRegisters_2nd
Loop=0
Debug "!MOVQ mm0, mm0"
Debug "!MOVQ mm1, mm1"
Debug "!MOVQ mm2, mm2"
Debug "!MOVQ mm3, mm3"
Debug "!MOVQ mm4, mm4"
Debug "!MOVQ mm5, mm5"
Debug "!MOVQ mm6, mm6"
Debug "!MOVQ mm7, mm7"
ForEach Reg64A() : Debug "  !MOVQ "+Reg64A()+", mm"+Str(Loop) : Loop + 1 : Next
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
Debug "  ;"
ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
Loop=0
ForEach Reg64B() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64B() : Loop + 1 : Next
Debug "!MOVQ mm0, mm0"
Debug "!MOVQ mm1, mm1"
Debug "!MOVQ mm2, mm2"
Debug "!MOVQ mm3, mm3"
Debug "!MOVQ mm4, mm4"
Debug "!MOVQ mm5, mm5"
Debug "!MOVQ mm6, mm6"
Debug "!MOVQ mm7, mm7"
EndMacro

Macro BeforeProcedureRegisters_3rd
Loop=0
Debug "!MOVQ mm0, mm0"
Debug "!MOVQ mm1, mm1"
Debug "!MOVQ mm2, mm2"
Debug "!MOVQ mm3, mm3"
Debug "!MOVQ mm4, mm4"
Debug "!MOVQ mm5, mm5"
Debug "!MOVQ mm6, mm6"
Debug "!MOVQ mm7, mm7"
ForEach Reg64B() : Debug "  !MOVQ "+Reg64B()+", mm"+Str(Loop) : Loop + 1 : Next
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
Debug "  !EMMS"
EndMacro

Macro BeforeProcedureRegisters_RDSEED_BLSR
BeforeProcedureRegisters_1st
ForEach Reg64A()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !RDSEED "+Reg64A()
Debug "  !NOP QWORD [Rip-36]"
Debug "  BLSR_"+Reg64A()+"_x64"
Next
BeforeProcedureRegisters_2nd
ForEach Reg64B()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !RDSEED "+Reg64B()
Debug "  !NOP QWORD [Rip-36]"
Debug "  BLSR_"+Reg64B()+"_x64"
Next
BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_CRC32_BLSR
BeforeProcedureRegisters_1st
ForEach Reg64A()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CRC32 "+Reg64A()+", QWORD [Rip]"
Debug "  !NOP QWORD [Rip-36]"
Debug "  BLSR_"+Reg64A()+"_x64"
Next
BeforeProcedureRegisters_2nd
ForEach Reg64B()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CRC32 "+Reg64B()+", QWORD [Rip]"
Debug "  !NOP QWORD [Rip-36]"
Debug "  BLSR_"+Reg64B()+"_x64"
Next
BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_MOVBE_BLSR
BeforeProcedureRegisters_1st
ForEach Reg64A()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !MOVBE "+Reg64A()+", QWORD [Rip]"
Debug "  !NOP QWORD [Rip-36]"
Debug "  BLSR_"+Reg64A()+"_x64"
Next
BeforeProcedureRegisters_2nd
ForEach Reg64B()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !MOVBE "+Reg64B()+", QWORD [Rip]"
Debug "  !NOP QWORD [Rip-36]"
Debug "  BLSR_"+Reg64B()+"_x64"
Next
BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_RDSEED_SHR
BeforeProcedureRegisters_1st
ForEach Reg64A()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !RDSEED "+Reg64A()
Debug "  !NOP QWORD [Rip-36]"
Debug "  SHR_"+Reg64A()+"_x64"
Next
BeforeProcedureRegisters_2nd
ForEach Reg64B()
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !RDSEED "+Reg64B()
Debug "  !NOP QWORD [Rip-36]"
Debug "  SHR_"+Reg64B()+"_x64"
Next
BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_NOP_EAX_BLSR
For Loop=1 To 32
Debug "  !BLSR Eax, Eax"
Next
Debug "  !BZHI Eax, Eax, Eax"
For Loop=1 To 64
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP ax"
Debug "  !NOP ax"
Next
For Loop=1 To 64
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP Eax"
Debug "  !NOP Eax"
Next
For Loop=1 To 32
Debug "  !BLSR Eax, Eax"
Next
Debug "  !BZHI Eax, Eax, Eax"
EndMacro

Macro BeforeProcedureRegisters_NOP_ESP_BLSR
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
SIMPLE_MOVE_REGISTERS_Up_and_Down
;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
;   ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
Debug "!MOVQ mm5, Rsp"
Debug "!MOVQ mm5, mm5"
For Loop=1 To 32
Debug "  !BLSR Esp, Esp"
Next
Debug "  !BZHI Esp, Esp, Esp"
For Loop=1 To 64
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP sp"
Debug "  !NOP sp"
Next
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !XCHG bl, bh"
Debug "  !XCHG bh, bl"
Debug "  !XCHG cl, ch"
Debug "  !XCHG ch, cl"
Debug "  !XCHG al, ah"
Debug "  !XCHG ah, al"
Debug "  !XCHG dl, dh"
Debug "  !XCHG dh, dl"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !XCHG spl, spl"
Debug "  !MOVQ mm1, mm5"
Debug "  !MOVQ mm2, mm1"
Debug "  !MOVQ mm3, mm2"
Debug "  !MOVQ mm4, mm3"
Debug "  !MOVQ mm6, mm4"
Debug "  !MOVQ mm7, mm6"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !XCHG al, ah"
Debug "  !XCHG ah, al"
Debug "  !XCHG dl, dh"
Debug "  !XCHG dh, dl"
Debug "  !XCHG bl, bh"
Debug "  !XCHG bh, bl"
Debug "  !XCHG cl, ch"
Debug "  !XCHG ch, cl"
For Loop=1 To 64
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP Esp"
Debug "  !NOP Esp"
Next
For Loop=1 To 32
Debug "  !BLSR Esp, Esp"
Next
Debug "  !BZHI Esp, Esp, Esp"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !MOVQ Rsp, mm7"
Debug "  !EMMS"
EndMacro

Macro FXCACHE
For Loop=0 To 504 Step 8
Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
Next
EndMacro

Macro FXSAVE
;   Debug "  !MOV R8, QWORD [p_FXSAVE]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !FXSAVE64 [R8]"
EndMacro

Macro FXRSTOR
; Debug "    !MOV R8, QWORD [p_FXSAVE] "
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !FXRSTOR64 [R8]"
EndMacro

Macro FXCLEAR_ALL
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
;   Debug "  !MOV R8, QWORD [p_FXSAVE2]"
For Loop=-512 To -8 Step 8
Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
Next
For Loop=0 To 504 Step 8
Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
Next
For Loop=0 To 504 Step 8
Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
Next
For Loop=512 To 1023 Step 8
Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
Next
Debug "  !EMMS"
EndMacro

Macro FXCLEAR_512
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
;   Debug "  !MOV R8, QWORD [p_FXSAVE2]"
For Loop=0 To 504 Step 8
Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
Next
For Loop=0 To 504 Step 8
Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
Next
Debug "  !EMMS"
EndMacro

Debug "  Set_CL64"
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CALL QWORD Sleep"
Debug "  !NOP QWORD [Rip-32]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"

Debug "  Global *FXSAVE, *FXSAVE2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !SHL R8, cl" ; 16,384
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL R8, cl" ; 8,192
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !MOV al, al"
Debug "  !MOV ah, ah"
Debug "  !MOV ax, ax"
Debug "  !MOV Rax, Rax"
Debug "  !ADD Rax, R8"
Debug "  !MOVNTI QWORD [p_FXSAVE], Rax"
Debug "  !NOP QWORD [p_FXSAVE]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE]"
FXCLEAR_ALL
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !SHL R8, cl" ; 16,384
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL R8, cl" ; 8,192
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !MOV al, al"
Debug "  !MOV ah, ah"
Debug "  !MOV ax, ax"
Debug "  !MOV Rax, Rax"
Debug "  !ADD Rax, R8"
Debug "  !MOVNTI QWORD [p_FXSAVE2], Rax"
Debug "  !NOP QWORD [p_FXSAVE2]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE2]"
FXCLEAR_ALL

BeforeProcedureRegisters_RDSEED_SHR
SIMPLE_MOVE_REGISTERS_Up_and_Down
BeforeProcedureRegisters_NOP_EAX_BLSR
BeforeProcedureRegisters_NOP_ESP_BLSR
BeforeProcedureRegisters_MOVBE_BLSR
BeforeProcedureRegisters_CRC32_BLSR
BeforeProcedureRegisters_RDSEED_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "    !MOV R8, QWORD [p_FXSAVE] "
FXCACHE
FXSAVE
FXCACHE

オフライン

 

#47 2024-09-21 04:13:57

oryaaaaa
メンバ
From: Aichi, Japan
登録日: 2006-10-31

Re: MajiorityClean LE36 オーディオビジュアル用 for Intel x64

Ubuntu Japanse forum は技術解説を書く場所
PureBasic English forum はソースコード公開
My homepage は作例公開、代行開発は?億円以上

Ubuntu 向けには技術解説をするのは都合良いみたいで、限界突破技術の先鋒になってしまってる現在、
当てずっぽうでよいので解説を願うとか、技術根拠の証明は後回しで良いという。
そういう前提で書いていくので、突っ込まれても返答できんよ。
学術インターネットのメーリングリストで議論されたら良いと思う。

Intel CPU の問題点、16ビットから32ビットへ移行した際に、
デジタルジッターの存在に気付いても、誰もそこへスポットライトを当てて議論することはなかった。

日本の Yahoo ブログ では、
先端技術の研究開発に都合良いテーマを数百人規模で情報共有していたけれど、
Softbank社長は「不要」と判断して、おそらく数千億円の情報商材は消滅したという。そ
れで日本はさらなる不況へ陥っていった。
Softbankは日本の未来を考えていない、それを承認した国土交通省は外国の政府ではないのか?

音楽アプリ開発、データ操作

16ビット CPU
MOV Rax, [Sound Data variables] INT 16

32ビット CPU
MOVQ mm0, [Sound Data variables] FLOAT 32
MOVQ xmm0, [Sound Data variables] FLOAT 32
MOVQ [Sound Data variables], mm0 FLOAT 32
MOVQ [Sound Data variables], xmm0 FLOAT 32
MOV Rax, [Sound Data variables] INT 16

64ビット CPU
MOVQ mm0, [Sound Data variables] FLOAT 32
MOVQ Rax, mm0 FLOAT 32

このように変化している。何が問題になったのか?
オーバークロック愛好家では当たり前の常識として、
SSE命令は少し動作周波数が高い、動作電圧が高い、この問題を把握していた。
CPUレジスタで電圧差が生じても動作は問題ないという確認は、
途方もないテストの繰り返しで実現したと考えられる。
問題となったのは、デジタル出力した後工程にて、ジッター現象によるデータ異常の発生である。

データ異常の発生について、仮説
SCREEN カラープルーフ製品について、
正しい色管理を実現できると宣伝はしていたけれど、その科学的根拠は捏造であった。
初期のカラープルーフ製品は、
CMYK 8ビット 10ステップ イコライザー という調整によって、
直感調整に依存しており、正しいカラープルーフが出来ているという宣伝は間違っていた。

グレタグの高精度分光器が発売されると、
その絶対色座標を根拠に、CMYK LUT を使って、RGB to CMYK や CMYK to CTP color の
高精度調整は可能になった。しかし、高精度を維持する方法については「金目の情報」とされて、
SCREEN社内機密になっており、実際に技術指導する現場には伝えられなかった。

高精度に維持する方法
グレタグの高精度分光器は、ホワイトキャリブレーションを必要としており、
その白基準器は有効期限2年で4万円以上していた。
SCREEN社内で白基準器は「室内ダストで汚れても、汚れたまま」で運用されており、
印刷会社から1回10万円以上で受注した印刷プロファイルは
「汚れた白基準でホワイトキャリブレーション」していたので、
初期のカラープルーフ製品から「少し良い製品」という状態でも、誰もトラブルに気付かない。

私はグラフィック・アーツ・テクニカル・ファンデーションである
GATF カラーマッチング技術書を英語の原文で理解していたので、
SCREENへ問い合わせた時、私の技術理解に追いつけない状態になっていて、
これは社内機密でも異常すぎる状態になっていたのか、
知りすぎていた原因で、退職になるよう仕向けられたか。

印刷プロファイルの納品が多くなってきて、カラーマッチングできていないと分かった時、
「白基準は汚れていませんか、色温度が全体的にずれています。
それから白基準器の有効期限は2年ですので、交換が必要かもしれません」とSCREENへ伝えたら、
後日「白基準器が汚れていた」と連絡ありました。

カラーマッチングの技術書は、当時、日本語でもあったけれど、
それは何を基準に説明しているのか、意味不明の内容でした。
正確だったのは GATF 英語技術書 1997年で 1万円から2万円 のものです。
その内容を SCREEN 担当者は理解していなかったと考えられ、
社内機密ではなく、技術者不在によるトラブルと思う。

このようにカラーマッチングは宣伝とは逆に、
運用についてはSCREENでも情報共有されていない悪魔の商材になっていた。
この状態であったのに、新しい32ビットCPUでは
「ブラウン管キャリブレートモニター SONY」が運用に適切と、印刷業界で常識になっていった。
しかし、完全にカラーマッチングできていたのは、
「ブラウン管キャリブレートモニター Barco」だけだった。
その価格差は SONY 30万円、Barco 100万円、
これでは色が正しいのか、判断できない物が業界では使われていた。

この色情報管理技術は解説する技術書について、正しく記述されていない事が多く、
日本と米国で「赤色」は異なっている点には触れられていない。
日本・米国・独国、それぞれ印刷における高精度分光器の絶対基準は異なっており、
完全に理解していないと、アニメの色は正確にカラーマッチングした制作環境を実現できない。

だいたい、こんな感じ、
SCREEN に聞いても「そうでっか、しりまへん」
それでも書く理由、過去の担当者は「助けて!」

どこに問題があったのか?
CPUキャッシュについて、DWORD QWORD の取り扱いでは、ジッターの問題は無かった。
WORD の取り扱いについて、
インテルでは 16ビット CPU で CPUキャッシュ が存在しないという理由で、
内部設計の対象外になっていた、と思われる。

WORDクリア方法

コード:

Macro FX_WORD_REVERSE
  For Loop=-512 To 1022 Step 2
    Debug "  !NOP WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
  For Loop=-512 To 1022 Step 2
    Debug "  !NOT WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next
  For Loop=-512 To 1022 Step 2
    Debug "  !NOP WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
EndMacro

Macro FX_DWORD_REVERSE
  For Loop=-512 To 1020 Step 4
    Debug "  !NOP DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
  For Loop=-512 To 1020 Step 4
    Debug "  !NOT DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next
  For Loop=-512 To 1020 Step 4
    Debug "  !NOP DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
EndMacro

Macro FX_QWORD_REVERSE
  For Loop=-512 To 1016 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
  For Loop=-512 To 1016 Step 8
    Debug "  !NOT QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next
  For Loop=-512 To 1016 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
EndMacro

Macro FXCLEAR_ALL
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ;   Debug "  !MOV R8, QWORD [p_FXSAVE2]"
  For Loop=-512 To -8 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
  For Loop=512 To 1016 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  Debug "  !EMMS"
EndMacro

FXCLEAR_ALL
FX_WORD_REVERSE
FXCLEAR_ALL
FX_DWORD_REVERSE
FXCLEAR_ALL
FX_QWORD_REVERSE
FXCLEAR_ALL

途中 FNOP 2行 を不審に思うだろう。
これは実行された時に「動作周波数を半分へ変更」するテクニックで、
オーバークロックされても「動作できる」というもの。

将来、FPU MMX を設計から除外して作ったら、クロックダウン処理を実現できず、
脆弱性を回避する手法が存在できなくなる。
ARM CPU で、クロックダウン命令を明記していれば、
Intel CPU の代わりになるだろうけれど、
現在はクロックダウン命令は無いので、電気自動車などの採用に向かない。

この WORD 処理によって、CPUキャッシュ WORD 初期化は実行できたと考えられる。
私のホームページで公開している作例は、アニメの表示品質をさらに改善して、
音楽再生ソフトは世界最強の位置にいるだろうと思わせる。
だから、代行開発を頼まれたソフトハウスは「数億円以上」を請求して当たり前なのだ。

いま、SCREEN 在籍時 株価 368円でした。現在は 20倍以上に高騰しています。
しかし、私の年収は SCREEN 退職後から 0円 を維持しています。

これでいいのだぁぁぁぁぁ!! (筋肉少女帯)
これでは結婚できんぞ

オフライン

 

Board footer

Powered by FluxBB