Commit Graph

158 Commits

Author SHA1 Message Date
Unknown W. Brackets
de8ffc18b3 Match up two arrays for error messages. 2015-01-17 18:43:04 -08:00
Henrik Rydgard
4ec30d98e1 Port the x86 and ARM emitters over to use the generic CodeBlock class 2014-12-15 22:32:55 +01:00
Lioncash
a962bc5a6c Mark some functions as const 2014-12-07 17:08:13 -05:00
Henrik Rydgard
29dcc0a303 Minor cleanups, warning fixes 2014-12-06 12:25:28 +01:00
Henrik Rydgard
66d74981b5 Merge ARM emitter updates from the NEON branch 2014-11-29 10:49:22 +01:00
Sacha
d08f65bf03 For some reason x86 was compiling ArmEmitter 2014-08-20 22:44:55 +10:00
Sacha
97e93f48fd Clean up LitPool code and re-enable flushing in AsmJit 2014-08-20 18:29:37 +10:00
Sacha
7691e0e0b5 Enable LitPool for ARMv6.
Was originally disabled because vertex JIT wasn't flushing but it now does.
2014-08-20 17:25:58 +10:00
Unknown W. Brackets
2f5c6a5660 Fix VLDM/VSTM encoding for double/quad regs.
Duh, forgot to check Vd.  Fixes #5723.
2014-03-25 22:08:20 -07:00
Unknown W. Brackets
b589d3b170 vertexjit: Fix a silly mistake in weights > 4.
Darn switch, took me way too long to notice this.
2014-03-23 19:02:40 -07:00
Unknown W. Brackets
717e6db3a7 Fix VDUP so that it actually works. 2014-03-23 17:51:32 -07:00
Unknown W. Brackets
f74b765ff3 Fix VLDM/VSTM encoding for D/Q regs.
Now it is actually using ASIMD/NEON.
2014-03-23 16:26:13 -07:00
Unknown W. Brackets
ff2d5bb17e Add a float->GP reg, fix VDUP for I_16. 2014-03-23 16:25:56 -07:00
Unknown W. Brackets
8056440ba1 Implement NEON register VMOVs. 2014-03-23 16:25:52 -07:00
Unknown W. Brackets
2b586b2a7a Support other constant VMOVs on NEON.
Float is especially useful.
2014-03-23 16:12:51 -07:00
Unknown W. Brackets
3e1cd5c161 Add a NEON VMOV imm encoding to the emitter. 2014-03-23 16:12:46 -07:00
Unknown W. Brackets
06db03ac9e Add some asserts to VLDM/VSTM. 2014-03-22 16:12:35 -07:00
Unknown W. Brackets
60bbf4af3b Fix VLD1/VST1 n=4. 2014-03-22 16:12:08 -07:00
Unknown W. Brackets
f3d38ee269 Fix VMOV for Dregs and VSHL reg order. 2014-03-22 16:12:00 -07:00
Unknown W. Brackets
0da9c1851c vertexjit: Add VQMOV(U)N and fix VMOVN size.
It will be too confusing if it's specified as the destination, unlike
VMOVL.  Plus the assembler syntax uses the source size.
2014-03-22 16:11:36 -07:00
Henrik Rydgård
8dfadf7b8e ArmEmitter: Add VMOV_neon and a Size parameter to VFMA for consistency. 2014-03-22 16:31:16 +01:00
Unknown W. Brackets
e783627947 armjit: Use our I2R funcs on reg/reg math too.
When one is a known immediate.  This should catch more cases, like:

ori v0, $0, 0xFFFF
and v1, v1, v0
2014-03-14 19:15:43 -07:00
Unknown W. Brackets
836787d19a Optimize ANDI2R() to use UBFX if possible.
This way, & 0x7FF or & 0xFFFF etc. are all fast when on ARMv7.
2014-03-14 19:15:42 -07:00
Unknown W. Brackets
3a07924ad9 Add Try arm emitter I2R funcs.
This way we can use them without giving up the regcache's immediate
optimizations.
2014-03-14 19:15:42 -07:00
Unknown W. Brackets
48fa22b7cf B/BL were swapped in the arm emitter.
Oops...
2014-03-14 19:15:41 -07:00