Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpcodeDispatcher: Implements all the 3DNow! instructions #1597

Merged
merged 7 commits into from
Mar 4, 2022

Commits on Feb 28, 2022

  1. IR: Adds a VRev64 op

    This directly matches the AArch64 instruction and will be used shortly
    Sonicadvance1 committed Feb 28, 2022
    Configuration menu
    Copy the full SHA
    c7dd176 View commit details
    Browse the repository at this point in the history
  2. Opdispatcher: Minor bug fix with unimplemented op

    If multiblock isn't enabled then on Unimplemented op we shouldn't create
    a new block.
    
    Was causing IR validation to get angry
    Sonicadvance1 committed Feb 28, 2022
    Configuration menu
    Copy the full SHA
    0f3a169 View commit details
    Browse the repository at this point in the history
  3. Frontend: Fixes minor bug decoding 3DNow!

    We already decoded the modrm `rm` bits, check while decoding modrm to
    ensure we don't try decoding it again.
    Was causing double decoding of SIB and displacement bytes, breaking
    things
    Sonicadvance1 committed Feb 28, 2022
    Configuration menu
    Copy the full SHA
    638da92 View commit details
    Browse the repository at this point in the history
  4. X86Tables: Fills out 3DNow tables

    Fully decoded the same way and adds the Geode specific instruction
    decodings as well.
    Sonicadvance1 committed Feb 28, 2022
    Configuration menu
    Copy the full SHA
    9b1b2e6 View commit details
    Browse the repository at this point in the history
  5. OpcodeDispatcher: Implements all the 3DNow! instructions

    This picks up all the instruction implementations, including 3DNow!
    Extended and the Geode specific instructions that were added.
    
    Most of these match preexisting SSE instructions except that they
    operate at 64-bit and in the MMX registers.
    Sonicadvance1 committed Feb 28, 2022
    Configuration menu
    Copy the full SHA
    a9a89be View commit details
    Browse the repository at this point in the history
  6. CPUID: Enables 3DNow! + Extensions

    Now that we support these
    Sonicadvance1 committed Feb 28, 2022
    Configuration menu
    Copy the full SHA
    b1b6078 View commit details
    Browse the repository at this point in the history
  7. unittests: Implements 3DNow! unit tests

    Covers the full space, of which there aren't many.
    
    3DNow! unit tests are disabled on the CI runner since the x86 CPU in CI
    doesn't support it.
    Sonicadvance1 committed Feb 28, 2022
    Configuration menu
    Copy the full SHA
    abd2664 View commit details
    Browse the repository at this point in the history