| Index: Makefile.standalone | 
| diff --git a/Makefile.standalone b/Makefile.standalone | 
| index 9d344190e9f73d6c8cdbc14705844fdeabde4765..2583db2e407ccd1cf104cb13476feec4809936ac 100644 | 
| --- a/Makefile.standalone | 
| +++ b/Makefile.standalone | 
| @@ -16,11 +16,11 @@ LLVM_SRC_PATH ?= ../llvm | 
| # The x86-32-specific sandboxed translator directory. | 
| # It holds sandboxed versions of libraries and binaries. | 
| SB_LLVM_PATH ?= $(shell readlink -e \ | 
| -	../../out/sandboxed_translators_work/translator-i686/llvm-sb/Release) | 
| +  ../../out/sandboxed_translators_work/translator-i686/llvm-sb/Release) | 
|  | 
| # NACL_ROOT is the root of the native client repository. | 
| NACL_ROOT ?= $(shell python -c "import sys; sys.path.insert(0, 'pydir'); \ | 
| -	import utils; print utils.FindBaseNaCl()") | 
| +  import utils; print utils.FindBaseNaCl()") | 
|  | 
| # TOOLCHAIN_ROOT is the location of NaCl/PNaCl toolchains and other | 
| # tools like qemu. | 
| @@ -42,7 +42,7 @@ AUTOCONF ?= $(shell ldd $(PNACL_BIN_PATH)/opt | grep -c libLLVM-) | 
| # CLANG_PATH is the location of the clang compiler to use for building | 
| # the host binaries. | 
| CLANG_PATH ?= $(shell readlink -e \ | 
| -	$(NACL_ROOT)/../third_party/llvm-build/Release+Asserts/bin) | 
| +  $(NACL_ROOT)/../third_party/llvm-build/Release+Asserts/bin) | 
|  | 
| # LIBCXX_INSTALL_PATH is the directory where libc++ is located. It should | 
| # contain header files and corresponding libraries. This is used for | 
| @@ -78,11 +78,11 @@ ifdef MINIMAL | 
| NOASSERT = 1 | 
| OBJDIR := $(OBJDIR)+Min | 
| BASE_CXX_DEFINES += -DALLOW_DUMP=0 -DALLOW_LLVM_CL=0 -DALLOW_LLVM_IR=0 \ | 
| -	-DALLOW_LLVM_IR_AS_INPUT=0 -DALLOW_DISABLE_IR_GEN=0 \ | 
| +    -DALLOW_LLVM_IR_AS_INPUT=0 -DALLOW_DISABLE_IR_GEN=0 \ | 
| -DALLOW_MINIMAL_BUILD=1 | 
| else | 
| BASE_CXX_DEFINES += -DALLOW_DUMP=1 -DALLOW_LLVM_CL=1 -DALLOW_LLVM_IR=1 \ | 
| -	-DALLOW_LLVM_IR_AS_INPUT=1 -DALLOW_DISABLE_IR_GEN=1 \ | 
| +    -DALLOW_LLVM_IR_AS_INPUT=1 -DALLOW_DISABLE_IR_GEN=1 \ | 
| -DALLOW_MINIMAL_BUILD=0 | 
| endif | 
|  | 
| @@ -98,13 +98,15 @@ endif | 
|  | 
| ifdef UBSAN | 
| OBJDIR := $(OBJDIR)+UBSan | 
| -  CXX_EXTRA += -fsanitize=undefined -fno-sanitize=vptr -fno-sanitize=nonnull-attribute | 
| +  CXX_EXTRA += -fsanitize=undefined -fno-sanitize=vptr \ | 
| +               -fno-sanitize=nonnull-attribute | 
| LD_EXTRA += -fsanitize=undefined | 
| endif | 
|  | 
| ifdef UBSAN_TRAP | 
| OBJDIR := $(OBJDIR)+UBSan_Trap | 
| -  CXX_EXTRA += -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error -fno-sanitize=vptr -fno-sanitize=nonnull-attribute | 
| +  CXX_EXTRA += -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error \ | 
| +               -fno-sanitize=vptr -fno-sanitize=nonnull-attribute | 
| LD_EXTRA += -fsanitize=undefined-trap | 
| endif | 
|  | 
| @@ -182,90 +184,91 @@ SB_TRANSLATE := $(PNACL_BIN_PATH)/pnacl-translate | 
| LLVM_EXTRA_WARNINGS := -Wcovered-switch-default | 
|  | 
| BASE_CXXFLAGS := -std=gnu++11 -Wall -Wextra -Werror -fno-rtti \ | 
| -	-fno-exceptions $(OPTLEVEL) $(ASSERTIONS) -g -pedantic \ | 
| -	$(LLVM_EXTRA_WARNINGS) $(CXX_EXTRA) | 
| +  -fno-exceptions $(OPTLEVEL) $(ASSERTIONS) -g -pedantic \ | 
| +  $(LLVM_EXTRA_WARNINGS) $(CXX_EXTRA) | 
|  | 
| CXXFLAGS := $(LLVM_CXXFLAGS) $(BASE_CXXFLAGS) $(CXX_DEFINES) $(HOST_FLAGS) \ | 
| -	$(STDLIB_FLAGS) | 
| +  $(STDLIB_FLAGS) | 
| SB_CXXFLAGS := $(SB_LLVM_CXXFLAGS) $(BASE_CXXFLAGS) $(SB_CXX_DEFINES) | 
|  | 
| LDFLAGS := $(HOST_FLAGS) -L$(LIBCXX_INSTALL_PATH)/lib -Wl,--gc-sections \ | 
| -	$(LD_EXTRA) $(STDLIB_FLAGS) | 
| +  $(LD_EXTRA) $(STDLIB_FLAGS) | 
| # Not specifying -Wl,--gc-sections but instead doing bitcode linking GC w/ LTO. | 
| SB_LDFLAGS := $(LINKOPTLEVEL) $(LD_EXTRA) | 
|  | 
| SRCS = \ | 
| -	IceAssembler.cpp \ | 
| -	IceAssemblerARM32.cpp \ | 
| -	IceBrowserCompileServer.cpp \ | 
| -	IceCfg.cpp \ | 
| -	IceCfgNode.cpp \ | 
| -	IceClFlags.cpp \ | 
| -	IceCompiler.cpp \ | 
| -	IceCompileServer.cpp \ | 
| -	IceELFObjectWriter.cpp \ | 
| -	IceELFSection.cpp \ | 
| -	IceFixups.cpp \ | 
| -	IceGlobalContext.cpp \ | 
| -	IceGlobalInits.cpp \ | 
| -	IceInst.cpp \ | 
| -	IceInstARM32.cpp \ | 
| -	IceInstMIPS32.cpp \ | 
| -	IceInstX8632.cpp \ | 
| -	IceInstX8664.cpp \ | 
| -	IceIntrinsics.cpp \ | 
| -	IceLiveness.cpp \ | 
| -	IceLoopAnalyzer.cpp \ | 
| -	IceOperand.cpp \ | 
| -	IceRegAlloc.cpp \ | 
| -	IceRNG.cpp \ | 
| -	IceSwitchLowering.cpp \ | 
| -	IceTargetLowering.cpp \ | 
| -	IceTargetLoweringARM32.cpp \ | 
| -	IceTargetLoweringMIPS32.cpp \ | 
| -	IceTargetLoweringX8632.cpp \ | 
| -	IceTargetLoweringX8664.cpp \ | 
| -	IceThreading.cpp \ | 
| -	IceTimerTree.cpp \ | 
| -	IceTranslator.cpp \ | 
| -	IceTypes.cpp \ | 
| -	main.cpp \ | 
| -	PNaClTranslator.cpp | 
| +  IceAssembler.cpp \ | 
| +  IceAssemblerARM32.cpp \ | 
| +  IceBrowserCompileServer.cpp \ | 
| +  IceCfg.cpp \ | 
| +  IceCfgNode.cpp \ | 
| +  IceClFlags.cpp \ | 
| +  IceCompiler.cpp \ | 
| +  IceCompileServer.cpp \ | 
| +  IceELFObjectWriter.cpp \ | 
| +  IceELFSection.cpp \ | 
| +  IceFixups.cpp \ | 
| +  IceGlobalContext.cpp \ | 
| +  IceGlobalInits.cpp \ | 
| +  IceInst.cpp \ | 
| +  IceInstARM32.cpp \ | 
| +  IceInstMIPS32.cpp \ | 
| +  IceInstX8632.cpp \ | 
| +  IceInstX8664.cpp \ | 
| +  IceIntrinsics.cpp \ | 
| +  IceLiveness.cpp \ | 
| +  IceLoopAnalyzer.cpp \ | 
| +  IceOperand.cpp \ | 
| +  IceRegAlloc.cpp \ | 
| +  IceRNG.cpp \ | 
| +  IceSwitchLowering.cpp \ | 
| +  IceTargetLowering.cpp \ | 
| +  IceTargetLoweringARM32.cpp \ | 
| +  IceTargetLoweringMIPS32.cpp \ | 
| +  IceTargetLoweringX8632.cpp \ | 
| +  IceTargetLoweringX8664.cpp \ | 
| +  IceThreading.cpp \ | 
| +  IceTimerTree.cpp \ | 
| +  IceTranslator.cpp \ | 
| +  IceTypes.cpp \ | 
| +  main.cpp \ | 
| +  PNaClTranslator.cpp | 
|  | 
| ifndef MINIMAL | 
| -  SRCS += IceConverter.cpp \ | 
| -	IceTypeConverter.cpp | 
| +  SRCS += \ | 
| +    IceConverter.cpp \ | 
| +    IceTypeConverter.cpp | 
| endif | 
|  | 
| OBJS=$(patsubst %.cpp, $(OBJDIR)/%.o, $(SRCS)) | 
| SB_OBJS=$(patsubst %.cpp, $(SB_OBJDIR)/%.o, $(SRCS)) | 
|  | 
| UNITTEST_SRCS = \ | 
| -	BitcodeMunge.cpp \ | 
| -	IceELFSectionTest.cpp \ | 
| -	IceParseInstsTest.cpp | 
| +  BitcodeMunge.cpp \ | 
| +  IceELFSectionTest.cpp \ | 
| +  IceParseInstsTest.cpp | 
|  | 
| # The X86 assembler tests take too long to compile. Given how infrequently the | 
| # assembler will change, we disable them. | 
| ifdef CHECK_X86_ASM | 
| -ifndef DEBUG | 
| -$(error Run check-unit with DEBUG=1 lest your machine perish) | 
| -endif | 
| +  ifndef DEBUG | 
| +  $(error Run check-unit with DEBUG=1 lest your machine perish) | 
| +  endif | 
| UNITTEST_SRCS += AssemblerX8632/LowLevel.cpp \ | 
| -        AssemblerX8632/DataMov.cpp \ | 
| -        AssemblerX8632/Locked.cpp \ | 
| -        AssemblerX8632/GPRArith.cpp \ | 
| -        AssemblerX8632/XmmArith.cpp \ | 
| -        AssemblerX8632/ControlFlow.cpp \ | 
| -        AssemblerX8632/Other.cpp \ | 
| -        AssemblerX8632/X87.cpp \ | 
| -        AssemblerX8664/LowLevel.cpp \ | 
| -        AssemblerX8664/DataMov.cpp \ | 
| -        AssemblerX8664/Locked.cpp \ | 
| -        AssemblerX8664/GPRArith.cpp \ | 
| -        AssemblerX8664/XmmArith.cpp \ | 
| -        AssemblerX8664/ControlFlow.cpp \ | 
| -        AssemblerX8664/Other.cpp | 
| +    AssemblerX8632/DataMov.cpp \ | 
| +    AssemblerX8632/Locked.cpp \ | 
| +    AssemblerX8632/GPRArith.cpp \ | 
| +    AssemblerX8632/XmmArith.cpp \ | 
| +    AssemblerX8632/ControlFlow.cpp \ | 
| +    AssemblerX8632/Other.cpp \ | 
| +    AssemblerX8632/X87.cpp \ | 
| +    AssemblerX8664/LowLevel.cpp \ | 
| +    AssemblerX8664/DataMov.cpp \ | 
| +    AssemblerX8664/Locked.cpp \ | 
| +    AssemblerX8664/GPRArith.cpp \ | 
| +    AssemblerX8664/XmmArith.cpp \ | 
| +    AssemblerX8664/ControlFlow.cpp \ | 
| +    AssemblerX8664/Other.cpp | 
| endif | 
|  | 
| UNITTEST_OBJS = $(patsubst %.cpp, $(OBJDIR)/unittest/%.o, $(UNITTEST_SRCS)) | 
| @@ -298,14 +301,14 @@ make_symlink: $(OBJDIR)/pnacl-sz | 
|  | 
| $(OBJDIR)/pnacl-sz: $(OBJS) | 
| $(CXX) $(LDFLAGS) -o $@ $^ $(LLVM_LDFLAGS) \ | 
| -               -Wl,-rpath=$(abspath $(LIBCXX_INSTALL_PATH)/lib) | 
| +          -Wl,-rpath=$(abspath $(LIBCXX_INSTALL_PATH)/lib) | 
|  | 
| $(SB_OBJDIR)/pnacl-sz.x86-32.nexe: $(SB_OBJS) | 
| $(eval PNACL_SZ_BASE := $(patsubst %.nexe, %, $@)) | 
| $(SB_CXX) $(SB_LDFLAGS) -o $(PNACL_SZ_BASE).nonfinal.pexe $^ \ | 
| -		$(SB_LLVM_LDFLAGS) | 
| +          $(SB_LLVM_LDFLAGS) | 
| $(SB_TRANSLATE) -arch x86-32 $(PNACL_SZ_BASE).nonfinal.pexe -o $@ \ | 
| -		--allow-llvm-bitcode-input | 
| +          --allow-llvm-bitcode-input | 
|  | 
| # TODO(stichnot): Be more precise than "*.h" here and elsewhere. | 
| $(OBJS): $(OBJDIR)/%.o: src/%.cpp src/*.h src/*.def | 
| @@ -316,23 +319,24 @@ $(SB_OBJS): $(SB_OBJDIR)/%.o: src/%.cpp src/*.h src/*.def | 
|  | 
| $(OBJDIR)/run_unittests: $(UNITTEST_OBJS) $(UNITTEST_LIB_OBJS) | 
| $(CXX) $(GTEST_LIB_PATH) $(LDFLAGS) -o $@ $^ $(LLVM_LDFLAGS) \ | 
| -               -lgtest -lgtest_main -ldl \ | 
| -               -Wl,-rpath=$(abspath $(LIBCXX_INSTALL_PATH)/lib) | 
| +          -lgtest -lgtest_main -ldl \ | 
| +          -Wl,-rpath=$(abspath $(LIBCXX_INSTALL_PATH)/lib) | 
|  | 
| -$(UNITTEST_OBJS): $(OBJDIR)/unittest/%.o: unittest/%.cpp \ | 
| -		unittest/*.h src/*.h src/*.def | 
| +$(UNITTEST_OBJS): $(OBJDIR)/unittest/%.o: unittest/%.cpp unittest/*.h \ | 
| +                  src/*.h src/*.def | 
| $(CXX) -c $(CXXFLAGS) \ | 
| -		-Isrc/ \ | 
| -                -Iunittest/ \ | 
| -		-I$(LLVM_SRC_PATH)/utils/unittest/googletest/include \ | 
| -		-I$(LLVM_SRC_PATH) \ | 
| -		-DGTEST_HAS_RTTI=0 -DGTEST_USE_OWN_TR1_TUPLE \ | 
| -		$< -o $@ | 
| +          -Isrc/ \ | 
| +          -Iunittest/ \ | 
| +          -I$(LLVM_SRC_PATH)/utils/unittest/googletest/include \ | 
| +          -I$(LLVM_SRC_PATH) \ | 
| +          -DGTEST_HAS_RTTI=0 -DGTEST_USE_OWN_TR1_TUPLE \ | 
| +          $< -o $@ | 
|  | 
| $(OBJS): | $(OBJDIR) | 
| $(SB_OBJS): | $(SB_OBJDIR) | 
|  | 
| -$(UNITTEST_OBJS): | $(OBJDIR)/unittest $(OBJDIR)/unittest/AssemblerX8632 $(OBJDIR)/unittest/AssemblerX8664 | 
| +$(UNITTEST_OBJS): | $(OBJDIR)/unittest $(OBJDIR)/unittest/AssemblerX8632 \ | 
| +                    $(OBJDIR)/unittest/AssemblerX8664 | 
|  | 
| $(OBJDIR): | 
| @mkdir -p $@ | 
| @@ -349,8 +353,8 @@ $(OBJDIR)/unittest/AssemblerX8664: $(OBJDIR)/unittest | 
|  | 
| RT_SRC := runtime/szrt.c runtime/szrt_ll.ll runtime/szrt_profiler.c | 
| RT_OBJ := build/runtime/szrt_native_x8632.o build/runtime/szrt_sb_x8632.o \ | 
| -	build/runtime/szrt_native_x8664.o build/runtime/szrt_sb_x8664.o \ | 
| -	build/runtime/szrt_native_arm32.o build/runtime/szrt_sb_arm32.o | 
| +          build/runtime/szrt_native_x8664.o build/runtime/szrt_sb_x8664.o \ | 
| +          build/runtime/szrt_native_arm32.o build/runtime/szrt_sb_arm32.o | 
|  | 
| runtime: $(RT_OBJ) | 
|  | 
| @@ -376,16 +380,16 @@ check-xtest: $(OBJDIR)/pnacl-sz make_symlink runtime | 
| # TODO(jpp): implement x8664 sandbox, then enable xtests. | 
| # TODO(jpp): reenable the x86-64 tests. | 
| ./pydir/crosstest_generator.py -v --lit \ | 
| -	  --toolchain-root $(TOOLCHAIN_ROOT) \ | 
| -	  -i x8632,native,sse2 \ | 
| -	  -i x8632,native,sse4.1,test_vector_ops \ | 
| -	  -i x8632,sandbox,sse4.1,Om1 \ | 
| -	  -e x8664,native,sse2 \ | 
| -	  -e x8664,native,sse4.1,test_vector_ops \ | 
| -	  -e x8664,native,sse2,test_global \ | 
| -	  -i arm32,native,neon \ | 
| -	  -e arm32,native,neon,test_vector_ops \ | 
| -	  -e arm32,native,neon,test_select | 
| +          --toolchain-root $(TOOLCHAIN_ROOT) \ | 
| +          -i x8632,native,sse2 \ | 
| +          -i x8632,native,sse4.1,test_vector_ops \ | 
| +          -i x8632,sandbox,sse4.1,Om1 \ | 
| +          -e x8664,native,sse2 \ | 
| +          -e x8664,native,sse4.1,test_vector_ops \ | 
| +          -e x8664,native,sse2,test_global \ | 
| +          -i arm32,native,neon \ | 
| +          -e arm32,native,neon,test_vector_ops \ | 
| +          -e arm32,native,neon,test_select | 
| PNACL_BIN_PATH=$(PNACL_BIN_PATH) \ | 
| $(LLVM_SRC_PATH)/utils/lit/lit.py -sv crosstest/Output | 
| endif | 
| @@ -393,6 +397,30 @@ endif | 
| check-unit: $(OBJDIR)/run_unittests | 
| $(OBJDIR)/run_unittests | 
|  | 
| +ALLSPEC := 177.mesa 179.art 183.equake 188.ammp 164.gzip 175.vpr 176.gcc \ | 
| +           181.mcf 186.crafty 197.parser 253.perlbmk 254.gap 255.vortex \ | 
| +           256.bzip2 300.twolf 252.eon | 
| +.PHONY: $(ALLSPEC) | 
| + | 
| +TARGET := x8632 | 
| +ifeq ($(TARGET),x8632) | 
| +  TARGETFLAG=x8632 | 
| +  SETUP=SetupGccX8632Opt | 
| +  SPEC := -O2 --filetype=obj | 
| +endif | 
| +ifeq ($(TARGET),arm32) | 
| +  TARGETFLAG=arm32 | 
| +  SETUP=SetupGccArmOpt | 
| +  SPEC := -O2 --filetype=asm | 
| +endif | 
| + | 
| +%.spec2k: % | 
| +	./pydir/szbuild_spec2k.py -v --force --target=$(TARGETFLAG) $(SPEC) $< | 
| +	( cd ../../../tests/spec2k; \ | 
| +	 ./run_all.sh RunTimedBenchmarks $(SETUP) train $< ) | 
| + | 
| +check-spec: $(OBJDIR)/pnacl-sz make_symlink $(ALLSPEC:=.spec2k) | 
| + | 
| check: check-lit check-unit check-xtest | 
|  | 
| FORMAT_BLACKLIST = | 
| @@ -403,17 +431,17 @@ FORMAT_BLACKLIST += ! -name assembler_arm.h | 
| FORMAT_BLACKLIST += ! -name assembler_arm.cc | 
| format: | 
| $(CLANG_FORMAT_PATH)/clang-format -style=LLVM -i \ | 
| -	`find . -regex '.*\.\(c\|h\|cpp\)' $(FORMAT_BLACKLIST)` | 
| +          `find . -regex '.*\.\(c\|h\|cpp\)' $(FORMAT_BLACKLIST)` | 
|  | 
| format-diff: | 
| git diff -U0 `git merge-base HEAD master` | \ | 
| -	PATH=$(PNACL_BIN_PATH):$(PATH) \ | 
| -	$(LLVM_SRC_PATH)/../clang/tools/clang-format/clang-format-diff.py \ | 
| -	-p1 -style=LLVM -i | 
| +          PATH=$(PNACL_BIN_PATH):$(PATH) \ | 
| +          $(LLVM_SRC_PATH)/../clang/tools/clang-format/clang-format-diff.py \ | 
| +          -p1 -style=LLVM -i | 
|  | 
| bloat: make_symlink | 
| nm -C -S -l pnacl-sz | \ | 
| -	bloat/bloat.py --nm-output=/dev/stdin syms > build/pnacl-sz.bloat.json | 
| +          bloat/bloat.py --nm-output=/dev/stdin syms > build/pnacl-sz.bloat.json | 
| @echo See Subzero size breakdown in bloat/pnacl-sz.bloat.html | 
|  | 
| docs: | 
|  |