Lines Matching refs:cut_point
1075 frvbf_cut (SIM_CPU *current_cpu, SI reg1, SI reg2, SI cut_point)
1078 cut_point &= 0x3f;
1079 if (cut_point < 32)
1081 result = reg1 << cut_point;
1082 result |= (reg2 >> (32 - cut_point)) & ((1 << cut_point) - 1);
1085 result = reg2 << (cut_point - 32);
1092 frvbf_media_cut (SIM_CPU *current_cpu, DI acc, SI cut_point)
1095 cut_point = cut_point << 26 >> 26;
1097 /* The cut_point is relative to bit 40 of 64 bits. */
1098 if (cut_point >= 0)
1099 return (acc << (cut_point + 24)) >> 32;
1102 if (cut_point == -32)
1105 return (acc << 24) >> (32 + -cut_point);
1110 frvbf_media_cut_ss (SIM_CPU *current_cpu, DI acc, SI cut_point)
1113 cut_point = cut_point << 26 >> 26;
1115 if (cut_point >= 0)
1117 /* The cut_point is relative to bit 40 of 64 bits. */
1118 DI shifted = acc << (cut_point + 24);
1119 DI unshifted = shifted >> (cut_point + 24);
1131 return frvbf_media_cut (current_cpu, acc, cut_point);
1136 frvbf_iacc_cut (SIM_CPU *current_cpu, DI acc, SI cut_point)
1141 cut_point = cut_point << 25 >> 25;
1149 if (cut_point < 0)
1152 if (cut_point == -64)
1155 acc >>= -cut_point;
1156 cut_point = 0;
1161 if (cut_point < 32)
1166 lower = acc >> (32 - cut_point);
1168 if (acc & LSBIT64 (32 - cut_point - 1))
1174 lower = acc << (cut_point - 32);
1175 upper = acc >> (63 - cut_point);