Bug 888088 (part 11, attempt 2) - Fix #include ordering in js/src/ion/arm/. r=nnethercote.
authorEmanuel Hoogeveen <emanuel.hoogeveen@gmail.com>
Thu, 25 Jul 2013 17:10:25 -0700
changeset 152576 77337bcdfd68e82f26c8858882a87ba5525b5ef2
parent 152575 2388401dc34059bec6c325401c909559180ad797
child 152577 f7496fddb0766955026e08155465cf4512bcc8d5
push id2859
push userakeybl@mozilla.com
push dateMon, 16 Sep 2013 19:14:59 +0000
treeherdermozilla-beta@87d3c51cd2bf [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnnethercote
bugs888088
milestone25.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 888088 (part 11, attempt 2) - Fix #include ordering in js/src/ion/arm/. r=nnethercote.
js/src/ion/arm/Architecture-arm.cpp
js/src/ion/arm/Architecture-arm.h
js/src/ion/arm/Assembler-arm.cpp
js/src/ion/arm/Assembler-arm.h
js/src/ion/arm/Bailouts-arm.cpp
js/src/ion/arm/BaselineHelpers-arm.h
js/src/ion/arm/BaselineIC-arm.cpp
js/src/ion/arm/CodeGenerator-arm.cpp
js/src/ion/arm/IonFrames-arm.h
js/src/ion/arm/Lowering-arm.cpp
js/src/ion/arm/MacroAssembler-arm.cpp
js/src/ion/arm/MacroAssembler-arm.h
js/src/ion/arm/MoveEmitter-arm.h
js/src/ion/arm/Trampoline-arm.cpp
--- a/js/src/ion/arm/Architecture-arm.cpp
+++ b/js/src/ion/arm/Architecture-arm.cpp
@@ -1,39 +1,40 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-#define HWCAP_ARMv7 (1 << 31)
+#include "ion/arm/Architecture-arm.h"
+
 #include "mozilla/StandardInteger.h"
 
-#include <sys/types.h>
+#include <elf.h>
+#include <fcntl.h>
 #include <sys/stat.h>
-#include <fcntl.h>
+#include <sys/types.h>
 #include <unistd.h>
-#include <elf.h>
+
+#include "ion/arm/Assembler-arm.h"
 
-// lame check for kernel version
-// see bug 586550
 #if !(defined(ANDROID) || defined(MOZ_B2G))
+#define HWCAP_ARMv7 (1 << 31)
 #include <asm/hwcap.h>
 #else
 #define HWCAP_VFP      (1<<0)
 #define HWCAP_VFPv3    (1<<1)
 #define HWCAP_VFPv3D16 (1<<2)
 #define HWCAP_VFPv4    (1<<3)
 #define HWCAP_IDIVA    (1<<4)
 #define HWCAP_IDIVT    (1<<5)
 #define HWCAP_NEON     (1<<6)
 #define HWCAP_ARMv7    (1<<7)
 #endif
-#include "ion/arm/Architecture-arm.h"
-#include "ion/arm/Assembler-arm.h"
+
 namespace js {
 namespace ion {
 
 uint32_t getFlags()
 {
     static bool isSet = false;
     static uint32_t flags = 0;
     if (isSet)
--- a/js/src/ion/arm/Architecture-arm.h
+++ b/js/src/ion/arm/Architecture-arm.h
@@ -2,17 +2,20 @@
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef ion_arm_Architecture_arm_h
 #define ion_arm_Architecture_arm_h
 
+#include "mozilla/StandardInteger.h"
+
 #include <limits.h>
+
 // gcc appears to use __ARM_PCS_VFP to denote that the target is a hard-float target.
 #ifdef __ARM_PCS_VFP
 #define JS_CPU_ARM_HARDFP
 #endif
 namespace js {
 namespace ion {
 
 static const uint32_t STACK_SLOT_SIZE       = 4;
--- a/js/src/ion/arm/Assembler-arm.cpp
+++ b/js/src/ion/arm/Assembler-arm.cpp
@@ -1,24 +1,26 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
+#include "ion/arm/Assembler-arm.h"
+
 #include "mozilla/DebugOnly.h"
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/arm/Assembler-arm.h"
-#include "ion/arm/MacroAssembler-arm.h"
-#include "gc/Marking.h"
+#include "jscompartment.h"
 #include "jsutil.h"
+
 #include "assembler/jit/ExecutableAllocator.h"
-#include "jscompartment.h"
+#include "gc/Marking.h"
 #include "ion/IonCompartment.h"
+#include "ion/arm/MacroAssembler-arm.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::CountLeadingZeroes32;
 
 ABIArgGenerator::ABIArgGenerator() :
 #if defined(JS_CPU_ARM_HARDFP)
--- a/js/src/ion/arm/Assembler-arm.h
+++ b/js/src/ion/arm/Assembler-arm.h
@@ -6,21 +6,21 @@
 
 #ifndef ion_arm_Assembler_arm_h
 #define ion_arm_Assembler_arm_h
 
 #include "mozilla/Attributes.h"
 #include "mozilla/MathAlgorithms.h"
 #include "mozilla/Util.h"
 
-#include "ion/shared/Assembler-shared.h"
 #include "assembler/assembler/AssemblerBufferWithConstantPool.h"
+#include "ion/arm/Architecture-arm.h"
 #include "ion/CompactBuffer.h"
 #include "ion/IonCode.h"
-#include "ion/arm/Architecture-arm.h"
+#include "ion/shared/Assembler-shared.h"
 #include "ion/shared/IonAssemblerBufferWithConstantPools.h"
 
 namespace js {
 namespace ion {
 
 //NOTE: there are duplicates in this list!
 // sometimes we want to specifically refer to the
 // link register as a link register (bl lr is much
--- a/js/src/ion/arm/Bailouts-arm.cpp
+++ b/js/src/ion/arm/Bailouts-arm.cpp
@@ -1,16 +1,17 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "jscntxt.h"
 #include "jscompartment.h"
+
 #include "ion/Bailouts.h"
 #include "ion/IonCompartment.h"
 
 using namespace js;
 using namespace js::ion;
 
 #if 0
 // no clue what these asserts should be.
--- a/js/src/ion/arm/BaselineHelpers-arm.h
+++ b/js/src/ion/arm/BaselineHelpers-arm.h
@@ -3,21 +3,20 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef ion_arm_BaselineHelpers_arm_h
 #define ion_arm_BaselineHelpers_arm_h
 
 #ifdef JS_ION
-
+#include "ion/BaselineFrame.h"
+#include "ion/BaselineIC.h"
+#include "ion/BaselineRegisters.h"
 #include "ion/IonMacroAssembler.h"
-#include "ion/BaselineFrame.h"
-#include "ion/BaselineRegisters.h"
-#include "ion/BaselineIC.h"
 
 namespace js {
 namespace ion {
 
 // Distance from sp to the top Value inside an IC stub (no return address on the stack on ARM).
 static const size_t ICStackValueOffset = 0;
 
 inline void
--- a/js/src/ion/arm/BaselineIC-arm.cpp
+++ b/js/src/ion/arm/BaselineIC-arm.cpp
@@ -1,18 +1,18 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-#include "ion/BaselineJIT.h"
-#include "ion/BaselineIC.h"
 #include "ion/BaselineCompiler.h"
 #include "ion/BaselineHelpers.h"
+#include "ion/BaselineIC.h"
+#include "ion/BaselineJIT.h"
 #include "ion/IonLinker.h"
 
 using namespace js;
 using namespace js::ion;
 
 namespace js {
 namespace ion {
 
--- a/js/src/ion/arm/CodeGenerator-arm.cpp
+++ b/js/src/ion/arm/CodeGenerator-arm.cpp
@@ -1,32 +1,33 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
+#include "ion/arm/CodeGenerator-arm.h"
+
 #include "mozilla/MathAlgorithms.h"
 
 #include "jscntxt.h"
 #include "jscompartment.h"
 #include "jsnum.h"
 
-#include "ion/arm/CodeGenerator-arm.h"
-#include "ion/PerfSpewer.h"
 #include "ion/CodeGenerator.h"
 #include "ion/IonCompartment.h"
 #include "ion/IonFrames.h"
 #include "ion/MIR.h"
 #include "ion/MIRGraph.h"
-#include "ion/shared/CodeGenerator-shared-inl.h"
+#include "ion/PerfSpewer.h"
 #include "vm/Shape.h"
 
 #include "jsscriptinlines.h"
 
+#include "ion/shared/CodeGenerator-shared-inl.h"
 #include "vm/Shape-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::FloorLog2;
 
 // shared
--- a/js/src/ion/arm/IonFrames-arm.h
+++ b/js/src/ion/arm/IonFrames-arm.h
@@ -3,17 +3,16 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef ion_arm_IonFrames_arm_h
 #define ion_arm_IonFrames_arm_h
 
 #include "ion/shared/IonFrames-shared.h"
-//#include "ion/arm/Assembler-arm.h"
 
 namespace js {
 namespace ion {
 
 class IonFramePrefix;
 // Layout of the frame prefix. This assumes the stack architecture grows down.
 // If this is ever not the case, we'll have to refactor.
 class IonCommonFrameLayout
--- a/js/src/ion/arm/Lowering-arm.cpp
+++ b/js/src/ion/arm/Lowering-arm.cpp
@@ -1,19 +1,20 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/MIR.h"
+#include "ion/arm/Assembler-arm.h"
 #include "ion/Lowering.h"
-#include "ion/arm/Assembler-arm.h"
+#include "ion/MIR.h"
+
 #include "ion/shared/Lowering-shared-inl.h"
 
 using namespace js;
 using namespace js::ion;
 
 using mozilla::FloorLog2;
 
 bool
--- a/js/src/ion/arm/MacroAssembler-arm.cpp
+++ b/js/src/ion/arm/MacroAssembler-arm.cpp
@@ -1,18 +1,19 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
+#include "ion/arm/MacroAssembler-arm.h"
+
 #include "mozilla/DebugOnly.h"
 #include "mozilla/MathAlgorithms.h"
 
-#include "ion/arm/MacroAssembler-arm.h"
 #include "ion/BaselineFrame.h"
 #include "ion/MoveEmitter.h"
 
 using namespace js;
 using namespace ion;
 
 using mozilla::Abs;
 
--- a/js/src/ion/arm/MacroAssembler-arm.h
+++ b/js/src/ion/arm/MacroAssembler-arm.h
@@ -4,21 +4,22 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef ion_arm_MacroAssembler_arm_h
 #define ion_arm_MacroAssembler_arm_h
 
 #include "mozilla/DebugOnly.h"
 
+#include "jsopcode.h"
+
 #include "ion/arm/Assembler-arm.h"
 #include "ion/IonCaches.h"
 #include "ion/IonFrames.h"
 #include "ion/MoveResolver.h"
-#include "jsopcode.h"
 
 using mozilla::DebugOnly;
 
 namespace js {
 namespace ion {
 
 static Register CallReg = ip;
 static const int defaultShift = 3;
--- a/js/src/ion/arm/MoveEmitter-arm.h
+++ b/js/src/ion/arm/MoveEmitter-arm.h
@@ -2,18 +2,18 @@
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef ion_arm_MoveEmitter_arm_h
 #define ion_arm_MoveEmitter_arm_h
 
+#include "ion/IonMacroAssembler.h"
 #include "ion/MoveResolver.h"
-#include "ion/IonMacroAssembler.h"
 
 namespace js {
 namespace ion {
 
 class CodeGenerator;
 
 class MoveEmitterARM
 {
--- a/js/src/ion/arm/Trampoline-arm.cpp
+++ b/js/src/ion/arm/Trampoline-arm.cpp
@@ -1,24 +1,25 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "jscompartment.h"
+
 #include "assembler/assembler/MacroAssembler.h"
+#include "ion/arm/BaselineHelpers-arm.h"
+#include "ion/Bailouts.h"
+#include "ion/ExecutionModeInlines.h"
 #include "ion/IonCompartment.h"
+#include "ion/IonFrames.h"
 #include "ion/IonLinker.h"
-#include "ion/IonFrames.h"
 #include "ion/IonSpewer.h"
-#include "ion/Bailouts.h"
 #include "ion/VMFunctions.h"
-#include "ion/arm/BaselineHelpers-arm.h"
-#include "ion/ExecutionModeInlines.h"
 
 using namespace js;
 using namespace js::ion;
 
 static void
 GenerateReturn(MacroAssembler &masm, int returnCode)
 {
     // Restore non-volatile registers