Jordan Woyak
516369594f
Store ini sections in a std::list (rather than vector) to prevent unexpected pointer invalidation with use of GetOrCreateSection.
2014-06-24 12:37:38 -05:00
Pierre Bourdon
ce74752e91
Common: Add a PCAP writer module
2014-06-22 20:04:46 +02:00
Pierre Bourdon
5dff577339
Merge pull request #500 from lioncash/ini
...
Use only section-based ini reading.
2014-06-22 17:21:45 +02:00
Lioncash
f05d3f6e5d
Use only section-based ini reading.
2014-06-16 01:31:23 -04:00
magumagu
ee0c5bdc20
Try to fix android build.
2014-06-15 15:56:42 -07:00
magumagu
d905cbfd5d
Don't set DAZ on x86 in non-IEEE mode.
...
I have no idea why we were using it in the first place; it doesn't match
the behavior of PPC NI flag.
2014-06-15 03:51:51 -07:00
Tony Wasserka
3d6f9ef897
BitField: Add an explicit getter function for retrieving the BitField value.
...
Sometimes (in particular when using non-typesafe functions) it can be convenient to have a getter method rather than performing a potentially lengthy explicit cast.
2014-06-11 20:58:40 +02:00
Tony Wasserka
b3c7f003da
BitField: Delete copy assignment to prevent obscure bugs.
2014-06-11 20:58:40 +02:00
Ryan Houdek
6e1d312091
Make it so ARMv7 isn't a generic target.
...
Rearranges a bit of code so that ARM isn't a generic build anymore. Because it obviously isn't
2014-06-07 20:26:31 -05:00
Ryan Houdek
b6db0d0ab8
Merge pull request #457 from Tilka/jcc
...
x64Emitter: J_CC: use 32 bit offset automatically
2014-06-06 20:53:50 -05:00
Lioncash
3843848ed4
Use std::string in LogContainer's constructor.
...
This allows for removal of the strcpy calls, also it's technically way more safe, though I doubt we'll ever have a log name larger than 128 characters or a short description larger than 32 characters.
Also moved these assignments into the constructor's initializer list.
2014-06-05 18:50:14 -04:00
Tillmann Karras
f8280401f6
x64Emitter: J_CC: use 32 bit offset automatically
2014-06-03 23:08:58 +02:00
Ryan Houdek
3a06907653
Merge pull request #455 from lioncash/arm-cpudetect-fix
...
Stringify ArmCPUDetect.cpp.
2014-06-02 20:10:39 -05:00
Lioncash
7d7b3d6156
Stringify ArmCPUDetect.cpp.
2014-06-02 21:08:26 -04:00
Ryan Houdek
5d3382fb56
Fix a crash in ARM's CPUDetect on a malformed /proc/cpuinfo.
...
If a CPU string was incapable of being found we would return a null pointer, which would crash with strncpy.
Also if we couldn't get a CPU implementer we would call free() to a null pointer.
In addition, detect 64bit ARM running.
2014-06-01 23:55:38 -05:00
Ryan Houdek
87e671404a
Make MemoryUtil.cpp use the correct x86_64 define.
...
MemoryUtil.cpp was incorrectly using the old __x86_64__ define when it should be using _M_X86_64.
It was also using _ARCH_64 when it shouldn't have which was causing an errant PanicAlert to come up in my development.
2014-06-01 23:45:44 -05:00
Lioncash
49b0eef393
Remove the min/max functions in CommonFuncs.
...
The algorithm header has the same functions.
2014-05-29 21:44:41 -04:00
Lioncash
eca70d1562
Get rid of the temporary buffer in IniFile's Load function.
...
std::getline is the string-based equivalent.
2014-05-28 20:26:15 -04:00
Rachel Bryk
80ab567a5b
When reading an ini file, if there is an error, check if it is simply because the eof was reached.
2014-05-28 14:06:18 -04:00
Pierre Bourdon
10efd5b8c0
Merge pull request #430 from shuffle2/xsave-workaround-fix
...
msvc C initializers return int...fix EnableXSaveWorkaround when rax doesn't implicitly equal zero.
2014-05-28 12:25:25 +02:00
Pierre Bourdon
ce139622f6
Merge pull request #392 from RachelBryk/error-check-ini-file
...
Check for errors when reading lines from ini files.
2014-05-28 11:57:00 +02:00
Shawn Hoffman
47a2eb47a0
msvc C initializers return int...fix EnableXSaveWorkaround when rax doesn't implicitly equal zero.
2014-05-28 00:16:33 -07:00
Shawn Hoffman
58bcc3d12a
Redo commit 932945d480
...
This time, make sure the object for disabling XSave support in msvcr can't be dropped by the linker.
2014-05-27 13:41:19 -07:00
Rachel Bryk
0782d106db
Check for errors when reading lines from ini files.
...
Fixes issue 7283.
2014-05-23 03:17:19 -04:00
Lioncash
5f796e919b
Move bn.h and ec.h into the correct filter section
2014-05-17 16:47:41 -04:00
Lioncash
d0bd4119d1
Use size_t in std::string operations in IniFile.cpp, not int
2014-05-14 20:38:08 -04:00
shuffle2
36720e6822
Merge pull request #351 from Tilka/make_unique
...
Add a std::make_unique implementation (Common/StdMakeUnique.h)
2014-05-11 01:46:09 -07:00
Tillmann Karras
4400e511c0
fixmeup rename
2014-05-11 10:40:18 +02:00
Shawn Hoffman
700c135386
Revert "x64FPURoundMode: always set x87 precision"
...
This reverts commit 9de77b7c23
.
Setting x87 precision control is only supported on x86 platforms (not ARM or x64).
2014-05-10 20:21:07 -07:00
Tillmann Karras
81d4d7368a
Add a std::make_unique implementation
...
Some compilers we care about (mostly g++) do not support std::make_unique yet,
but we still want to use it in our codebase to make unique_ptr code more
readable. This commit introduces an implementation derivated from the libc++
code in the Dolphin codebase so we can use it right now everywhere.
Adapted from delroth's pull request.
2014-05-06 12:32:03 +02:00
Tillmann Karras
9de77b7c23
x64FPURoundMode: always set x87 precision
...
Set the x87 precision, even on x64. Since we are using x87 instructions
in the JIT now, we can't guarantee that x87 precision will never
influence Dolphin on x64.
2014-05-01 01:10:00 +02:00
Tillmann Karras
ed762a3eda
x64FPURoundMode: use fesetround() instead of asm
2014-05-01 01:09:55 +02:00
Tillmann Karras
e659f5ac58
JitBackpatch: fix NOP padding
...
The new NOP emitter breaks when called with a negative count. As it
turns out, it did happen when deoptimizing 8 bit MOVs because they are
only 4 bytes long and need no BSWAP.
2014-04-30 15:26:11 +02:00
Pierre Bourdon
aef24d509b
Merge pull request #304 from Tilka/nop
...
Optimize NOPs
2014-04-27 11:52:05 +02:00
Tillmann Karras
886c887e80
Fix Fastmem on CPUs without MOVBE
...
The problem was that when BSWAP was used, UnsafeWriteRegToReg() returned
the address of that instead of the MOV.
2014-04-25 01:11:52 +02:00
Tillmann Karras
acfd9ee76c
Add remaining possible uses of MOVBE
...
Also fixes a missing 'break' statement in DisassembleMov().
2014-04-24 16:36:03 +02:00
Tillmann Karras
957649b7af
Optimize NOPs
2014-04-23 21:15:09 +02:00
Tillmann Karras
b3c7395a23
Atomic: support clang 3.4+
2014-04-17 10:39:02 +02:00
Pierre Bourdon
cf315a487f
Merge pull request #271 from delroth/threading-stuff
...
Threading improvements: add Common::Flag and improve Common::Event
2014-04-14 23:23:16 +02:00
Pierre Bourdon
7074feacbe
Common::Event: Add a faster Windows specific implementation based on the concurrency runtime.
2014-04-14 23:13:15 +02:00
Pierre Bourdon
48bd904028
Common::Event: Implement in terms of Common::Flag to get rid of a volatile and optimize with early returns and atomic swaps
2014-04-14 23:13:15 +02:00
Pierre Bourdon
e24cad0780
Common::Flag: Add support for TestAndSet + test by implementing basic spinlocks.
2014-04-14 23:13:15 +02:00
Tony Wasserka
ccc04944b2
BitField: Fix alignment issues.
...
At least one platform (ARM with NEON instructions enabled) generates SIGBUSes if BitField objects aren't aligned properly.
2014-04-14 20:04:44 +02:00
Pierre Bourdon
6bdcbad3e4
Common: Move the Event class to a separate file, and add tests for it. Fix includes everywhere to match this.
2014-04-14 10:54:07 +02:00
Pierre Bourdon
f9fb39d383
Common: Add a 'Flag' class that is used to encapsulate a boolean flag manipulated from several threads
2014-04-14 10:54:07 +02:00
Tony Wasserka
12841928df
BitField: Optimize generated assembly by forcing inlining.
2014-04-13 13:27:01 +02:00
Pierre Bourdon
b2597739ff
x64Emitter: Add the MOVBE instruction.
2014-04-11 23:33:21 +02:00
Pierre Bourdon
d2de1ddabc
CPUDetect: add support for MOVBE detection
2014-04-11 23:29:03 +02:00
Ryan Houdek
87d106d65c
Remove dumb CodeBlock duplication in the emitters.
...
Fixes issue 6990.
This uses a bit of templating to remove the duplicate code that is the CodeBlocks in each emitter headers.
No actual functionality change in this.
2014-04-09 13:53:43 -05:00
Ryan Houdek
93c871522f
Fix a bug in the ARMEmitter.
...
When creating a Fixupbranch we were swapping the BL and B targets.
I think this was found by PPSSPP a while ago, but they never send PRs to merge their changes upstream.
2014-04-06 10:28:41 -04:00