From 2c24c0e4515eae79061ce4c95d55ae26afb8b5b6 Mon Sep 17 00:00:00 2001 From: Brendan Coles Date: Sun, 14 Mar 2021 08:10:11 +0000 Subject: [PATCH] UserspaceEmulator: SoftCPU: Add support for FPTAN instruction --- Userland/DevTools/UserspaceEmulator/SoftCPU.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Userland/DevTools/UserspaceEmulator/SoftCPU.cpp b/Userland/DevTools/UserspaceEmulator/SoftCPU.cpp index 3c4fb2fd41..bf73af564b 100644 --- a/Userland/DevTools/UserspaceEmulator/SoftCPU.cpp +++ b/Userland/DevTools/UserspaceEmulator/SoftCPU.cpp @@ -1641,7 +1641,14 @@ void SoftCPU::FYL2XP1(const X86::Instruction&) fpu_pop(); } -void SoftCPU::FPTAN(const X86::Instruction&) { TODO_INSN(); } +void SoftCPU::FPTAN(const X86::Instruction&) +{ + // FIXME: set C1 upon stack overflow or if result was rounded + // FIXME: Set C2 to 1 if ST(0) is outside range of -2^63 to +2^63; else set to 0 + fpu_set(0, tanf(fpu_get(0))); + fpu_push(1.0f); +} + void SoftCPU::FPATAN(const X86::Instruction&) { TODO_INSN(); } void SoftCPU::FXTRACT(const X86::Instruction&) { TODO_INSN(); } void SoftCPU::FPREM1(const X86::Instruction&) { TODO_INSN(); }