x86_64総合
at LINUX
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
300:login:Penguin 07/10/15 06:16:34 D5mY5mMR >>299 -m32か-m64の指定がないからとか? 301:login:Penguin 07/12/08 01:46:07 BpRfKoKi GCC のインラインアセンブリで RDTSC 命令を使いたい #define RDTSC(X) __asm__ __volatile__ ("rdtsc" : "=A" (X)) と書いたんだけど =A という Constraints は x86 だと edx:eax だけど amd64 では rax と扱われてしまうらしい でも RDTSC 命令の仕様自体は x86 でも amd64 でも edx:eax に返るみたいなので rax を使うと下位 32 bit しか返らない amd64 環境でうまくやるにはどうすればいいんだろう? 302:login:Penguin 07/12/08 02:41:13 h7XHftA2 >>301 こんなんでどう? #define RDTSC(X) ({ \ unsigned int edx, eax; \ __asm__ __volatile__ ("rdtsc" : "=a"(eax), "=d"(edx)); \ X = (unsigned long) edx << 32 | eax; \ }) 303:login:Penguin 07/12/08 03:15:17 BpRfKoKi >>302 やはりそれが正攻法か 一時変数の unsigned int edx, eax; をなくそうとしたらどうなるかな?
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5134日前に更新/171 KB
担当:undef