![](https://csdnimg.cn/release/download_crawler_static/86357251/bg1.jpg)
4.46
A. 没有正确描述指令 popq %rsp。该段代码序列使%rsp 的值为(%rsp)+8,而
指令 popq%rsp 执行后,%rsp 的值应为(%rsp)。
B. 改写代码序列:
addq $8 , %rsp
movq-8(%rsp) , REG
4.51
icode:ifun <- M1 [PC]
rA:rB <- M1[PC+1]
valC <- M8[PC+2]
valP <- PC+10
5.14
/* Inner product. Accumulate in temporary */
void inner5(vec_ptr u, vec_ptr v, data_t* dest) {
long i;
long length = vec_length(u);
long limit = length - 5;
data_t* udata = get_ver_start(u);
data_t* vdata = get_vec_start(v);
data_t sum = (data_t)0;
for (i = 0; i < limit; i += 6) {
sum = sum + udata[i] * vdata[i] +
udata[i + 1] * vdata[i + 1] +
udata[i + 2] * vdata[i + 2] +
udata[i + 3] * vdata[i + 3] +
udata[i + 4] * vdata[i + 4] +
udata[i + 5] * vdata[i + 5];
}
for (; i < length; i++) {
sum = sum + udata[i] * vdata[i];
}
*dest = sum;
}
评论0