1です。gcc3.0がでたけどどうよ。このコンパイラ。最適化能力とか。
2 :
デフォルトの名無しさん:2001/06/21(木) 16:45
2です。javaのコンパイルもできるの?
3です。できません
4 :
デフォルトの名無しさん:2001/06/21(木) 16:46
3です。vbのコンパイルもできるの?
5 :
デフォルトの名無しさん:2001/06/21(木) 16:46
4です。仮称です。
6です。vbできません
7 :
デフォルトの名無しさん:2001/06/21(木) 17:02
7です。名スレの予感。
8です。HSPのコンパイルもできるの?
9 :
デフォルトの名無しさん:2001/06/21(木) 17:11
10です。脱駄スレの兆候
>>2 出来ます。嘘はいけません。
>>4 もちろん出来ます。
>>8 もちろん出来ます。GCCって素晴らしいですね♥
12 :
デフォルトの名無しさん:2001/06/21(木) 17:32
11です。あれ〜?BorlandC++Compiler5.5.1(gcc32.exe)とは違うの?
javaは聞いたことあるけどvbってのはマジか?
vbってVisualBasicだよね?
13です。鬱だ。シノウ。
15です。14でした。鬱ダ。しのう。
16 :
10:2001/06/21(木) 17:40
>vbってVisualBasicだよね?
もちろん♥
GNUの面目躍如だね♥
何故ネタスレになるのだ・・・。
19 :
:2001/06/21(木) 18:04
GCCってなんですか?
VC++じゃできないことができるんですか?
20 :
デフォルトの名無しさん:2001/06/21(木) 18:06
20です。
>>7うっかりしてました。コツン(*_*)
>>19 X6800やTownsやSUNやHPやワンダースワンやPalmやLaputer(笑その他のバイナリが作れます。
22 :
デフォルトの名無しさん:2001/06/21(木) 18:10
22です。Bボタンを押した記憶が蘇りました
>>17
すこし嘘はいってます
24 :
デフォルトの名無しさん:2001/06/21(木) 18:16
GNU/Gun is Not UNIX
UNIXを否定してるんですか?なぜ銃なんですか?
ふりぃーどぅあぁーぅむ
26 :
デフォルトの名無しさん:2001/06/21(木) 18:50
27です。
GUI/GraphicalUserInterface
GDI/GxxxxDxxxIxxxx
詳細お願い
27 :
27:2001/06/21(木) 19:12
27です。俺か!?
28 :
29:2001/06/21(木) 19:40
30です。オレ?
28です。
GDI=Gasoline Direct Injection
ガソリンをシリンダ内に直接噴射する、三菱自動車が世界に誇るエンジンです。
0です。
■[GDI]のデイリー新語辞典からの検索結果
GDI [gender-related development index]
ジェンダー開発指標。男女間の不平等(平均年齢,進学率,賃金格差など)を調節した HDI。
マンコです。
毛か?
カツオです。
姉さん大変だよ!!
34 :
33:2001/06/21(木) 20:21
33です。だれかgccをコンパイルしましたか。
35です。何故ネタスレになってるんだ?
36です。とりあえず、Windowsでコンパイル面倒なオレはcygwin対応待ちです。
37です。Javaのサポートってどんなんよ。
38 :
デフォルトの名無しさん:2001/06/21(木) 20:40
38です。最初に失敗した
Javaのネイティブコード変換!?やったな!親爺。
40です。
40でした。
41です。
ネタスレ化は1のせい。
42 :
1:2001/06/21(木) 22:51
俺のいない間にどうなってんだこのスレはゴルァァァァァ!!!
43です。
記念カキコ。
44 :
デフォルトの名無しさん:2001/06/21(木) 23:09
44です。
今日はもう寝ます。
45 :
デフォルトの名無しさん:2001/06/21(木) 23:11
45です、3日前に2.95.3をコンパイル/インストールしたばかりです
46 :
47:2001/06/21(木) 23:17
48です。このスレ面白すぎです。
48です。
h
ttp:// ring.crl.go.jp/pub/GNU/gcc/gcc-3.0.tar.gz
49です。
よろ49!
50でし。
↑↑↓↓←→←→BA
51 :
g++使い:2001/06/22(金) 00:17
なんかg++のコンパイル激遅くなってないか?
ちょっと萎えるな。
でもネームスペースstdがいい加減だったのが
ちゃんと規格道理namespace stdに封印されていて○。
52 :
デフォルトの名無しさん:2001/06/22(金) 00:17
win版でてんの?
53 :
デフォルトの名無しさん:2001/06/22(金) 00:35
54です。
make 54分経過!
松井です。
今年は55本めざします。
gccの最適化はクソだったらしいけど、ましになったのかね?
57です
ゴーナナ
↓
ゴナー
↓
ゴルァァァァァ
鬱だ氏脳
>>56 x86でVC++などに負けてるだけで元々、糞じゃないかと。
GCCを入れる理由を聞かせてください。煽りじゃないです。
60です。
>>58 VC++の最適化は機知ィです。相手にしてはいけません。
>>59 Windows使いですか?他の環境だと必須ですのよ、おほほほ。あらおかしなおぼっちゃん。
61 :
61:2001/06/22(金) 14:25
61です。
>>59 gcc入れるのはほぼ常識です。標準のccがクソだからです。
63です。gccって何?cygwinも辞書で調べたけど載ってないし。
GNUはありました。
■[GNU]のデイリー新語辞典からの検索結果
gz
[gnu zip]
拡張子の一。圧縮ファイルの形式の一つ。
拡張子だったのですね。
64 :
64:2001/06/22(金) 16:52
65 :
65:2001/06/22(金) 19:00
66 :
デフォルトの名無しさん:2001/06/22(金) 19:04
66です。
gnu
n. (pl. 〜s, 〈集合〉〜) ヌー ((南アフリカ産の,牛に似たカモシカ)).
キグナスです
鎖使います
68 :
デフォルトの名無しさん:2001/06/22(金) 20:36
GNU is Not Unix
Unko is Not Unix
あたりまえだ、ぼけ!
70 :
デフォルトの名無しさん:2001/06/22(金) 21:02
70です。
gccってなんですか?
/^\n+です。/
72です。
>>71 ナニをやりたいのかよくわからんがたぶん/^[0-9]+です。/だろう。
__LINE__です。結局どないやねん。誰ぞレビューすれ。
教えて君です。
英語はわかりません。
% gcj Mona.java
Mona.java :0: unknown encoding: `eucJP'
This might mean that your locale's encoding is not supported
by your system's iconv(3) implementation. If you aren't trying
to use a particular encoding for your input file, try the
`--encoding=UTF-8' option.
compilation terminated.
>>74 % gcj Mona.java
Mona.java :0: 知らんエンコード: `eucJP'
こりゃたぶんあんたんシステムの iconv(3) の実装では見放されているロケールエンコードだな。
もしあんたが入力ファイルに特定のエンコード使いたいんじゃなきゃ、`--encoding=UTF-8' オプションを使っとけ。
コンパイルは終わっとくよ。
76 :
おもしろーい:2001/06/23(土) 00:11
エラーも2ちゃん風だったらええね。
77 :
デフォルトの名無しさん:2001/06/23(土) 01:35
% gcj Mona.java
Mona.java :0: eucJPなんてシラネーヨ
お前のiconv(3)ではサポートされてないぞゴルァ。
どうしても使いたいなら`--encoding=UTF-8' でもつけとけ。
■■■■■コンパイル 終 了■■■■■
78 :
デフォルトの名無しさん:2001/06/23(土) 01:48
% gcj Mona.java
(・∀・)イイ!!
(・∀・)イイ!!
(・∀・)イイ!!
(・∀・)イイ!!
(・∀・)イイ!!
(・∀・)ジサクジエンデシタ
%
79 :
デフォルトの名無しさん:2001/06/23(土) 02:23
早くmingw32でないかなage
2ch語ろけーる まんせー
2c_jp なのか?
jpかどうかは謎だな。
>>78 再帰が深すぎると出るランタイムエラーっすか?>最後の行
81です。gccなに?って2Byte文字でかいてるのは全部ネタですよね?
82 :
まだまだ初心者:2001/06/23(土) 10:26
標準関数の読み方って、なにか決まりがありますか?
strcpy ストリングコピー? エスティーアールコピー? ストルコンプ?
strcmp ストリングコンプ? ストリングコンペア?
熟練プログラマの皆さん方、どう発音されてますか?
83 :
まだまだ初心者:2001/06/23(土) 10:28
申し訳ない。
違うスレに書いちゃった。
よって82は無視してください。
gcc
85 :
デフォルトの名無しさん:2001/06/23(土) 12:09
strcpy → ステアリングコピー
strcmp → ステアリングコンプレックス
strcpy ストゥルクピィ
strcmp ストゥルクンプ
関係無いけど2chシェルとかあったらいいな。
メッセージ変わったtcshみたいに。
88 :
デフォルトの名無しさん:2001/06/23(土) 17:12
89 :
デフォルトの名無しさん:2001/06/23(土) 17:42
89です。
strcpy ストレシッピー
strcmp ストレシップー
strcat ストレシッチー
ってのを提案します。
91 :
デフォルトの名無しさん:2001/06/23(土) 19:20
gccってGTOとなにか関係があるのですか?
>>67 キグナスの技はダイヤモンドダスト。
鎖使うのはアンドロメダだよ。
>>91 グレート・シー・コンパイラ
(グレート・カード・キャプチャーじゃないよ。)
ギコCコンパイラ
く、、、くだらん、、、 これがプログラマーなのか!?
great chinko chimpo
97 :
1:2001/06/24(日) 00:14
1です。すみません、こんなスレにしちまって・・・
いまから黄泉に逝ってきます。
単にネタが無いだけだろ。
What is GCJ?
GCJ is a portable, optimizing, ahead-of-time compiler for the Java Programming Language. It can compile:
Java source code directly to native machine code,
Java source code to Java bytecode (class files),
and Java bytecode to native machine code.
>>99 そりゃしらんかった。
「javacでいいやん」と思っていた疑問が解けた(藁
101 :
デフォルトの名無しさん:2001/06/24(日) 13:32
Javaソースからx86アセンブリコードがそのままでてきたりして
楽しげです。
え、なに?gcc3.0でjavaコードがネエィティブコンパイルできるようになったわけ?
103 :
デフォルトの名無しさん:2001/06/25(月) 00:12
jarのライブラリからスタティックリンクも出来るの?
実行対象マシンにはJRE入ってなくてもいいの?
104 :
デフォルトの名無しさん:2001/06/25(月) 01:12
実行環境に JRE がいるんじゃないかな〜。ネイティブコードじゃ
クラスの動的バインディングとかオブジェクトのシリアライズが
解決できないだろうから。まぁ実効至上主義の G なお方達だから、
いずれ Java のネイティブコンパイラを作るだろうと思っておっ
たが。感想きぼーん。
gcj自体は前からあるのだが・・・・。
106 :
デフォルトの名無しさん:2001/06/25(月) 03:13
ほんま、ネイテブ?
いよいよ java やってみるかな・・・
日本語はOKなのかな?
107 :
デフォルトの名無しさん:2001/06/25(月) 06:26
まぁ必要ならばバイトコードインタプリタもネイティブコードに
リンクできるんだけどね・・・。
108 :
デフォルトの名無しさん:2001/06/25(月) 07:28
>>104 蛇足だが一応。
ネイティブでも動的バインドはできるぞ。
Delが既にやってることだ。
javaと同じくpackageと呼んでいる。
あとシリアライズってネイティブかどうかに関係あるの?
Objectの記憶を(過去と互換性のある形で)Streamとやり取り
できればそれでいいわけでしょ?
コードがネイティブかどうかによって変化するの?
シリアライズと表現したのは悪かった。*.class ファイルの動的
ロード&実行をネイティブコードでどうやって実現すんのか、と
いう疑問でした (Serialized Object って復元時にクラスの
ロードが走るよね)。方法としては JRE に処理させるか、JIT
みたいに適時コンパイルするのか、しか思い浮かばん。
後者だったら現行の JIT と変わりあるんか? ネットワークの
あちこちに分散している *.class ファイルをかき集めて実行
する、なんて、ネイティブでどうやって実現すんのか? なんて
以前から Java ネイティブコンパイラについてちょっと考えて
いた。暇があったらちょっと試そ。
107の言ったとおり、いちおうバイトコードインタプリタをもリンクした
ネイティブコードを出力できるので、バイトコードだろうがネイティブだろうが
実行はできる。JITまでは行かないと思うが。
>>109 >(Serialized Object って復元時にクラスの
>ロードが走るよね)
それ↑は副作用というか直接的な問題じゃないよね。
既に判ってるようだが一応。
そういう仕掛けを「できる」か?といえば、できる。
JavaのInterfaceと同様の情報をどっかに持たせた
ネイティブコードの動的ライブラリファイルを、つくりゃいいんだ。
まぁそれがJava互換である保証は無いが。
というかdelがやった手法はまさにこれ。
以前DDJJに、そういうライブラリファイルをRDBに(藁)つっこんでおく
という恐ろしい試作(思索?)をした人が記事書いていたっけな。
ちと意味は違うが、ruby用にCとかでネイティブライブラリを
書けるわけだけど、あれも事情はちょっと似ている。
要するに、RTTIの問いかけに答える「なんらかの」仕掛けが
あればいいんだ。その実現手段は、極端にいえば、問わぬ。
>あちこちに分散している *.class ファイルをかき集めて実行
>する、なんて、ネイティブでどうやって実現すんのか? なんて
問題はInterfaceだ。Nativeかどうかという実装の面は問題じゃない。
実装の部分はヘッダーに制御されてバイト列としてネットワークを伝わって
くるだけだから(藁
既に判ってるようだが一応。
112 :
デフォルトの名無しさん:2001/07/09(月) 15:38
ld.exe で --section-alignment 16 --file-alignment 16 を付けてリンクすると
出力されたファイルの実行時に「有効な win32 アプリケーションではありません」
と表示されて実行できません。何か解決方法はないですかね?
>>112 そのオプションをつけなければよい。
つけなきゃいけない理由でも?
いや、純正の link.exe 使って /align:16 付ければ済むんですけど
gcc では無理なんかなーと
115 :
#6411:2001/07/16(月) 02:39
>>112 生成されたexecutableを、
objdump --all-headers で眺めてみれば問題解決に一歩近づくと
思われ。
116 :
#6411:2001/07/16(月) 02:52
漏れがg++-1.39とかに触れた頃は不完全なC++で、
2.4くらいの時点でもまだ
Exception not implemented だったような気がする。
未だにgccのexception実装がどうなってるのか理解できて
いないので、-fno-exceptions などとやっている。
鬱だ氏
117 :
#6411:2001/07/16(月) 03:00
さらに教えて君モード。
たとえば、assert(sizeof(int) == 4); などとソース中に
記述したら、コンパイル時に条件が決まっているにも
かかわらず、あぼーんするかどうかは実行時までわかんないと
おもうのだが…コンパイル時に
・式の評価値が定数かどうか判定する
・定数値を評価し、コンパイル時にエラーを報告する
方法はないものだろうか? もちろんgcc環境で。
あ…よく assert(0); なんて表現をソース中にちりばめるな俺。
鬱だ
>>117 #if sizeof(int) != 4
#error hogehoge
#endif
って出来なかったっけ?久しく触ってないので分からん。
sizeofはマクロ条件式内に書けないよ>118
120 :
デフォルトの名無しさん:2001/07/16(月) 09:49
>>119 Turbo C++では出来た気がする
>>117 limits.h使って調べるか、autoconfを使う
121 :
ほげろー:2001/07/16(月) 10:30
いつかは C# のフロントエンドもつくんでしょうか?
ILじゃなくて、ネイティブはくヤツ。
122 :
#6411:2001/07/16(月) 14:37
>>117 式の評価値が定数かどうか判定する
gcc-3.0で調べてみたら、__builtin_constant_p(arg) ってのが
ありました。この目的に使えます。あとは、#error を使用しない
エラー報告の方法考えなきゃ。asm volatile(".err") で妥協するかー。
>>120 limits.h, autoconf に頼れない、standalone の環境で
自己正当性をチェックしたいので、使いたくないのです。
123 :
デフォルトの名無しさん:2001/07/24(火) 12:41
age
124 :
#6411:2001/07/24(火) 16:05
gcc-3.0/gcc/config/i386/i386.c などを覗いてたら、
__builtin_ia32_xxx などという定義があるので、
小躍りしてあれこれ試してみても、成果は得られず。
調べてみたら、configureのレベルでMMX/SSEレジスタを
有効にする方法は、まだ存在してないのね。
というわけで、期待age
125 :
ばかちん:2001/07/26(木) 04:05
G++の言語仕様が解りません
ClassA *cA;
cA=new ClassA[4];
とした場合、cA[0〜3]の4つのClassAが出来、アクセスには
−>ではなく.を使うのでしょうか?
好きな物を選べ
>>125 cA[i].member
(cA+i)->member
(*(cA+i)).member
127 :
ばかちん:2001/07/26(木) 04:45
楽と言うか混乱の元と言うか はにゃーん
ちなみにdeleteする場合はどうなるんでしょうか。
delete cAで0〜3、 delete cA[3]で3だけ逝ってくれたりは
するんでしょうか?
>>127 全部消すのは delete[] cA;
delete cA[3]; は、やってみりゃわかるけどコンパイルとおらない
わよ。
つーか別にg++固有じゃないじゃ
>>125
あ、delete &(cA[3]); も駄目ね。
>>127 混乱の元かなぁ?125=127はJava屋?
あんれー 他のCでもポインタに普通に次元配列な記述でアクセス
出来ましたっけ?
何かぼけてるかも 逝っときます
132 :
デフォルトの名無しさん:2001/07/26(木) 18:32
いまさらながら
かなり嬉しい
>>51 反面、いままで書きなぐったコードをちょこちょこ修正しないといけない
と思われなのは鬱
というわけで逝ってきます。というか入れてきます。
133 :
デフォルトの名無しさん:2001/07/27(金) 05:57
HDLで書いた自作プロセッサ用のコードを
GCCに出力してもらいたいのですが、
どうやればいいのでしょうか?
いいページがあればそちらも教えて下さい。
134 :
デフォルトの名無しさん:2001/07/27(金) 10:25
>>133 東京大学のどこかだったかで授業でやるんじゃなかったかな
136 :
デフォルトの名無しさん:2001/07/28(土) 13:50
自分のホスト名を表示する簡単なプログラムを作ろうと
思ってgcc-2.95.2-crtdll.exeを落としてきたんだけど、
gethostname関数を使ったプログラムをgccでコンパイルすると
undefined reference to `gethostname@8`
とか出てきてコンパイルできないんだけど、なぜなぜ?
環境はWin2000Proです。単純なことだと思うんだけどさっぱり
わからない。。。
>>136 コンパイラはそれでよいとして、使ってるライブラリは正しいか・・・?
>>136 ヘッダファイルをincludeしていません。
ここにくる前に、もっと予習が必要です。
139 :
136:2001/07/28(土) 16:17
winsockではないんでしょうか?コンパイル時に
オプションはなにもつけてません。
winsock.hに
int PASCAL gethostname(char*,int);
っていう記述があったのでOKかと思ったんですが。
↓こんなの。
#include <stdio.h>
#include <winsock.h>
main()
{
int i;
char name[256];
i=gethostname(name,sizeof(name));
printf("%s\n",name);
}
140 :
136:2001/07/28(土) 17:29
自己レス。うまくいきました。
c:\> gcc a.c -lwsock32
でライブラリをちゃんとリンク指定しなきゃ
いけなかったようです。
>>138 @8 なんて見るからにリンカのエラーだろ。
知ったか、カッコ悪い。
142 :
デフォルトの名無しさん:2001/07/31(火) 03:02
Javaのネイティブコード変換...
gcjか。使ってみたいな。
GCC = Ginax is Chimpo Chimpo
猿並みの語彙能力君発見
ジナックスって何?
>>143 スミマセン読み方がわかって意味も分かりました
かなり鬱だ
>>124 後日談。ChangeLogに、
* config/i386/i386.h (TARGET_SWITCHES): Remove -mmmx and -msse options.
とか書いてあるのにもかかわらず、強制的に-mmxを復活させてmake.
$ ./cc1plus -mmmx
<internal>:0: Internal error: Segmentation fault
だそうです。MMX周りのコード氏んでるのかしら。
鬱だ氏のう
148 :
デフォルトの名無しさん:2001/08/06(月) 13:03
&hertes;
150 :
デフォルトの名無しさん:2001/08/06(月) 19:29
151 :
デフォルトの名無しさん:2001/08/08(水) 17:13
JavaとC#の混在萌え
152 :
デフォルトの名無しさん:2001/08/09(木) 01:58
x86-64の対応なんかはどうなんってる?
試した人いるかな?
http://www.x86-64.org/ ここのサイトに置いてあるエミュレータとbinutil+gcc+glibのセット
使った人いたらなんか書いてほしいな。
おれもこれからRedhat6.2入れて試してみるかな。
ここ最近涼しくて海にも行けないから、
パソコンと戯れるしかやることないなぁw
今更6.2すか
結局3.0は使ってええんか?
155 :
デフォルトの名無しさん:2001/08/09(木) 03:13
>>153 あ、一応6.2対応って書いてあったんで(^0^;
ちょうど手元に6.2の英語版のCDROMあるし。。
>>154 自分はgcc3.0はRedHat7.2待ちです。
インストールすんのなんかめんどくさそうだし。
使ってる人ってけっこういるのかな?
試して見たいけど、今の2.95.2に不満ないし。。
大人の夏休みも終わりそうだし、ageとくか。
157 :
6:2001/08/18(土) 05:37
655
158 :
デフォルトの名無しさん:2001/08/18(土) 11:14
gccのメジャーバージョンアップなんて10年に一回ぐらいなのに、
なんか盛り上がりに欠けますな。コンパイラなんて地味なものに
あんまり萌えないからかな。
ところで今回の目玉はItanium対応が挙げられると思うけど、
吐き出されるソースとかってどうなの?あの変(?!)なアーキテクチャ
に最適化するのってスゲー大変そうだとおもうんだけど。
159 :
デフォルトの名無しさん:2001/08/18(土) 11:32
直接gccじゃなくて申し訳ないんだけど・・
gcc developer station って今どこで手に入るのでしょうか?
結構好きなんだけど消えちゃいました。
教えてプリーズ
160 :
♯6411:2001/08/20(月) 02:21
変なアーキテクチャのターゲットを
つくってみて、コンパイル試みるのは
とても暇つぶしになっておもしろい。
漏れは職業柄よく、mips2(変じゃないけど)を
つくって遊んでる。
arm7 thumbのコンパイラは楽しかった。
(ってかくとターゲットマシンが何なのかバレるか?)
161 :
デフォルトの名無しさん:2001/08/21(火) 00:29
>>158 C++がANSIC++フル実装じゃないのに萎えました…
頑張ってくりぃ!手伝う暇はないから(w
Fuckin' Itanium, unuseful!!
163 :
デフォルトの名無しさん:2001/08/21(火) 02:22
arm7 thumbって、codeのアドレスが 1bitずれるんだよなあ。
memory dumbして、何で奇数アドレスになってるんだ! って
いかったものです。
mips16ははけたっけ? (他力本願)
164 :
♯6411:2001/08/21(火) 21:21
gcc-3.0.1が出そうで出ないのでage
出てるのでは?
まだ最寄りのringに現れてねー。
何か変わっただろーか?
3.0.x って、Linuxとかのようにバグフィクスなんだよね?
やっぱ、3.1 snapshotに手を出すべきなのだろーか(わら
167です。age
168 :
デフォルトの名無しさん:01/09/02 14:58 ID:BvDJwJeg
169 :
3.0.1:01/09/02 15:07 ID:BvDJwJeg
170です。
S-Jisが化けるのはどうにかなりませんか?
171 :
デフォルトの名無しさん:01/09/03 01:12 ID:FgOaHWnY
--enable-c-mbchar
172 :
デフォルトの名無しさん:01/09/03 20:00 ID:O.Dgf9MU
俺のIDを見よ!
173 :
172:01/09/03 20:01 ID:O.Dgf9MU
ありゃ? IDが違う。
さっきIDに「gcc」があって驚いたんだけど。
鯖が変わるとIDも変わるのか?
まぬけだ。
>>172 どこでgccになったのかは言えないの〜?
175 :
172:01/09/03 23:46 ID:O.Dgf9MU
176 :
デフォルトの名無しさん:01/09/07 00:56
176です。age
gcc遊び。3.0.1に飽きたらず、currentを取ってくる。
foo.c:
double mac(double a, double x, double y)
{
return a + x * y;
}
$ ./cc1 -O6 -Wall -msse2 -fomit-frame-pointer foo.c
foo.s:
_mac:
subl $12, %esp
movsd 24(%esp), %xmm1
mulsd 32(%esp), %xmm1
addsd 16(%esp), %xmm1
movsd %xmm1, (%esp)
fldl (%esp)
addl $12, %esp
ret
ちなみに手元にPentium4なマシンはない。鬱
さらにgcc-current遊び。
今日はMMX遊びだ。
foo.c:
typedef unsigned long long QI;
typedef unsigned long long __attribute__((mode(V4HI))) V4HI;
V4HI foo(QI x, QI y)
{
return __builtin_ia32_paddw((V4HI)__builtin_ia32_pand(x, y), (V4HI)__builtin_ia32_pxor(x, y));
}
$ ./cc1 -O6 -mmmx -Wall foo.c -fomit-frame-pointer -mpentium
_foo:
movq 8(%esp),%mm5
movq 16(%esp),%mm2
movq %mm5,%mm3
pand %mm2,%mm3
pxor %mm2,%mm5
movq %mm3,%mm4
movq %mm5,%mm1
movl 4(%esp),%eax
paddw %mm1,%mm4
movq %mm4,(%eax)
ret $4
…で、使い道は? という声が聞こえなくもない。