1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/thor-unisim

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
shifter.c 879
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Xian Ran Отправлено 18.11.2013 16:40 5ffaf0b
#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;
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/thor-unisim.git
git@api.gitlife.ru:oschina-mirror/thor-unisim.git
oschina-mirror
thor-unisim
thor-unisim
master