Index: run.py |
diff --git a/run.py b/run.py |
index 3fe707550324fe36d1cf99f46b08e1afa3c942e3..779a017f51496f88691c5b484e2edff5c4aa469e 100755 |
--- a/run.py |
+++ b/run.py |
@@ -42,9 +42,9 @@ run.py options: |
with NACL_EXE_STDOUT/STDERR env vars) |
--more Display sel_ldr usage |
- -arch <arch> | -m32 | -m64 | -marm |
+ -arch <arch> | -m32 | -m64 | -marm | -mmips32 |
Specify architecture for PNaCl translation |
- (arch is one of: x86-32, x86-64 or arm) |
+ (arch is one of: x86-32, x86-64, arm or mips32) |
''' |
print info % name |
print '-' * 80 |
@@ -71,7 +71,11 @@ def SetupEnvironment(): |
# QEMU |
env.arm_root = os.path.join(env.nacl_root, |
'toolchain', 'linux_arm-trusted') |
- env.qemu = os.path.join(env.arm_root, 'run_under_qemu_arm') |
+ env.qemu_arm = os.path.join(env.arm_root, 'run_under_qemu_arm') |
+ |
+ env.mips32_root = os.path.join(env.nacl_root, |
+ 'toolchain', 'linux_mips-trusted') |
+ env.qemu_mips32 = os.path.join(env.mips32_root, 'run_under_qemu_mips32') |
# Path to 'readelf' |
env.readelf = FindReadElf() |
@@ -97,7 +101,7 @@ def SetupEnvironment(): |
# Don't print anything |
env.quiet = False |
- # Arch (x86-32, x86-64, arm) |
+ # Arch (x86-32, x86-64, arm, mips32) |
env.arch = None |
# Trace in QEMU |
@@ -221,7 +225,13 @@ def main(argv): |
def RunSelLdr(args): |
prefix = [] |
if GetBuildArch().find('arm') == -1 and env.arch == 'arm': |
- prefix = [ env.qemu, '-cpu', 'cortex-a8'] |
+ prefix = [ env.qemu_arm, '-cpu', 'cortex-a8'] |
+ if env.trace: |
+ prefix += ['-d', 'in_asm,op,exec,cpu'] |
+ args = ['-Q'] + args |
+ |
+ if GetBuildArch().find('mips32') == -1 and env.arch == 'mips32': |
+ prefix = [env.qemu_mips32] |
if env.trace: |
prefix += ['-d', 'in_asm,op,exec,cpu'] |
args = ['-Q'] + args |
@@ -431,6 +441,8 @@ def ArgSplit(argv): |
env.arch = 'x86-64' |
elif arg == '-marm': |
env.arch = 'arm' |
+ elif arg == '-mmips32': |
+ env.arch = 'mips32' |
elif arg == '-arch': |
if i+1 < len(argv): |
env.arch = FixArch(argv[i+1]) |
@@ -471,6 +483,7 @@ def FixArch(arch): |
x86_32 = 'x86-32 x86_32 x8632 i386 i686 ia32'.split() |
x86_64 = 'amd64 x86_64 x86-64 x8664'.split() |
arm = 'arm armv7'.split() |
+ mips32 = 'mips mips32'.split() |
if arch in x86_32: |
return 'x86-32' |
@@ -481,6 +494,9 @@ def FixArch(arch): |
if arch in arm: |
return 'arm' |
+ if arch in mips32: |
+ return 'mips32' |
+ |
Fatal('Unrecognized arch "%s"!', arch) |
@@ -492,7 +508,7 @@ def Fatal(msg, *args): |
def Usage2(): |
# Try to find any sel_ldr that already exists |
- for arch in ['x86-32','x86-64','arm']: |
+ for arch in ['x86-32','x86-64','arm','mips32']: |
SetupArch(arch, allow_build = False) |
if env.sel_ldr: |
break |
@@ -554,6 +570,8 @@ def ReadELFInfo(f): |
arch = 'x86-64' |
elif 'ARM' in machine_line: |
arch = 'arm' |
+ elif 'MIPS' in machine_line: |
+ arch = 'mips32' |
else: |
Fatal('%s: Unknown machine type', f) |