Merge pull request #2 from archshift/issue-7-fix
Fixes issues with building Citra on OSX
This commit is contained in:
commit
204c6bfeca
21 changed files with 286 additions and 68 deletions
|
@ -43,4 +43,47 @@ set(SRCS core.cpp
|
|||
hw/lcd.cpp
|
||||
hw/ndma.cpp)
|
||||
|
||||
add_library(core STATIC ${SRCS})
|
||||
set(HEADERS core.h
|
||||
core_timing.h
|
||||
loader.h
|
||||
mem_map.h
|
||||
system.h
|
||||
arm/disassembler/arm_disasm.h
|
||||
arm/disassembler/load_symbol_map.h
|
||||
arm/interpreter/arm_interpreter.h
|
||||
arm/interpreter/arm_regformat.h
|
||||
arm/interpreter/armcpu.h
|
||||
arm/interpreter/armdefs.h
|
||||
arm/interpreter/armemu.h
|
||||
arm/interpreter/armmmu.h
|
||||
arm/interpreter/armos.h
|
||||
arm/interpreter/skyeye_defs.h
|
||||
arm/interpreter/mmu/arm1176jzf_s_mmu.h
|
||||
arm/interpreter/mmu/cache.h
|
||||
arm/interpreter/mmu/rb.h
|
||||
arm/interpreter/mmu/sa_mmu.h
|
||||
arm/interpreter/mmu/tlb.h
|
||||
arm/interpreter/mmu/wb.h
|
||||
arm/interpreter/vfp/asm_vfp.h
|
||||
arm/interpreter/vfp/vfp.h
|
||||
arm/interpreter/vfp/vfp_helper.h
|
||||
elf/elf_reader.h
|
||||
elf/elf_types.h
|
||||
file_sys/directory_file_system.h
|
||||
file_sys/file_sys.h
|
||||
file_sys/meta_file_system.h
|
||||
hle/config_mem.h
|
||||
hle/coprocessor.h
|
||||
hle/hle.h
|
||||
hle/syscall.h
|
||||
hle/function_wrappers.h
|
||||
hle/service/apt.h
|
||||
hle/service/gsp.h
|
||||
hle/service/hid.h
|
||||
hle/service/service.h
|
||||
hle/service/srv.h
|
||||
hw/hw.h
|
||||
hw/lcd.h
|
||||
hw/ndma.h)
|
||||
|
||||
add_library(core STATIC ${SRCS} ${HEADERS})
|
||||
|
|
|
@ -86,12 +86,12 @@ static union
|
|||
} reg_conv;
|
||||
|
||||
static void
|
||||
printf_nothing (void *foo, ...)
|
||||
printf_nothing (const char *foo, ...)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
cirrus_not_implemented (char *insn)
|
||||
cirrus_not_implemented (const char *insn)
|
||||
{
|
||||
fprintf (stderr, "Cirrus instruction '%s' not implemented.\n", insn);
|
||||
fprintf (stderr, "aborting!\n");
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
#define pr_info //printf
|
||||
#define pr_debug //printf
|
||||
|
||||
static u32 fls(int x);
|
||||
static u32 vfp_fls(int x);
|
||||
#define do_div(n, base) {n/=base;}
|
||||
|
||||
/* From vfpinstr.h */
|
||||
|
@ -508,7 +508,7 @@ struct op {
|
|||
u32 flags;
|
||||
};
|
||||
|
||||
static inline u32 fls(int x)
|
||||
static u32 vfp_fls(int x)
|
||||
{
|
||||
int r = 32;
|
||||
|
||||
|
|
|
@ -69,9 +69,9 @@ static void vfp_double_dump(const char *str, struct vfp_double *d)
|
|||
|
||||
static void vfp_double_normalise_denormal(struct vfp_double *vd)
|
||||
{
|
||||
int bits = 31 - fls(vd->significand >> 32);
|
||||
int bits = 31 - vfp_fls(vd->significand >> 32);
|
||||
if (bits == 31)
|
||||
bits = 63 - fls(vd->significand);
|
||||
bits = 63 - vfp_fls(vd->significand);
|
||||
|
||||
vfp_double_dump("normalise_denormal: in", vd);
|
||||
|
||||
|
@ -108,9 +108,9 @@ u32 vfp_double_normaliseround(ARMul_State* state, int dd, struct vfp_double *vd,
|
|||
exponent = vd->exponent;
|
||||
significand = vd->significand;
|
||||
|
||||
shift = 32 - fls(significand >> 32);
|
||||
shift = 32 - vfp_fls(significand >> 32);
|
||||
if (shift == 32)
|
||||
shift = 64 - fls(significand);
|
||||
shift = 64 - vfp_fls(significand);
|
||||
if (shift) {
|
||||
exponent -= shift;
|
||||
significand <<= shift;
|
||||
|
|
|
@ -69,7 +69,7 @@ static void vfp_single_dump(const char *str, struct vfp_single *s)
|
|||
|
||||
static void vfp_single_normalise_denormal(struct vfp_single *vs)
|
||||
{
|
||||
int bits = 31 - fls(vs->significand);
|
||||
int bits = 31 - vfp_fls(vs->significand);
|
||||
|
||||
vfp_single_dump("normalise_denormal: in", vs);
|
||||
|
||||
|
@ -111,7 +111,7 @@ u32 vfp_single_normaliseround(ARMul_State* state, int sd, struct vfp_single *vs,
|
|||
* bit 31, so we have VFP_SINGLE_LOW_BITS + 1 below the least
|
||||
* significant bit.
|
||||
*/
|
||||
shift = 32 - fls(significand);
|
||||
shift = 32 - vfp_fls(significand);
|
||||
if (shift < 32 && shift) {
|
||||
exponent -= shift;
|
||||
significand <<= shift;
|
||||
|
|
|
@ -83,15 +83,6 @@ template<u32 func(int, void *)> void WrapU_IV() {
|
|||
RETURN(retval);
|
||||
}
|
||||
|
||||
template<float func()> void WrapF_V() {
|
||||
RETURNF(func());
|
||||
}
|
||||
|
||||
// TODO: Not sure about the floating point parameter passing
|
||||
template<float func(int, float, u32)> void WrapF_IFU() {
|
||||
RETURNF(func(PARAM(0), PARAMF(0), PARAM(1)));
|
||||
}
|
||||
|
||||
template<u32 func(u32)> void WrapU_U() {
|
||||
u32 retval = func(PARAM(0));
|
||||
RETURN(retval);
|
||||
|
@ -127,12 +118,6 @@ template<int func(u32, u32)> void WrapI_UU() {
|
|||
RETURN(retval);
|
||||
}
|
||||
|
||||
template<int func(u32, float, float)> void WrapI_UFF() {
|
||||
// Not sure about the float arguments.
|
||||
int retval = func(PARAM(0), PARAMF(0), PARAMF(1));
|
||||
RETURN(retval);
|
||||
}
|
||||
|
||||
template<int func(u32, u32, u32)> void WrapI_UUU() {
|
||||
int retval = func(PARAM(0), PARAM(1), PARAM(2));
|
||||
RETURN(retval);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue