e3febb1603
[Android] Fix MIPS compiling.
2013-10-21 09:52:43 -05:00
4b774ef99a
Fix my fix.
2013-10-20 16:42:30 -04:00
448c19bce1
Fix an issue where my recent changes would cause compilation to fail on some distros of Linux.
...
Note that before pushing those changes, they were initially tested in a branch, and passed the compilation testing. Sorry that I didn't catch this before.
2013-10-20 16:32:40 -04:00
b3da5c5d58
Really fix the Linux build this time.
...
Dammit size_t :(
2013-10-19 19:59:05 -04:00
a5a21e7f44
Fix Linux build.
...
Turns out Hash.h needs Common.h
2013-10-19 19:59:04 -04:00
8b10d5b481
Add header cstdint to CommonTypes.h
2013-10-19 19:59:03 -04:00
1f0710caf7
Remove some more includes.
2013-10-19 19:59:03 -04:00
97cd42f5c3
Remove some unnecessary includes as well as simplifying exisiting ones if possible.
2013-10-19 19:58:56 -04:00
b11cf1fa10
Fix config file saving on Windows.
2013-10-15 17:20:00 -04:00
72c1e143f3
Try to atomically save config files.
2013-10-15 02:59:25 -04:00
f3af8ee0f0
Revert "Remove some unnecessary includes."
...
Turns out this explodes on Linux.
This reverts commit c4696568cc
.
2013-10-14 04:05:38 -04:00
c4696568cc
Remove some unnecessary includes.
2013-10-14 04:01:57 -04:00
715d5ae8a7
Merge branch 'JitArmIL'
...
This implements a partial JITIL based off of the JIT64IL. It's enough to run most games, albiet at a slow speed.
Implementing instructions for this IL is really simple since it basically is just enabling based on what is already in JIT64IL, and then enabling each individual IL instruction.
2013-10-09 23:16:07 +00:00
f5e1b4659a
[ARM] Clean up LSL, LSR, and ASR emitters, we don't need a separate instruction for each to support registers.
2013-10-09 22:57:31 +00:00
99c89ae109
Fix unicode support for File::Rename() on windows.
...
Partial fix of issue 6721.
2013-10-09 15:33:21 -04:00
7dd8deecec
[ARM] Update the ArmEmitter with a bunch of NEON emitters. This adds around 47 instruction emitters if I counted correctly. None well tested at this point. On going to add all the NEON emitters.
2013-10-08 10:17:01 +00:00
a9908fdf09
Fix build issues on OS X i386.
2013-10-07 02:16:51 -04:00
21a114ec28
...Forgot the XMM regs for x86.
2013-10-05 01:17:34 -04:00
144d7e5500
Fix build-breaking typo.
2013-10-05 01:08:08 -04:00
3679f9ba60
Don't push registers before pairedStoreQuantized, that's dumb.
...
And fix some stuff up. It would probably be good to unify the stack
handling some more rather than having ABI_PushRegistersAndAdjustStack do
part of it and ABI_AlignStack the rest, causing unnecessary subtract
instructions on Linux x86 (only).
2013-10-04 15:48:06 -04:00
5e4665301b
Finish replacing ThunkManager with ABI_PushRegistersAndAdjustStack.
...
As part of that, change SafeLoadToEAX to SafeLoadToReg, and have JitIL
use that, which should fix fastmem on JitIL.
This should also fix a potential stack corruption issue with x86.
2013-10-03 18:22:35 -04:00
1ec4894bc5
[Common] Abstract out the decode5A3Image and decodeCI8Image functions in BannerLoaderGC, BannerLoaderWii, and GCMemcard into ColorUtil.cpp. Makes for less copied code and remains functionally the same.
2013-10-02 18:18:54 -04:00
3c53f2e5e0
[Android] Fix Fastmem on Android 4.2
2013-09-29 20:53:32 -05:00
1a008b9e62
Fix use of ABI_GetAlignedFrameSize.
2013-09-29 16:36:26 -04:00
ccbf2ac21a
Match ABI_AlignStack with ABI_RestoreStack properly.
...
The relevant function is entirely unused, so it shouldn't have any
effect.
2013-09-29 14:59:13 -04:00
ecca0045a9
Fix Imm8 check.
...
(I blame whoever made it take a u8 despite logically being a s8.)
2013-09-25 14:29:17 -04:00
ebe4448749
Save only the registers that need to be saved rather than going through ProtectFunction.
2013-09-25 03:15:53 -04:00
2a339c926e
Fastmem writes for x86-64.
2013-09-25 03:15:53 -04:00
eb6ed3e42a
[ARM] Change all floating point loadstores to fastmem implementations except lfs since all floating point accesses tend to be to RAM space. lfs tends to get used to write quickly to the gatherpipe and other places, look at the JIT64 implementation to see how to make it quicker.
2013-09-24 05:41:58 +00:00
4cdce55615
Don't define _M_IX86 on ARM(!).
...
Also define _M_* in a common location, and clean up code that these
changes break (including DSPJit files that assume X86 yet are compiled
on ARM for some reason...)
2013-09-24 01:30:41 -04:00
2f384c75d2
Only include scmrev.h from Version.cpp.
...
This way less code has to be rebuilt whenever that file gets
regenerated.
2013-09-24 01:14:56 -04:00
f81df136c2
Add an explicit error message for outdated GCC, and remove some commented out code.
2013-09-23 15:01:38 -04:00
c8c83f7b8a
Remove FifoQueue iterator and RemoveThreadsafeEvents.
...
No point making a whole iterator class for the sake of a function that
doesn't need to exist.
2013-09-22 23:14:42 -04:00
e82c9e616d
operator= is a function too! std::forward is still appropriate.
...
Fix the potentially unsafe use of std::move I added to FifoQueue.
2013-09-22 21:15:58 -04:00
17e753faf3
Fix FifoQueue's atomicity on ARM.
...
Theoretically.
2013-09-22 16:08:09 -04:00
c3b9f3556f
Make CoreTiming's threadsafe events lock-free.
...
Not sure if this actually helps in practice, but might help in
pathological cases, and almost certainly can't hurt.
2013-09-22 16:08:01 -04:00
7fe440340f
Improve Atomic.h:
...
- For GCC, use intrinsics that will work on ARM.
- Add AtomicExchangeAcquire.
- Make Atomic{Load,LoadAcquire,Store,StoreRelease} work for any suitable type.
2013-09-22 16:07:45 -04:00
6209067daa
Fix stack misalignment fix.
2013-09-22 15:48:27 -04:00
9a6f28fce4
Revert "Fix stack misalignment issues."
...
This reverts commit d334a9bc23
.
This breaks single core.
2013-09-22 14:29:35 -04:00
d334a9bc23
Fix stack misalignment issues.
...
- Call ABI_AlignStack even on x86-64.
- Have ABI_AlignStack respect the difference in current alignment
between the root JIT function, which has a prolog, and
ProtectFunction thunks, which do not. This was causing many games
to crash on start on OS X. Since this might otherwise mean changing
the stack pointer before every call...
- Have one prolog/epilog function rather than two (one of which
definitely did not do what it was thought to do), and make it
actually work like a normal one, so that the stack frame shows up
properly in the debugger. There should be no performance impact.
2013-09-20 16:46:48 -04:00
86d70cee15
Turns out CVTSD2SI in x64Emitter.cpp should actually use 64 bits instead of 32. Thanks for pointing that out hk.konpie.
2013-09-20 14:50:27 -04:00
6fc2117503
[ARM] Enable VMOV to move from double VFP reg to two ARM registers.
2013-09-18 17:21:22 -05:00
d03fb11188
Fix an incorrect opcode for an SSE instruction in x64Emitter.cpp. CVTSD2SI should write 0x2D, not 0xF2.
...
Also format the NormalSSEOps enum.
2013-09-18 07:43:31 -04:00
06062d5744
[ARM] Fix VSQRT/VCMP/VCMPE/VCMPE0/VCMP0 emitters when using the high 16 double registers.
2013-09-17 22:08:23 +00:00
e34d8aee1d
Add * to the characters leading a verbatim line (used in Gecko codes comments)
2013-09-17 16:50:44 +02:00
38c7d38800
Fix two wrong opcodes in the x64Emitter. PEXTRW and PINSRW were actually writing PCMPGTB opcodes. Thanks for the help Sintendo.
2013-09-16 15:59:31 -04:00
7d410ec95c
[ARM] VRSQRTE NEON emitter.
2013-09-16 12:58:20 +00:00
beb41a8f56
[ARM] Add NEON VORR and fix encoding on NEON VEOR. Remove VMRS_APSR because it is the same as VMRS(PC)
2013-09-16 07:49:16 +00:00
f0fc611f15
Add a hacky check for text file size in ReadFileToString. Fixes issue 6455.
2013-09-16 06:57:44 +02:00
037199c326
Look for portable.txt in the exe directory and activate portable mode if it exists
2013-09-16 05:46:07 +02:00