parent
b018b6fe56
commit
0aa7d1ec05
|
@ -19,3 +19,6 @@
|
||||||
[submodule "third_party/wslay"]
|
[submodule "third_party/wslay"]
|
||||||
path = third_party/wslay
|
path = third_party/wslay
|
||||||
url = https://github.com/benvanik/wslay.git
|
url = https://github.com/benvanik/wslay.git
|
||||||
|
[submodule "third_party/libjit"]
|
||||||
|
path = third_party/libjit
|
||||||
|
url = https://github.com/benvanik/libjit.git
|
||||||
|
|
10
common.gypi
10
common.gypi
|
@ -2,14 +2,6 @@
|
||||||
{
|
{
|
||||||
'default_configuration': 'release',
|
'default_configuration': 'release',
|
||||||
|
|
||||||
'conditions': [
|
|
||||||
['OS == "mac"', {
|
|
||||||
'variables': {
|
|
||||||
'is_clang': 1
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
],
|
|
||||||
|
|
||||||
'variables': {
|
'variables': {
|
||||||
'configurations': {
|
'configurations': {
|
||||||
'debug': {
|
'debug': {
|
||||||
|
@ -122,7 +114,7 @@
|
||||||
'DebugInformationFormat': '3',
|
'DebugInformationFormat': '3',
|
||||||
'ExceptionHandling': '1', # /EHsc
|
'ExceptionHandling': '1', # /EHsc
|
||||||
'AdditionalOptions': [
|
'AdditionalOptions': [
|
||||||
'/MP',
|
'/MP', # Multiprocessor
|
||||||
'/TP', # Compile as C++
|
'/TP', # Compile as C++
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
@ -95,12 +95,6 @@ gyp/gypi files.
|
||||||
|
|
||||||
xb gyp
|
xb gyp
|
||||||
|
|
||||||
#### xethunk
|
|
||||||
|
|
||||||
Updates the checked-in `src/cpu/xethunk/xethunk.bc` and `xethunk.ll` files.
|
|
||||||
This is only required if changes are made to the xethunk files. The results
|
|
||||||
should be checked in.
|
|
||||||
|
|
||||||
#### build
|
#### build
|
||||||
|
|
||||||
Builds all xenia targets using ninja. Release is built by default; specify
|
Builds all xenia targets using ninja. Release is built by default; specify
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
python xenia-build.py xethunk
|
|
||||||
python xenia-build.py build
|
python xenia-build.py build
|
||||||
|
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
#include <xenia/cpu/codegen/module_generator.h>
|
#include <xenia/cpu/codegen/module_generator.h>
|
||||||
#include <xenia/cpu/ppc/instr.h>
|
#include <xenia/cpu/ppc/instr.h>
|
||||||
#include <xenia/cpu/ppc/state.h>
|
#include <xenia/cpu/ppc/state.h>
|
||||||
#include <xenia/cpu/xethunk/xethunk.h>
|
|
||||||
|
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
|
@ -10,21 +10,9 @@
|
||||||
#ifndef XENIA_CPU_PPC_STATE_H_
|
#ifndef XENIA_CPU_PPC_STATE_H_
|
||||||
#define XENIA_CPU_PPC_STATE_H_
|
#define XENIA_CPU_PPC_STATE_H_
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NOTE: this file is included by xethunk and as such should have a *MINIMAL*
|
|
||||||
* set of dependencies!
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
|
||||||
#ifdef XE_THUNK
|
|
||||||
#define XECACHEALIGN __attribute__ ((aligned(8)))
|
|
||||||
#define XECACHEALIGN64 __attribute__ ((aligned(64)))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// namespace FPRF {
|
// namespace FPRF {
|
||||||
// enum FPRF_e {
|
// enum FPRF_e {
|
||||||
// QUIET_NAN = 0x00088000,
|
// QUIET_NAN = 0x00088000,
|
||||||
|
|
|
@ -315,8 +315,6 @@ void RtlImageXexHeaderField_shim(
|
||||||
// into guest memory, as it should be opaque and so long as our size is right
|
// into guest memory, as it should be opaque and so long as our size is right
|
||||||
// the user code will never know.
|
// the user code will never know.
|
||||||
//
|
//
|
||||||
// This would be good to put in xethunk for inlining.
|
|
||||||
//
|
|
||||||
// Ref: http://msdn.microsoft.com/en-us/magazine/cc164040.aspx
|
// Ref: http://msdn.microsoft.com/en-us/magazine/cc164040.aspx
|
||||||
// Ref: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/critical.c?view=markup
|
// Ref: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/critical.c?view=markup
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit d002b47f609617c4609ba4c3982ecb89223cb28c
|
|
@ -68,7 +68,6 @@ def discover_commands():
|
||||||
'gyp': GypCommand(),
|
'gyp': GypCommand(),
|
||||||
'build': BuildCommand(),
|
'build': BuildCommand(),
|
||||||
'test': TestCommand(),
|
'test': TestCommand(),
|
||||||
'xethunk': XethunkCommand(),
|
|
||||||
'clean': CleanCommand(),
|
'clean': CleanCommand(),
|
||||||
'nuke': NukeCommand(),
|
'nuke': NukeCommand(),
|
||||||
}
|
}
|
||||||
|
@ -459,33 +458,6 @@ class TestCommand(Command):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
class XethunkCommand(Command):
|
|
||||||
"""'xethunk' command."""
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(XethunkCommand, self).__init__(
|
|
||||||
name='xethunk',
|
|
||||||
help_short='Updates the xethunk.bc file.',
|
|
||||||
*args, **kwargs)
|
|
||||||
|
|
||||||
def execute(self, args, cwd):
|
|
||||||
print 'Building xethunk...'
|
|
||||||
print ''
|
|
||||||
|
|
||||||
path = 'src/xenia/cpu/xethunk/xethunk'
|
|
||||||
result = shell_call('clang -emit-llvm -O0 -c %s.c -o %s.bc' % (path, path),
|
|
||||||
throw_on_error=False)
|
|
||||||
if result != 0:
|
|
||||||
return result
|
|
||||||
|
|
||||||
shell_call('build/llvm/release/bin/llvm-dis %s.bc -o %s.ll' % (path, path))
|
|
||||||
|
|
||||||
shell_call('cat %s.ll' % (path))
|
|
||||||
|
|
||||||
print 'Success!'
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
class CleanCommand(Command):
|
class CleanCommand(Command):
|
||||||
"""'clean' command."""
|
"""'clean' command."""
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,12 @@
|
||||||
'dependencies': [
|
'dependencies': [
|
||||||
'gflags',
|
'gflags',
|
||||||
'wslay',
|
'wslay',
|
||||||
|
'third_party/libjit/libjit.gyp:libjit',
|
||||||
],
|
],
|
||||||
'export_dependent_settings': [
|
'export_dependent_settings': [
|
||||||
'gflags',
|
'gflags',
|
||||||
'wslay',
|
'wslay',
|
||||||
|
'third_party/libjit/libjit.gyp:libjit',
|
||||||
],
|
],
|
||||||
|
|
||||||
'direct_dependent_settings': {
|
'direct_dependent_settings': {
|
||||||
|
|
Loading…
Reference in New Issue