| 847 | } |
| 848 | |
| 849 | void JitFlags::init(Jit* jit, CPU* cpu, DecodedOp* op, LazyFlagType flagsType, RegPtr cf) { |
| 850 | flags = lazyFlags[flagsType]; |
| 851 | if (flags) { |
| 852 | needsToSetFlags = op->needsToSetFlags(cpu); |
| 853 | } |
| 854 | if (needsToSetFlags) { |
| 855 | if ((flags && flags->usesOldCF(needsToSetFlags)) || (!(instructionInfo[op->inst].flagsSets & CF) && op->getNeededFlagsAfter(CF))) { |
| 856 | if (cf) { |
| 857 | oldCF = cf; |
| 858 | } else { |
| 859 | oldCF = jit->getCF(); |
| 860 | } |
| 861 | } |
| 862 | } |
| 863 | } |
| 864 | |
| 865 | JitFlags::JitFlags(Jit* jit, CPU* cpu, DecodedOp* op, LazyFlagType flagsType, RegPtr src, RegPtr cf, bool copySrc) { |
| 866 | init(jit, cpu, op, flagsType, cf); |
no test coverage detected