摘要: http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of different C++ constructs 栈的速度快是因为,总是反复访问同一段地址,如果没有大的数组,肯定实在 阅读全文
posted @ 2016-12-08 23:45 mlj318 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 当是正数时,没有问题。 但当是负数时,对于不需要舍入刚好整除的情况,结果是正确的。但是当需要舍入时,移位导致结果向下舍入,而不是像规则需要的那样向零舍入。例如,- 7/2应该得到- 3,而不是- 4。 利用规律:对于整数x和任意y > 0,有 「x/y = (x + y- 1)/y」。「 向上舍入 阅读全文
posted @ 2016-12-08 23:42 mlj318 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 1.大部分算术运算和逻辑运算指令都是单周期的,例如加法、减法、位级运算和移位 2.乘法指令根据操作数位数的不同,从2-5个周期都有可能。 3.无条件跳转语句和跳转语句成功跳转,需要重新填充流水线,因此至少需要3个周期 4.跳过条件不满足的指令只需要花1个周期 (以上周期应该是指各指令包含的机器周期数 阅读全文
posted @ 2016-12-08 22:52 mlj318 阅读(5626) 评论(0) 推荐(0) 编辑
摘要: C中嵌入汇编PLD指令:asm("PLD [%0,#128]": :"r" (psrc) ); copy自官方文档: 4.2.7. PLD、PLDW 和 PLI 预载数据和预载指令。 处理器可向内存系统发送信号,告诉内存系统在不久的将来可能要从某个地址加载数据或指令。 语法 PLtype{cond} 阅读全文
posted @ 2016-12-08 15:25 mlj318 阅读(3871) 评论(0) 推荐(0) 编辑