代码拉取完成,页面将自动刷新
#include "shifter.h"
#include "sim.h"
#include "helper.h"
#include <stdlib.h>
int shifter(shifttype_t shifttype, int n1, int n2)
{
int res, C = 0;
switch(shifttype) {
case SHIFT_LL:
if (n2 == 32) {
res = 0;
} else if (n2 > 32) {
res = 0;
} else {
res = n1 << n2;
if (n2) C = B(n1, 32 - n2);
}
break;
case SHIFT_LR:
if (n2 == 32) {
res = 0;
} else if (n2 > 32) {
res = 0;
} else {
res = ((unsigned)n1) >> n2;
if (n2) C = B(n1, n2-1);
}
break;
case SHIFT_AR:
if (n2 >= 32) {
res = n1 >> 31;
} else {
res = n1 >> n2;
if (n2) C = B(n1, n2-1);
}
break;
case SHIFT_LP:
if (n2 == 32) {
res = n1;
} else {
n2 %= 32;
res = (((unsigned)n1) >> n2) | (n1 << (32-n2));
}
break;
default:
printf("unknown shift type!\n");
exit(0);
}
d_reg.C = C;
return res;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。