Commit Graph
15 Commits
Author SHA1 Message Date
Scott Mansell 26141e426a Fix unsigned/signed compare conditions
Also, rename to match the LLVM naming style, which is less confusing.
2020-03-06 07:56:07 +02:00
Scott Mansell 1dee7cb037 Append x87 flags to cpustate flags[] 2020-03-06 07:56:06 +02:00
Ryan Houdek 962669cd17 Adds new IR ops to the LLVM JIT 2020-03-06 07:56:03 +02:00
Ryan Houdek 3bb9197e6a Adds VAND IR Op 2020-03-06 07:56:02 +02:00
Ryan Houdek e9be5430b9 Adds a couple new IR ops for easy movement of registers between classes. 2020-03-06 07:56:01 +02:00
Ryan Houdek efdf490c3c Adds support for ARM on the LLVM JIT 2020-03-06 07:55:46 +02:00
Ryan Houdek ee53b70bfe Actually enable LLVM optimization passes in the LLVM JIT
We were using whatever was the LLVM default before.
2020-03-06 07:55:45 +02:00
Ryan Houdek 9e132e107a Adds alignment information to the mem loadstore IR ops
Allows us to not always emit unaligned loadstore ops for these
2020-03-06 07:55:45 +02:00
Ryan Houdek f8b858e7fc Removes the EndFunction IR Op 2020-03-06 07:55:45 +02:00
Ryan Houdek db7b3d415d Adds VBitcast IR op
Casts vector to a integer of the same width as the vector
2020-03-06 07:55:44 +02:00
Ryan Houdek 3eb55d5f9f Fixes LLVM JIT with multiblock 2020-03-06 07:55:44 +02:00
Ryan Houdek a8d2cb4a9f Fixes LLVM JIT
Doesn't yet work with multiblock
2020-03-06 07:55:44 +02:00
Ryan Houdek f27f9485f6 Changes IR::CondJump's condition to dump textually. 2020-03-06 07:55:33 +02:00
Ryan Houdek 199cfd76d8 Refactor IR and other changes that are hard to split
I had to change how blocks are represented to make it easier to parse
This required a fairly substantial refactor that makes it so blocks are
represented differently and we can walk them sequentially.

This will make future analysis easier to deal with.
Had to rewrite the passes and core's parsing of the IR afterwards.

Moved RA in to a optimization pass to be shared between the JIT backends
This works because x86-64 and AArch64 RA can be identical.

Still doesn't support PHI nodes or spilling correctly, this is the first
step in the process of getting there.
2020-03-06 07:55:13 +02:00
Ryan Houdek 7252050e42 Initial commit 2020-03-06 07:48:39 +02:00