テーマ:MinGW

債:MinGWでのmsvcr80.dll使用。

MinGW/gcc 4.5.2 x86(TDM build)+MinGW RT3.18 を前提に、列挙。 TDM buildのx64も考慮する 1)gcc -dumpspecs >foobar でspcesを書き出す。 2)(1)のfoobar内の、-lmsvcrtを -lmsvcrNN、-lmoldnameを -l…
トラックバック:0
コメント:0

続きを読むread more

後からのLargeAddressAware

 既存の32bitアプリで/3GBやwow64の恩恵(2GB越えのメモリ)を得る為のフラグ、LargeAddressAware。  ソースがあるならリンクオプションで指定するのが筋だけど、ソースがあっても必ず/簡単にコンパイルに成功するとは限らない本末転倒な世界だし、設定は楽に出来る方がいい。  んで、exeのPEヘッダをバイナ…
トラックバック:0
コメント:0

続きを読むread more

SSEでのFloat→Doubleキャスト

 値個別の場合は選択肢は無いから捨て置く。  __m128(float[4])をDouble[4]にして処理する事を考える。  以下のソース内のDoubleの加算は整数向けの処理(Shuffle_epi)をした後に浮動小数処理をした場合にどうなるかを見る為。  f2は、そのままではmovhlpsに先立ってxmmレジスタの初…
トラックバック:0
コメント:0

続きを読むread more

アライメント無視の無配慮なStore/Load

以前書いたもの(http://fault0d.at.webry.info/201012/article_1.html) アライメントがどうなっているかを配慮しないStore/Loadが強行される件。 一応、-O1の時は発症しない。 で、-O2場合は、 -O2 -fno-gcse -fno-cse-follow-jumps とす…
トラックバック:0
コメント:0

続きを読むread more

MinGWとSSEとイントリンシック

イントリンシック関係メモ。 -O2最適化前提。 ○宣言&初期値指定は構造体みたい出来る。 但し、intに対して4要素指定は出来ない?(warning)  ok: __m128d xmm={ n,n }; __m128 xmm={ n,n,n,n }; __m128i xmm={ n,n };  ng: __m128i xmm=…
トラックバック:1
コメント:0

続きを読むread more

MinGWとSSEとアライメント

実行されるプログラムを首尾一貫して自身で用意する場合は最低限のお約束だけであまり気にしないでもよさげ。 A)最低条件:、 1)変数は int f __attribute__((aligned(16)));のように確保。 2)メモリブロックの確保は _aligned_malloc(n,16)/_aligned_free(…
トラックバック:0
コメント:0

続きを読むread more

文字種判定処理、is~()

ctype.hのisupperとかisdigitとかのメモ。 マルチバイト関係は無視。1byte前提。  基本的な動作は、文字と対になるbyteの配列を参照する(msvcrtの_pctype[]はshortの配列ぽい)。  byteにはビットフラグとしてbit数分だけ種別を格納出来る(ビットマスクで取り出せる)、と。  as…
トラックバック:0
コメント:0

続きを読むread more

MinGWでBulletライブラリのコンパイル

メモ(・з・)  取りあえず、bullet(http://bulletphysics.org/wordpress/)のソースと、cmake(http://www.cmake.org/)を貰ってくる。  BulletとCMakeを適当に解凍。  CMake-GUIでBulletのcmakeLists.txtを開く。  対象をM…
トラックバック:0
コメント:0

続きを読むread more

MinGWとDLLとManifest埋め込み

 VCのIDEでやってれば縁の無い話。 MSVCRT.dllで済む場合も気にしないで善し。  VCのコマンドラインでやるならマニュアル嫁。  MSVCR80.dllやMSVCR90.dllはMSVCRTやMSVCR7xみたいに勝手にインポートさせてくれない。  夜鷹とのちょんの間幾らという気楽さは無く、店に入ってきっちり指名し…
トラックバック:1
コメント:0

続きを読むread more

MinGWRT 3.16/3.17・・・('A`)

 久々にSourceForgeを見たらMinGWRT 3.17が出てた。 今までは3.15-2を使ってた。  Win32APIも3.14になってたり、BinUtilsやMakeもVerUpしてた。  で、とある簡素なプラグインをコンパイルしてみたら、こんなんだったのが、 The Import Tables (interpret…
トラックバック:0
コメント:0

続きを読むread more

WIN環境のMinGWとsnprintf

 とりあえず、snprintf()を使うとMinGWのライブラリから静的リンクされる(ファイルが太る)。  んで、戻り値がC99に適ってない気がする( gcc 3.4.5-3(1のcc1)、rt 3.15.2、win32api 3.13 )。  char dst[10];  char src[] = 10byteの文字列; …
トラックバック:0
コメント:0

続きを読むread more

最適化オンルベツ

 LW9.xで問題無いPivotRotHelperがLW75/85で即死するようになってた。  msgFuncで何処で落ちてるのか確認するも、落ちてる所に怪しいところは無し。  Dr.Watsonのログを見るとUSER32との絡みでframe云々と書いて有るけど意味わかんねぇ(;・з・) if(LW9) foo(c); el…
トラックバック:0
コメント:0

続きを読むread more

本末転倒極めり(゚д゚)クワッ lightwave用プラグインをMinGWで作る。その導入。

なんか無性に、入れたい;;´д`) 作りたい;;´д`)ハァハァ となったのでLWのプラグインDLLを作れる環境を整えてみよう、と。 まず、VC++2005無料版+SP1+W32用Lib(?)を1G分DLした後に、UnrealはMinGWだったしプラグイン用ならそれで十分じゃね?とMinGWを導入(゜∀゜) 大規模な支援LIBやI…
トラックバック:0
コメント:0

続きを読むread more