<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 403, comments - 310, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    一個編譯器優化問題

    Posted on 2007-07-19 00:51 ZelluX 閱讀(375) 評論(0)  編輯  收藏 所屬分類: Courses
    看到匯編中的基本運算這一節,想看看傳說中的編譯器把a*2優化為a<<1是不是真的呢,寫了個函數試了下:
    int func(int x)
    {
        return x * 2;
    }
    用gcc -O2 -S test.c 編譯,發現優化后是用了加法,而不是位移
    func:
            pushl   %ebp
            movl    %esp, %ebp
            movl    8(%ebp), %eax
            popl    %ebp
            addl    %eax, %eax
            ret
    BBS上問了,老大說一般加法不會慢。
    又試了一下把*2改成*3,仍然是使用leal    (%eax,%eax,2), %eax進行加法操作完成的,而改成*4就使用位移了。
    其他回答:
    SecretVan@smth.org: CISC指令集上更傾向于選擇功能一樣而長度較短的指令,帶了立即數之后指令就長了,如果使用寄存器那更得不償失
    Nineveh@smth.org: 因為 add 的長度短于或等于 sal,速度快于或等于 sal,吞吐量大于或等于 sal。
    lib@rygh: 在P4里面我記得一條加法指令是0.5個cycle.移位指令撐死了也要0.5個cycle吧,沒聽說過有0.25cycle的指令。
    主站蜘蛛池模板: 久久久久久精品免费免费自慰| 日本永久免费a∨在线视频| 久久免费高清视频| 中文字幕精品亚洲无线码一区| 美女无遮挡免费视频网站| 国产成人aaa在线视频免费观看 | 久久久久久久亚洲Av无码| 日本免费大黄在线观看| 亚洲制服中文字幕第一区| 亚洲毛片在线免费观看| 亚洲高清不卡视频| 中字幕视频在线永久在线观看免费| 亚洲jizzjizz在线播放久| 亚洲hairy多毛pics大全| 女人被弄到高潮的免费视频| 国产成人精品免费视频大全| 亚洲乱码中文字幕手机在线 | 在线亚洲人成电影网站色www| 久久不见久久见免费视频7| 免费H网站在线观看的| 国产成人精品日本亚洲专区6| 永久免费视频网站在线观看| 亚洲乱码一二三四五六区| 成人片黄网站A毛片免费| 国产天堂亚洲精品| 久久精品国产精品亚洲艾草网| 97在线视频免费| 亚洲av无码一区二区三区人妖| 亚洲欧洲精品成人久久奇米网| 丁香花在线视频观看免费| 91亚洲va在线天线va天堂va国产| 最近2019中文免费字幕| 成年大片免费视频播放一级| 亚洲成AV人片一区二区| 操美女视频免费网站| 国产精品免费久久久久影院| 2022年亚洲午夜一区二区福利| 啦啦啦在线免费视频| 国产无遮挡又黄又爽免费网站| 亚洲另类小说图片| 亚洲午夜福利精品久久|