MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / GetTag

Method GetTag

source/emulation/cpu/common/fpu.cpp:1101–1122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1099}
1100
1101int FPU::GetTag(CPU* cpu, U32 index) {
1102 U32 tag = this->tags[index] & 3;
1103 if (isMMXInUse) {
1104 tag = TAG_Valid;
1105 }
1106 if (tag != TAG_Empty) {
1107 if (isRegCached[index]) {
1108 if (regCache[index].d == 0.0) {
1109 tag = TAG_Zero;
1110 } else if (isnan(regCache[index].d) || isinf(regCache[index].d)) {
1111 tag = TAG_Special;
1112 }
1113 } else {
1114 if (F80_iszero(regs[index])) {
1115 tag = TAG_Zero;
1116 } else if (F80_isnan(regs[index]) || F80_isinf(regs[index])) {
1117 tag = TAG_Special;
1118 }
1119 }
1120 }
1121 return tag;
1122}
1123
1124int FPU::GetTag(CPU* cpu) {
1125 int tags = 0;

Callers 7

doFISTTP64Function · 0.80
doFISTP64Function · 0.80
doFST_DOUBLE_REAL_f64Function · 0.80
doFST_DOUBLE_REAL_i64Function · 0.80
doFISTTP16Function · 0.80
doFIST_WORD_INTEGER_PopFunction · 0.80
writeToContextFunction · 0.80

Calls 3

F80_iszeroFunction · 0.85
F80_isnanFunction · 0.85
F80_isinfFunction · 0.85

Tested by 6

doFISTTP64Function · 0.64
doFISTP64Function · 0.64
doFST_DOUBLE_REAL_f64Function · 0.64
doFST_DOUBLE_REAL_i64Function · 0.64
doFISTTP16Function · 0.64
doFIST_WORD_INTEGER_PopFunction · 0.64