b9c9932202
assembler-arm64.h and assembler-arm64-inl.h have a B() function which conflicts with the B macro in bytecode-utils.h. Headers that leak macros can be annoying to deal with, in this case we can't simply undef B at the end of source files that include bytecode-utils.h because the second source file that includes bytecode-utils.h won't see the B macro. Let's just move this macro into the two unittest files that include this header. Bug: chromium:746958 Change-Id: I588b73fe81615f882a0e010c92ba187d3bc2bf25 Reviewed-on: https://chromium-review.googlesource.com/758779 Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49258}
37 lines
1.0 KiB
C
37 lines
1.0 KiB
C
// Copyright 2015 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef V8_UNITTESTS_INTERPRETER_BYTECODE_UTILS_H_
|
|
#define V8_UNITTESTS_INTERPRETER_BYTECODE_UTILS_H_
|
|
|
|
#include "src/frames.h"
|
|
|
|
#if V8_TARGET_LITTLE_ENDIAN
|
|
|
|
#define EXTRACT(x, n) static_cast<uint8_t>((x) >> (8 * n))
|
|
#define U16(i) EXTRACT(i, 0), EXTRACT(i, 1)
|
|
#define U32(i) EXTRACT(i, 0), EXTRACT(i, 1), EXTRACT(i, 2), EXTRACT(i, 3)
|
|
|
|
#elif V8_TARGET_BIG_ENDIAN
|
|
|
|
#define EXTRACT(x, n) static_cast<uint8_t>((x) >> (8 * n))
|
|
|
|
#define U16(i) EXTRACT(i, 1), EXTRACT(i, 0)
|
|
#define U32(i) EXTRACT(i, 3), EXTRACT(i, 2), EXTRACT(i, 1), EXTRACT(i, 0)
|
|
|
|
#else
|
|
|
|
#error "Unknown Architecture"
|
|
|
|
#endif
|
|
|
|
#define U8(i) static_cast<uint8_t>(i)
|
|
#define REG_OPERAND(i) \
|
|
(InterpreterFrameConstants::kRegisterFileFromFp / kPointerSize - (i))
|
|
#define R8(i) static_cast<uint8_t>(REG_OPERAND(i))
|
|
#define R16(i) U16(REG_OPERAND(i))
|
|
#define R32(i) U32(REG_OPERAND(i))
|
|
|
|
#endif // V8_UNITTESTS_INTERPRETER_BYTECODE_UTILS_H_
|