<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的指令。
    主站蜘蛛池模板: 亚洲午夜免费视频| 免费看国产一级特黄aa大片| 国产精品亚洲四区在线观看| 国外成人免费高清激情视频| 成人午夜影视全部免费看| 亚洲精品国精品久久99热一| 国产成人免费高清激情明星| 国产亚洲综合精品一区二区三区| 亚洲精品乱码久久久久久按摩| 免费三级毛片电影片| 国产亚洲成在线播放va| 亚洲AV无码乱码国产麻豆| 无码中文在线二区免费| 中文字幕免费在线视频| 亚洲理论片中文字幕电影| 亚洲国产成人乱码精品女人久久久不卡 | 亚洲第一香蕉视频| 无码不卡亚洲成?人片| 最好看的中文字幕2019免费| 狠狠热精品免费观看| 亚洲精品美女在线观看播放| 亚洲男人av香蕉爽爽爽爽| 最近高清中文字幕无吗免费看| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 国产精品亚洲专区无码不卡| 亚洲成在人线av| 日韩高清在线免费看| 特级精品毛片免费观看| 羞羞漫画页面免费入口欢迎你| 亚洲毛片免费视频| 亚洲色婷婷综合久久| 国产亚洲福利一区二区免费看| 131美女爱做免费毛片| 成人在线免费视频| 亚洲熟妇无码AV| 亚洲成av人片在线看片| 国产亚洲一区二区三区在线观看| 日本免费人成黄页在线观看视频| 91九色视频无限观看免费| 国产精品小视频免费无限app| 亚洲aⅴ无码专区在线观看|