Skip to content

SH4: The One Big Jit Rewrite #16

Description

@skmp

Current SH4 -> ARMv7 jit has several limitations and can be much improved. It is the typical armv7 jit from the nullDCe/reicast lineage.

  • No constant propagation
  • No constant folding of page locked memory reads
  • No block dependency graph for selective invalidation / graceful page unlocking
  • No multi block support
  • No read/write pointer merging
  • No read/write pointer ofsetting
  • Bad djump/T bit handling
  • No static register allocation (can only be done for fprs, experimental impl in https://github.com/skmp/minicast/tree/static-fpr-alloc but it didn't help)
  • Semi-broken SQ write optimization path (aka "Unstable SH4 Optimizations"
  • No block relocation metadata/support
  • No block precompilation

These and many more could be quickly iterated on now with Fable I think. Maybe it's time we move on from the 2009-era design.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions