| | 217 | } |
|---|
| | 218 | |
|---|
| | 219 | inline void result8_flags_update(struct emu_cpu *c, uint8_t result) |
|---|
| | 220 | { |
|---|
| | 221 | int i; |
|---|
| | 222 | int num_bits=0; |
|---|
| | 223 | for ( i=0;i<sizeof(result);i++ ) |
|---|
| | 224 | if (result & (1 << i) ) |
|---|
| | 225 | num_bits++; |
|---|
| | 226 | |
|---|
| | 227 | if (num_bits == 0) |
|---|
| | 228 | CPU_FLAG_SET(c,f_zf); |
|---|
| | 229 | |
|---|
| | 230 | if ((num_bits %2) == 0) |
|---|
| | 231 | CPU_FLAG_SET(c,f_pf); |
|---|
| | 232 | |
|---|
| | 233 | if (result & (1 << (sizeof(result) - 1))) |
|---|
| | 234 | CPU_FLAG_SET(c,f_sf); |
|---|
| | 235 | } |
|---|
| | 236 | |
|---|
| | 237 | inline void result16_flags_update(struct emu_cpu *c, uint16_t result) |
|---|
| | 238 | { |
|---|
| | 239 | int i; |
|---|
| | 240 | int num_bits=0; |
|---|
| | 241 | for ( i=0;i<sizeof(result);i++ ) |
|---|
| | 242 | if (result & (1 << i) ) |
|---|
| | 243 | num_bits++; |
|---|
| | 244 | |
|---|
| | 245 | if (num_bits == 0) |
|---|
| | 246 | CPU_FLAG_SET(c,f_zf); |
|---|
| | 247 | |
|---|
| | 248 | if ((num_bits %2) == 0) |
|---|
| | 249 | CPU_FLAG_SET(c,f_pf); |
|---|
| | 250 | |
|---|
| | 251 | if (result & (1 << (sizeof(result) - 1))) |
|---|
| | 252 | CPU_FLAG_SET(c,f_sf);} |
|---|
| | 253 | |
|---|
| | 254 | inline void result32_flags_update(struct emu_cpu *c, uint32_t result) |
|---|
| | 255 | { |
|---|
| | 256 | int i; |
|---|
| | 257 | int num_bits=0; |
|---|
| | 258 | for ( i=0;i<sizeof(result);i++ ) |
|---|
| | 259 | if (result & (1 << i) ) |
|---|
| | 260 | num_bits++; |
|---|
| | 261 | |
|---|
| | 262 | if (num_bits == 0) |
|---|
| | 263 | CPU_FLAG_SET(c,f_zf); |
|---|
| | 264 | |
|---|
| | 265 | if ((num_bits %2) == 0) |
|---|
| | 266 | CPU_FLAG_SET(c,f_pf); |
|---|
| | 267 | |
|---|
| | 268 | if (result & (1 << (sizeof(result) - 1))) |
|---|
| | 269 | CPU_FLAG_SET(c,f_sf); |
|---|