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 00000000..39b85818 --- /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 |
