mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-25 15:15:40 +00:00
dep/vixl: Fix ARM32 build
This commit is contained in:
parent
890f3fcf5d
commit
5bf9e1d655
|
@ -27,10 +27,10 @@
|
||||||
#ifndef VIXL_AARCH32_ASSEMBLER_AARCH32_H_
|
#ifndef VIXL_AARCH32_ASSEMBLER_AARCH32_H_
|
||||||
#define VIXL_AARCH32_ASSEMBLER_AARCH32_H_
|
#define VIXL_AARCH32_ASSEMBLER_AARCH32_H_
|
||||||
|
|
||||||
#include "assembler-base-vixl.h"
|
#include "../assembler-base-vixl.h"
|
||||||
|
|
||||||
#include "aarch32/instructions-aarch32.h"
|
#include "instructions-aarch32.h"
|
||||||
#include "aarch32/location-aarch32.h"
|
#include "location-aarch32.h"
|
||||||
|
|
||||||
namespace vixl {
|
namespace vixl {
|
||||||
namespace aarch32 {
|
namespace aarch32 {
|
||||||
|
@ -113,20 +113,6 @@ class Assembler : public internal::AssemblerBase {
|
||||||
#elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
|
#elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
|
||||||
USE(isa_);
|
USE(isa_);
|
||||||
VIXL_ASSERT(isa == T32);
|
VIXL_ASSERT(isa == T32);
|
||||||
#endif
|
|
||||||
}
|
|
||||||
explicit Assembler(size_t capacity, InstructionSet isa = kDefaultISA)
|
|
||||||
: AssemblerBase(capacity),
|
|
||||||
isa_(isa),
|
|
||||||
first_condition_(al),
|
|
||||||
it_mask_(0),
|
|
||||||
has_32_dregs_(true),
|
|
||||||
allow_unpredictable_(false),
|
|
||||||
allow_strongly_discouraged_(false) {
|
|
||||||
#if defined(VIXL_INCLUDE_TARGET_A32_ONLY)
|
|
||||||
VIXL_ASSERT(isa == A32);
|
|
||||||
#elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
|
|
||||||
VIXL_ASSERT(isa == T32);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
Assembler(byte* buffer, size_t capacity, InstructionSet isa = kDefaultISA)
|
Assembler(byte* buffer, size_t capacity, InstructionSet isa = kDefaultISA)
|
||||||
|
@ -214,7 +200,7 @@ class Assembler : public internal::AssemblerBase {
|
||||||
VIXL_ASSERT(literal->IsManuallyPlaced());
|
VIXL_ASSERT(literal->IsManuallyPlaced());
|
||||||
literal->SetLocation(this, GetCursorOffset());
|
literal->SetLocation(this, GetCursorOffset());
|
||||||
literal->MarkBound();
|
literal->MarkBound();
|
||||||
GetBuffer()->EnsureSpaceFor(literal->GetSize());
|
VIXL_ASSERT(GetBuffer()->HasSpaceFor(literal->GetSize()));
|
||||||
GetBuffer()->EmitData(literal->GetDataAddress(), literal->GetSize());
|
GetBuffer()->EmitData(literal->GetDataAddress(), literal->GetSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ extern "C" {
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "globals-vixl.h"
|
#include "../globals-vixl.h"
|
||||||
|
|
||||||
|
|
||||||
namespace vixl {
|
namespace vixl {
|
||||||
|
|
|
@ -33,8 +33,8 @@ extern "C" {
|
||||||
|
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
|
||||||
#include "aarch32/constants-aarch32.h"
|
#include "constants-aarch32.h"
|
||||||
#include "aarch32/operands-aarch32.h"
|
#include "operands-aarch32.h"
|
||||||
|
|
||||||
// Microsoft Visual C++ defines a `mvn` macro that conflicts with our own
|
// Microsoft Visual C++ defines a `mvn` macro that conflicts with our own
|
||||||
// definition.
|
// definition.
|
||||||
|
|
|
@ -34,9 +34,9 @@ extern "C" {
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
|
|
||||||
#include "code-buffer-vixl.h"
|
#include "../code-buffer-vixl.h"
|
||||||
#include "utils-vixl.h"
|
#include "../utils-vixl.h"
|
||||||
#include "aarch32/constants-aarch32.h"
|
#include "constants-aarch32.h"
|
||||||
|
|
||||||
#if defined(__arm__) && !defined(__SOFTFP__)
|
#if defined(__arm__) && !defined(__SOFTFP__)
|
||||||
#define HARDFLOAT __attribute__((noinline, pcs("aapcs-vfp")))
|
#define HARDFLOAT __attribute__((noinline, pcs("aapcs-vfp")))
|
||||||
|
|
|
@ -36,9 +36,9 @@ extern "C" {
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
#include "invalset-vixl.h"
|
#include "../invalset-vixl.h"
|
||||||
#include "pool-manager.h"
|
#include "../pool-manager.h"
|
||||||
#include "utils-vixl.h"
|
#include "../utils-vixl.h"
|
||||||
|
|
||||||
#include "constants-aarch32.h"
|
#include "constants-aarch32.h"
|
||||||
#include "instructions-aarch32.h"
|
#include "instructions-aarch32.h"
|
||||||
|
|
|
@ -28,15 +28,15 @@
|
||||||
#ifndef VIXL_AARCH32_MACRO_ASSEMBLER_AARCH32_H_
|
#ifndef VIXL_AARCH32_MACRO_ASSEMBLER_AARCH32_H_
|
||||||
#define VIXL_AARCH32_MACRO_ASSEMBLER_AARCH32_H_
|
#define VIXL_AARCH32_MACRO_ASSEMBLER_AARCH32_H_
|
||||||
|
|
||||||
#include "code-generation-scopes-vixl.h"
|
#include "../code-generation-scopes-vixl.h"
|
||||||
#include "macro-assembler-interface.h"
|
#include "../macro-assembler-interface.h"
|
||||||
#include "pool-manager-impl.h"
|
#include "../pool-manager-impl.h"
|
||||||
#include "pool-manager.h"
|
#include "../pool-manager.h"
|
||||||
#include "utils-vixl.h"
|
#include "../utils-vixl.h"
|
||||||
|
|
||||||
#include "aarch32/assembler-aarch32.h"
|
#include "assembler-aarch32.h"
|
||||||
#include "aarch32/instructions-aarch32.h"
|
#include "instructions-aarch32.h"
|
||||||
#include "aarch32/operands-aarch32.h"
|
#include "operands-aarch32.h"
|
||||||
|
|
||||||
namespace vixl {
|
namespace vixl {
|
||||||
|
|
||||||
|
@ -272,20 +272,6 @@ class MacroAssembler : public Assembler, public MacroAssemblerInterface {
|
||||||
true);
|
true);
|
||||||
#else
|
#else
|
||||||
USE(allow_macro_instructions_);
|
USE(allow_macro_instructions_);
|
||||||
#endif
|
|
||||||
}
|
|
||||||
explicit MacroAssembler(size_t size, InstructionSet isa = kDefaultISA)
|
|
||||||
: Assembler(size, isa),
|
|
||||||
available_(r12),
|
|
||||||
current_scratch_scope_(NULL),
|
|
||||||
pool_manager_(4 /*header_size*/,
|
|
||||||
4 /*alignment*/,
|
|
||||||
4 /*buffer_alignment*/),
|
|
||||||
generate_simulator_code_(VIXL_AARCH32_GENERATE_SIMULATOR_CODE),
|
|
||||||
pool_end_(NULL) {
|
|
||||||
#ifdef VIXL_DEBUG
|
|
||||||
SetAllowMacroInstructions( // NOLINT(clang-analyzer-optin.cplusplus.VirtualCall)
|
|
||||||
true);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
MacroAssembler(byte* buffer, size_t size, InstructionSet isa = kDefaultISA)
|
MacroAssembler(byte* buffer, size_t size, InstructionSet isa = kDefaultISA)
|
||||||
|
@ -490,8 +476,7 @@ class MacroAssembler : public Assembler, public MacroAssemblerInterface {
|
||||||
|
|
||||||
void EnsureEmitFor(uint32_t size) {
|
void EnsureEmitFor(uint32_t size) {
|
||||||
EnsureEmitPoolsFor(size);
|
EnsureEmitPoolsFor(size);
|
||||||
VIXL_ASSERT(GetBuffer()->HasSpaceFor(size) || GetBuffer()->IsManaged());
|
VIXL_ASSERT(GetBuffer()->HasSpaceFor(size));
|
||||||
GetBuffer()->EnsureSpaceFor(size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AliasesAvailableScratchRegister(Register reg) {
|
bool AliasesAvailableScratchRegister(Register reg) {
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#ifndef VIXL_AARCH32_OPERANDS_AARCH32_H_
|
#ifndef VIXL_AARCH32_OPERANDS_AARCH32_H_
|
||||||
#define VIXL_AARCH32_OPERANDS_AARCH32_H_
|
#define VIXL_AARCH32_OPERANDS_AARCH32_H_
|
||||||
|
|
||||||
#include "aarch32/instructions-aarch32.h"
|
#include "instructions-aarch32.h"
|
||||||
|
|
||||||
namespace vixl {
|
namespace vixl {
|
||||||
namespace aarch32 {
|
namespace aarch32 {
|
||||||
|
|
|
@ -135,7 +135,7 @@ void Label::EmitPoolObject(MacroAssemblerInterface* masm) {
|
||||||
MacroAssembler* macro_assembler = static_cast<MacroAssembler*>(masm);
|
MacroAssembler* macro_assembler = static_cast<MacroAssembler*>(masm);
|
||||||
|
|
||||||
// Add a new branch to this label.
|
// Add a new branch to this label.
|
||||||
macro_assembler->GetBuffer()->EnsureSpaceFor(kMaxInstructionSizeInBytes);
|
VIXL_ASSERT(macro_assembler->GetBuffer()->HasSpaceFor(kMaxInstructionSizeInBytes));
|
||||||
ExactAssemblyScopeWithoutPoolsCheck guard(macro_assembler,
|
ExactAssemblyScopeWithoutPoolsCheck guard(macro_assembler,
|
||||||
kMaxInstructionSizeInBytes,
|
kMaxInstructionSizeInBytes,
|
||||||
ExactAssemblyScope::kMaximumSize);
|
ExactAssemblyScope::kMaximumSize);
|
||||||
|
@ -145,7 +145,7 @@ void Label::EmitPoolObject(MacroAssemblerInterface* masm) {
|
||||||
void RawLiteral::EmitPoolObject(MacroAssemblerInterface* masm) {
|
void RawLiteral::EmitPoolObject(MacroAssemblerInterface* masm) {
|
||||||
Assembler* assembler = static_cast<Assembler*>(masm->AsAssemblerBase());
|
Assembler* assembler = static_cast<Assembler*>(masm->AsAssemblerBase());
|
||||||
|
|
||||||
assembler->GetBuffer()->EnsureSpaceFor(GetSize());
|
VIXL_ASSERT(assembler->GetBuffer()->HasSpaceFor(GetSize()));
|
||||||
assembler->GetBuffer()->EmitData(GetDataAddress(), GetSize());
|
assembler->GetBuffer()->EmitData(GetDataAddress(), GetSize());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue