rjx-mirror/ARMeilleure
sharmander 40797a1283
Optimization | Modify Add (Integer) Instruction to use LEA instead. (#1971)
* Optimization | Modify Add Instruction to use LEA instead.

Currently, the add instruction requires 4 registers to take place. By using LEA, we can effectively perform the same working using 3 registers, reducing memory spills and improving translation efficiency.

* Fix IsSameOperandDestSrc1 Check for Add

* Use LEA if Dest != SRC1

* Update IsSameOperandDestSrc1 to account for Cases where Dest and Src1 can be same for add

* Fix error in logic

* Typo

* Add paranthesis for clarity

* Compare registers as requested.

* Cleanup if statement, use same comparison method as generateCopy

* Make change as recommended by gdk

* Perform check only when Add calls are made

* use ensure sametype for lea, fix else

* Update comment

* Update version #
2021-02-08 10:49:46 +11:00
..
CodeGen Optimization | Modify Add (Integer) Instruction to use LEA instead. (#1971) 2021-02-08 10:49:46 +11:00
Common Add a simple Pools Limiter. (#1830) 2021-01-12 19:04:02 +01:00
Decoders Implement PRFM (register variant) as NOP (#1956) 2021-01-26 16:09:27 +11:00
Diagnostics Implement block placement (#1549) 2020-09-19 20:00:24 -03:00
Instructions Lower precision of estimate instruction results to match Arm behavior (#1943) 2021-01-28 10:23:00 +11:00
IntermediateRepresentation CPU (A64): Add Fmaxnmp & Fminnmp Scalar Inst.s, Fast & Slow Paths; with Tests. (#1894) 2021-01-20 09:12:33 +11:00
Memory Clear JIT cache on exit (#1518) 2020-12-16 17:07:42 -03:00
State CPU (A64): Add Pmull_V Inst. with Clmul fast path for the "1/2D -> 1Q" variant & Sse fast path and slow path for both the "8/16B -> 8H" and "1/2D -> 1Q" variants; with Test. (#1817) 2021-01-04 23:45:54 +01:00
Translation Optimization | Modify Add (Integer) Instruction to use LEA instead. (#1971) 2021-02-08 10:49:46 +11:00
ARMeilleure.csproj infra: Migrate to .NET 5 (#1694) 2020-11-15 19:27:15 +01:00
Optimizations.cs CPU: Implement VFNMS.F32/64 (#1758) 2020-12-03 20:20:02 +01:00
Statistics.cs Suppress warnings from fields never used or never assigned (CS0169 and CS0649) (#919) 2020-04-21 07:59:59 +10:00