mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-23 14:19:55 -06:00
apply fixes for aarch64 linux by @nadiaholmquist
This commit is contained in:
@ -8,6 +8,9 @@
|
|||||||
#include "../switch/compat_switch.h"
|
#include "../switch/compat_switch.h"
|
||||||
|
|
||||||
extern char __start__;
|
extern char __start__;
|
||||||
|
#else
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
@ -34,6 +37,9 @@ template <>
|
|||||||
const int RegisterCache<Compiler, ARM64Reg>::NativeRegsAvailable = 8;
|
const int RegisterCache<Compiler, ARM64Reg>::NativeRegsAvailable = 8;
|
||||||
|
|
||||||
const int JitMemSize = 16 * 1024 * 1024;
|
const int JitMemSize = 16 * 1024 * 1024;
|
||||||
|
#ifndef __SWITCH__
|
||||||
|
u8 JitMem[JitMemSize];
|
||||||
|
#endif
|
||||||
|
|
||||||
void Compiler::MovePC()
|
void Compiler::MovePC()
|
||||||
{
|
{
|
||||||
@ -76,6 +82,16 @@ Compiler::Compiler()
|
|||||||
SetCodeBase((u8*)JitRWStart, (u8*)JitRXStart);
|
SetCodeBase((u8*)JitRWStart, (u8*)JitRXStart);
|
||||||
JitMemUseableSize = JitMemSize;
|
JitMemUseableSize = JitMemSize;
|
||||||
Reset();
|
Reset();
|
||||||
|
#else
|
||||||
|
#else
|
||||||
|
u64 pageSize = sysconf(_SC_PAGE_SIZE);
|
||||||
|
u8* pageAligned = (u8*)(((u64)JitMem & ~(pageSize - 1)) + pageSize);
|
||||||
|
u64 alignedSize = (((u64)JitMem + sizeof(JitMem)) & ~(pageSize - 1)) - (u64)pageAligned;
|
||||||
|
mprotect(pageAligned, alignedSize, PROT_EXEC | PROT_READ | PROT_WRITE);
|
||||||
|
|
||||||
|
SetCodeBase(pageAligned, pageAligned);
|
||||||
|
JitMemUseableSize = alignedSize;
|
||||||
|
Reset();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "Compat.h"
|
||||||
#include "Align.h"
|
#include "Align.h"
|
||||||
#include "Arm64Emitter.h"
|
#include "Arm64Emitter.h"
|
||||||
#include "Assert.h"
|
|
||||||
#include "BitUtils.h"
|
#include "BitUtils.h"
|
||||||
#include "../types.h"
|
#include "../types.h"
|
||||||
#include "MathUtil.h"
|
#include "MathUtil.h"
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#include "ArmCommon.h"
|
#include "ArmCommon.h"
|
||||||
#include "Assert.h"
|
|
||||||
#include "BitSet.h"
|
#include "BitSet.h"
|
||||||
#include "Compat.h"
|
#include "Compat.h"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user