dep/vixl: Fix ARM32 build

This commit is contained in:
Stenzek 2024-06-29 22:44:53 +10:00
parent 890f3fcf5d
commit 5bf9e1d655
No known key found for this signature in database
8 changed files with 25 additions and 54 deletions

View file

@ -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());
} }

View file

@ -32,7 +32,7 @@ extern "C" {
#include <stdint.h> #include <stdint.h>
} }
#include "globals-vixl.h" #include "../globals-vixl.h"
namespace vixl { namespace vixl {

View file

@ -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.

View file

@ -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")))

View file

@ -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"

View file

@ -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) {

View file

@ -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 {

View file

@ -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());
} }
} }