1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit/arm/BaselineRegisters-arm.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,60 @@ 1.4 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- 1.5 + * vim: set ts=8 sts=4 et sw=4 tw=99: 1.6 + * This Source Code Form is subject to the terms of the Mozilla Public 1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.9 + 1.10 +#ifndef jit_arm_BaselineRegisters_arm_h 1.11 +#define jit_arm_BaselineRegisters_arm_h 1.12 + 1.13 +#ifdef JS_ION 1.14 + 1.15 +#include "jit/IonMacroAssembler.h" 1.16 + 1.17 +namespace js { 1.18 +namespace jit { 1.19 + 1.20 +// r15 = program-counter 1.21 +// r14 = link-register 1.22 + 1.23 +// r13 = stack-pointer 1.24 +// r11 = frame-pointer 1.25 +static MOZ_CONSTEXPR_VAR Register BaselineFrameReg = r11; 1.26 +static MOZ_CONSTEXPR_VAR Register BaselineStackReg = sp; 1.27 + 1.28 +// ValueOperands R0, R1, and R2. 1.29 +// R0 == JSReturnReg, and R2 uses registers not 1.30 +// preserved across calls. R1 value should be 1.31 +// preserved across calls. 1.32 +static MOZ_CONSTEXPR_VAR ValueOperand R0(r3, r2); 1.33 +static MOZ_CONSTEXPR_VAR ValueOperand R1(r5, r4); 1.34 +static MOZ_CONSTEXPR_VAR ValueOperand R2(r1, r0); 1.35 + 1.36 +// BaselineTailCallReg and BaselineStubReg 1.37 +// These use registers that are not preserved across 1.38 +// calls. 1.39 +static MOZ_CONSTEXPR_VAR Register BaselineTailCallReg = r14; 1.40 +static MOZ_CONSTEXPR_VAR Register BaselineStubReg = r9; 1.41 + 1.42 +static MOZ_CONSTEXPR_VAR Register ExtractTemp0 = InvalidReg; 1.43 +static MOZ_CONSTEXPR_VAR Register ExtractTemp1 = InvalidReg; 1.44 + 1.45 +// Register used internally by MacroAssemblerARM. 1.46 +static MOZ_CONSTEXPR_VAR Register BaselineSecondScratchReg = r6; 1.47 + 1.48 +// R7 - R9 are generally available for use within stubcode. 1.49 + 1.50 +// Note that BaselineTailCallReg is actually just the link 1.51 +// register. In ARM code emission, we do not clobber BaselineTailCallReg 1.52 +// since we keep the return address for calls there. 1.53 + 1.54 +// FloatReg0 must be equal to ReturnFloatReg. 1.55 +static MOZ_CONSTEXPR_VAR FloatRegister FloatReg0 = d0; 1.56 +static MOZ_CONSTEXPR_VAR FloatRegister FloatReg1 = d1; 1.57 + 1.58 +} // namespace jit 1.59 +} // namespace js 1.60 + 1.61 +#endif // JS_ION 1.62 + 1.63 +#endif /* jit_arm_BaselineRegisters_arm_h */