Flyinghead
0b8a312fea
rec-arm64: simplify read/write mem rewrite logic
...
pass exception pc in x2 reg for both slow/fast paths
infer the op type and size from the armv8 op encoding
rewrite doesn't need access to the block anymore
add support for some imm args
2019-06-18 15:07:32 +02:00
Flyinghead
5b2cef3fdd
dynarec: add negc and xtrct op codes
...
native implementation of negc and xtrct for x64 and arm64
rec-arm64: pass exception pc in w27 instead of sh4 context
inline mmu_intruction_translation() and clean up
2019-05-26 13:30:05 +02:00
Flyinghead
e7e387b443
wince: enable/disable vmem32 based on mmu state
2019-05-24 18:19:33 +02:00
Flyinghead
61a867e1ad
FPCB was only partially mprotected
2019-05-24 17:40:10 +02:00
Flyinghead
e3d95f2258
wince: unify _vmem and vmem32. Use 4GB virtual space on 64-bit arch
...
On 64-bit architectures, _vmem first tries to allocate 4GB then falls
back to 512 MB.
The same virtual space is now used by _vmem and vmem32 (mmu)
2019-05-23 11:40:33 +02:00
Flyinghead
c2c0215e1b
Merge remote-tracking branch 'origin/master' into fh/wince-dynarec
2019-05-22 14:13:00 +02:00
Flyinghead
fb76efb08d
Standard functions for virtual mem alloc/protect/map/...
2019-05-22 11:41:12 +02:00
David Guillen Fandos
65e2218792
Fix ARM64 rewrites with NO_RWX_PAGES
...
Tested on nvidia jetson and Android, so far works great.
2019-05-13 00:23:18 +02:00
David Guillen Fandos
aa4fc8dd60
Move cache invalidation to vmem_platform and implement NO_RWX on arm64
...
Still not functional yet, this commit breaks arm64 on android for instance.
Rewrites are not yet figured out, will push them in the next commit.
2019-05-12 23:25:43 +02:00
David Guillen Fandos
3b760f9869
Add FEAT_NO_RWX_PAGES and implement it for x64 CPU (Win and Linux)
...
Tested: Both with and without the feature, works only for x64 CPUs for
now, but supported in both windows and linux (see vmem implementation
for it, using mem-mapped files).
2019-05-12 22:02:57 +02:00
David Guillen Fandos
1a2b1c8672
Remove traces of memory manager from Jit driver.
...
Still stuff to be removed in the Naomi file handler and the ARM
AREC, which need to get ported to the new vmem interface.
2019-05-12 19:47:11 +02:00
Flyinghead
15ce3ab5fa
OSX build fixes
2019-05-12 16:53:30 +02:00
David Guillen Fandos
55e7c17030
Fix minor build issue with madvise flags.
2019-05-12 13:40:18 +02:00
David Guillen Fandos
b74db6ef53
Moving vmem to separate files with a proper interface.
...
Works so far for Linux and Android, need to do some testing on Windows.
2019-05-11 22:09:52 +02:00
David Guillen Fandos
be1ecbaa8b
Fix TARGET_NO_NVMEM and deprecate TARGET_NO_EXCEPTIONS
...
Linked them both toghether since you can't really define one and
not the other (plus Linux honors one windows the other in some
cases).
More refactoring on this area to follow.
2019-05-10 18:57:28 +02:00
Flyinghead
f2696a4b47
osx: add new files to project
2019-05-03 11:53:14 +02:00
Flyinghead
810b8a59da
wince: 32-bit virtual mem space
...
use fast mem read/write for x64 and arm64 dynarecs
2019-04-29 18:23:00 +02:00
David Guillen Fandos
3692ea7ae6
Improve stdclass.h/cpp support for non-Linux non-Windows platforms
...
Simplifies having implementation on platform separated files, which is a
pain for platforms which are not Windows but not Linux either (and yet
support pthreads).
Some minor cleanup here and there while we are at it.
2019-04-27 14:34:10 +02:00
Flyinghead
c809c6c56f
Merge branch 'fh/mymaster' into fh/master-merge
2019-03-25 16:47:47 +01:00
Flyinghead
cb8e81d473
arm64: direct memory access and jit rewrite
...
generates direct vmem read & write accesses
trap sigsegv and rewrite using slow path
add w29 to allocatable registers
get rid of literals and use pc-rel branching
minor optimizations and cleanup
2019-01-16 13:04:16 +01:00
Flyinghead
67a4eb8f1f
arm64 dynarec using vixl
2019-01-07 21:50:46 +01:00
Flyinghead
2b25244c95
cResetEvent: needs absolute timeout value. Fixes Android FPS drop.
2018-10-30 10:56:25 +01:00
Flyinghead
a1745801f0
cResetEvent: convert to ns instead of us
2018-10-29 21:41:57 +01:00
Flyinghead
dd7d0a1ac2
Android: deadlock due to cResetEvent.Wait() bug
2018-10-29 20:56:45 +01:00
Flyinghead
dc9780eb46
Android: fix black screen at boot on some devices
2018-10-29 20:03:47 +01:00
Michał Janiszewski
a69bd937c3
Add missing include guards
2018-10-28 13:45:46 +01:00
Flyinghead
7ce4fccb37
Merge remote-tracking branch 'origin/master' into fh/mymaster
2018-09-20 17:28:41 +02:00
Ender's Games
62c76475eb
Android: Implement trial disk swapping code
2018-08-28 14:08:36 -04:00
Ender's Games
14b1e66ed4
Mac: Reference / implement preprocessor directives
2018-08-25 13:03:29 -04:00
Ender's Games
75215ec0d1
Core: Address some obvious lgtm issues
2018-08-21 02:52:03 -04:00
Ender's Games
8d9d40dffc
Core: Changes provided by Android NDK compiler
2018-08-19 01:54:15 -04:00
Flyinghead
46c0d545ec
OSX: Fix previous merge
2018-08-01 18:31:20 +02:00
Flyinghead
9942bfc86e
Merge branch clean-exit-light
2018-08-01 18:02:50 +02:00
Flyinghead
b28e1505c5
Fix dynarec on OSX/x64. Clean exit when window closed.
2018-07-24 13:26:31 +02:00
Greg V
5d69e19ed1
Build on FreeBSD (and potentially other BSD)
2018-07-08 15:43:10 +03:00
Flyinghead
46b40ad043
OSX: enable exceptions for vmem
2018-05-15 11:14:48 +02:00
Flyinghead
39e0f378cb
OSX: add x64 target. Use JIT compiler. Clean exit. Use semaphore in core audio driver. Use layout-independent key codes to support int'l keyboards. Fixed GL window scaling.
2018-04-29 16:07:54 +02:00
gizmo98
4a7d0b9e7e
rpi: add option to use mesa or new vendor gl libs
2018-04-11 21:42:57 +02:00
Nicolas HOUDELOT
5c343a219c
fix typo
2018-03-05 01:57:00 +01:00
Stefanos Kornilios Mitsis Poiitidis
1dbc0d73df
nixprof: Fix printf, PRI & friends don't exist on android
2015-09-17 01:06:47 +02:00
Stefanos Kornilios Mitsis Poiitidis
56f8ffac0e
Merge pull request #807 from randomstuff/nixprof
...
Nixprof: some enchancements
2015-09-04 19:55:19 +02:00
Gabriel Corona
2a469b1def
nixprof: fix notation for Hz
2015-09-03 21:08:39 +02:00
Gabriel Corona
8fc2d5d069
nixprof: only save STT_FUNC
2015-09-03 21:08:35 +02:00
Gabriel Corona
ceca8c72bf
nixprof: make it work with ELF64
2015-09-03 21:08:29 +02:00
Gabriel Corona
c87307162d
nixprof: Use sh_type insteaf of sh_name for section identification and use SHT_SYMTAB
2015-09-03 21:08:24 +02:00
Gabriel Corona
ad068dcff2
Bind profiling in X11 to F10
2015-09-03 21:08:13 +02:00
Jan Holthuis
4267d51f90
stdclass: Make path getter function names more verbose
2015-09-02 15:49:00 +02:00
Jan Holthuis
b6d0cddcaa
stdclass: Add support for separate config/data dirs and system wide dirs
...
This adds support for separate config and data dirs.
On Linux, these will be compliant XDG Basedir Specification, i.e.
XDG_CONFIG_HOME and XDG_CONFIG_DIRS (or XDG_DATA_HOME and XDG_DATA_DIRS
respectively). On all other platforms, there currently just set to the
homedir path (so no previous behaviour has been changed).
If reicast wants to read and write a data file, it just calls
get_data_path("/samplefile.txt"). If it does not need to write to
that file, it just uses get_data_path("/samplefile.txt", false). That
way, we can also use system-wide dirs (like /usr/share/reicast on
linux), that the user usually doesn't have write access to.
The same applies for config file, where you use get_config_path(args)
respectively.
2015-09-02 15:48:53 +02:00
Gabriel Corona
4ad6db345b
nixprof: make private stuff static
2015-08-28 18:26:41 +02:00
TwistedUmbrella
e138cca4b9
Remove internal conditionals to use defined flag
2015-08-20 17:21:47 -04:00
TwistedUmbrella
bf75c95ae8
Update project for #755 and fix warnings
2015-08-17 07:59:39 -04:00
Stefanos Kornilios Mitsis Poiitidis
1908ade464
Update context.h
2015-08-11 08:05:09 -04:00
Stefanos Kornilios Mitsis Poiitidis
26cfcd79e9
OSX: Fiddling to get the rec-cpp/noexcept path running
2015-08-11 07:57:22 -04:00
Stefanos Kornilios Mitsis Poiitidis
289aa393c0
nacl: fixing affected android build
2015-07-29 05:17:16 +02:00
Stefanos Kornilios Mitsis Poiitidis
4f86496773
linux/common: Stub out LockRegion/UnLockRegion when TARGET_NO_EXCEPTIONS
2015-07-29 04:21:54 +02:00
Stefanos Kornilios Mitsis Poiitidis
255d1bdb42
nacl: Stub out LockRegion/UnLockRegion as no mprotect logic
2015-07-29 04:19:12 +02:00
Stefanos Kornilios Mitsis Poiitidis
2eb9d7908f
A first hackthrough to get nacl compiling working
2015-07-29 04:17:31 +02:00
Stefanos Kornilios Mitsis Poiitidis
c8f982b8f5
linux-common: TARGET_NO_EXCEPTIONS, TARGET_NO_THREADS
2015-07-29 04:08:05 +02:00
~skmp
518c547fb5
nixprof: move to its own module, TARGET_NO_NIXPROF, NO_NIXPROF
2015-07-29 04:08:04 +02:00
Jan Holthuis
3faf51c6ce
Removed mode variable in print_mem_addr()
...
This removes the mode variable in core/linux/common.cpp's
print_mem_addr(). It not neccessary and produces compiler warnings.
2015-07-27 19:12:28 +02:00
Stefanos Kornilios Mitsis Poiitidis
9cf9bacd13
build: Refactor HOST_NO_REC everywhere
2015-07-25 13:19:26 +02:00
TwistedUmbrella
0fb51735da
Update iOS project, Add support for iOS define
2015-07-23 23:30:35 -04:00
Stefanos Kornilios Mitsis Poiitidis
1aa01dbc63
sigsegv: Change print handler to use %p for pointers
2015-07-21 15:42:48 +02:00
Stefanos Kornilios Mitsis Poiitidis
e50cfe3010
x64 tinyjit: linux support
2015-07-14 03:35:34 +02:00
Stefanos Kornilios Mitsis Poiitidis
def91fdc84
Remove personality fix for android
2015-07-08 10:15:37 +02:00
Stefanos Kornilios Mitsis Poiitidis
043d9004a0
Merge rapi2 to master
2015-07-07 16:20:14 +02:00
Stefanos Kornilios Mitsis Poiitidis
3f36e98f90
Linux: Make sure personality isn't READ_IMPLIES_EXEC
2015-07-07 16:00:50 +02:00
TwistedUmbrella
7db6966ef8
Merge pull request #671 from imirkin/master
...
linux: print memory map to stderr when fixed path not available
2015-07-05 19:37:21 -04:00
TwistedUmbrella
c85a190d02
Relocate os_DebugBreak definition to origin
2015-06-28 11:11:39 -04:00
Ilia Mirkin
6d3269c91d
linux: print memory map to stderr when fixed path not available
2015-06-19 19:00:29 -04:00
~skmp
4ea7398d8a
Linux: fix building
2015-05-16 11:23:31 +03:00
Stefanos Kornilios Mitsis Poiitidis
9c2a4dc5a4
iOS fixes
2015-05-16 01:04:30 -07:00
Stefanos Kornilios Mitsis Poiitidis
6547d80095
Fixes for android, cleanup context.cpp
2015-05-16 08:18:46 +02:00
Stefanos Kornilios Mitsis Poiitidis
03914309e3
linux/context: Add updated context files
2015-05-16 07:16:46 +02:00
Stefanos Kornilios Mitsis Poiitidis
65ca1382d8
Merge remote-tracking branch 'remotes/origin/skmp/ios-wip' into feat/segfault-context-consolidation
...
Android/windows builds fine again. Android not tested yet, iOS/OSX not compiled yet
2015-05-16 07:12:19 +02:00
Stefanos Kornilios Mitsis Poiitidis
902c5e2949
linux/context.*: Add missing files
2015-05-16 03:10:39 +02:00
Stefanos Kornilios Mitsis Poiitidis
8c469e4b5c
*nix: move context massaging to linux/context.cpp, ALIGN -> DECL_ALIGN
...
Yay some warnings gone from not conflicting with ALIGN anymore
2015-05-16 03:06:04 +02:00
Stefanos Kornilios Mitsis Poiitidis
5b609a6be4
linux: Sh4 dynarec works
2015-05-08 18:59:20 +02:00
Stefanos Kornilios Mitsis Poiitidis
5ef9d661a6
Merge remote-tracking branch 'origin/master' into skmp/linux86
2015-05-08 17:29:14 +02:00
Stefanos Kornilios Mitsis Poiitidis
014d739495
Update for ndk-10d, improved build options
2015-03-29 06:02:24 +02:00
Stefanos Kornilios Mitsis Poiitidis
f2c07917c7
Partially working dyna for iOS. Very few games working atm.
...
This works, but is extremelly hacky. Must be started without attached debugger, lldb doesn't want to let go of EXC_BAD_ADDRESS, but reicast really depends on it getting delivered as SIGSEGV/SIGBUS. Also xcode has a really bad day upon seeing the jit code. Oh well.
There's some dynarec bug that causes color corruption on bios logo/boot triagles, TA crash on ikaruga and infinitive loop on crazy taxi. I'd guess some fp-memory-write thingy, abi, or smth. Too bad.
- Force code to compile in arm mode (arm jit -> thumb mem functions is complicated)
- SIGILL, SIGBUS. Works w/o Mach exceptions and EXC_BAD_ADDRESS
- Code buffers move to __TEXT, munmapped && memmapped to actually work
- Primitive input. Button + start, or left (works to get out of bios date screen)
- Fixup emitter for thumb2/interworking (didn't work though, reverted to arm cc)
- Block Manager: Disable mem saving / page fault alloc-on-demand logic
- Move cycle counter to r11, r9 is not clean on iOS. Remove r11 from reg alloc list
- Cache flushes for iOS
- log to log.txt
- load game.chd
2015-01-18 23:52:12 -08:00
Stefanos Kornilios Mitsis Poiitidis
56ebda10a9
ios interpreter works, bios runs w/ 3d visulals
...
THIS IS A MESS. Sorry @angelXwind :p. We'll have to clean up and merge for r8, but most of the nasty work is there.
What works:
- full init, memalloc, mprotects, etc
- boot
- gles2
What doesn't:
- Exceptions for page faults
- Breaks texture cache
- Breaks dynarec because of fastpath
- segfaults don't work, needs special mach exc_server magic that still eludes me after 5 hours
- Dynarecs. RWX issues, and broken buffer mappings. Also some minnor linking stuff (most of it is taken care of)
- Audio. I just killed it off.
- All of the ui. Was getting in the way of me not knowing how to edit story boards...
- Input
Also, merged branch 'skmp/mac86-hackport' into skmp/ios-wip
Have fun~
2014-12-17 10:19:44 -08:00
Stefanos Kornilios Mitsis Poiitids
f14932c362
Building on osx w/o rec or rend
2014-09-30 12:00:46 +03:00
Stefanos Kornilios Mitsis Poiitidis
ad054f1b96
Working on linux x86 dyna
2014-03-25 00:12:30 +02:00
Stefanos Kornilios Mitsis Poiitidis
e356515198
compiles for lin86 (no rendering yet)
2014-03-20 17:13:53 +02:00
Stefanos Kornilios Mitsis Poiitidis
ebe56d6778
Add mips support (woohoo makefiles are a mess nao)
2014-03-05 12:24:03 +02:00
Stefanos Kornilios Mitsis Poiitidis
ac2501549f
Initial support for android-x86 (no idea if this actually works)
...
This is ugly, done via HOST_NO_REC, NOT_ARM. Only if I had merged the clean-makefiles work before rls... Oh well.
2014-03-03 14:06:00 +02:00
TwistedUmbrella
60d3521d47
Rename the file to avoid confusion with proprietary app files
2014-02-13 01:21:35 -05:00
TwistedUmbrella
9281d2f2ad
Append the memory allocation table to error log submission
2014-02-13 00:52:13 -05:00
TwistedUmbrella
4d322feacc
In case of a memory allocation failure, print current readout
2014-02-13 00:45:17 -05:00
Stefanos Kornilios Mitsis Poiitidis
f5d29677b3
Merge branch 'androidui'
...
Conflicts:
core/hw/pvr/spg.cpp
core/hw/sh4/interpr/sh4_interpreter.cpp
reicast/android/src/com/reicast/emulator/MainActivity.java
2013-12-28 22:28:50 +01:00
Stefanos Kornilios Mitsis Poiitidis
7ef9de3cae
Moving code around, cleanups
2013-12-28 22:20:08 +01:00