diff options
Diffstat (limited to 'results/scraper/box64/75')
| -rw-r--r-- | results/scraper/box64/75 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/results/scraper/box64/75 b/results/scraper/box64/75 new file mode 100644 index 000000000..39b858184 --- /dev/null +++ b/results/scraper/box64/75 @@ -0,0 +1,24 @@ +fpu_do_push() function problem +Such as title. +function fpu_do_push(emu) + +``` +static inline void fpu_do_push(x64emu_t* emu) +{ + int newtop = (emu->top-1)&7; + /*if(emu->p_regs[newtop].tag!=0b11) {// not empty, overflow! + printf_log(LOG_NONE, "Warning: %p: FPU Stack overflow\n", (void*)emu->old_ip); // probably better to raise something + //emu->quit = 1; + return; + }*/ + if(emu->fpu_stack<8) + ++emu->fpu_stack; + emu->p_regs[newtop].tag = 0; // full + emu->top = newtop; +} +``` + +However, the Intel manual describes when operating the FPU stack. +Set FPU flags C1 to 1 if stack overflow occurred; otherwise, set to 0. + +So, Did you forget to set flags here? Should I add this operation? \ No newline at end of file |