|
@@ -1,75 +0,0 @@
|
|
|
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
-From: Richard Townsend <[email protected]>
|
|
|
-Date: Wed, 24 Apr 2019 13:57:36 +0100
|
|
|
-Subject: Workaround an undefined symbol error
|
|
|
-
|
|
|
-Previously, builds configured with dcheck_always_on=true would error
|
|
|
-with messages like this in the log:
|
|
|
- lld-link: error: undefined symbol: public: bool __cdecl
|
|
|
- v8::internal::CPURegister::IsZero(void) const
|
|
|
-
|
|
|
-By moving some functions out of the the arm64-assembler header file,
|
|
|
-this error no longer seems to happen.
|
|
|
-
|
|
|
-diff --git a/src/codegen/arm64/assembler-arm64.cc b/src/codegen/arm64/assembler-arm64.cc
|
|
|
-index 65e7bc6dbda179bb7923c7267ad717b93ffdcc04..325560a6375b2e2b03ab9c0b44deb994322685ce 100644
|
|
|
---- a/src/codegen/arm64/assembler-arm64.cc
|
|
|
-+++ b/src/codegen/arm64/assembler-arm64.cc
|
|
|
-@@ -3793,6 +3793,22 @@ void Assembler::MoveWide(const Register& rd, uint64_t imm, int shift,
|
|
|
- ImmMoveWide(static_cast<int>(imm)) | ShiftMoveWide(shift));
|
|
|
- }
|
|
|
-
|
|
|
-+Instr Assembler::RmNot31(CPURegister rm) {
|
|
|
-+ DCHECK_NE(rm.code(), kSPRegInternalCode);
|
|
|
-+ DCHECK(!rm.IsZero());
|
|
|
-+ return Rm(rm);
|
|
|
-+}
|
|
|
-+
|
|
|
-+Instr Assembler::RdSP(Register rd) {
|
|
|
-+ DCHECK(!rd.IsZero());
|
|
|
-+ return (rd.code() & kRegCodeMask) << Rd_offset;
|
|
|
-+}
|
|
|
-+
|
|
|
-+Instr Assembler::RnSP(Register rn) {
|
|
|
-+ DCHECK(!rn.IsZero());
|
|
|
-+ return (rn.code() & kRegCodeMask) << Rn_offset;
|
|
|
-+}
|
|
|
-+
|
|
|
- void Assembler::AddSub(const Register& rd, const Register& rn,
|
|
|
- const Operand& operand, FlagsUpdate S, AddSubOp op) {
|
|
|
- DCHECK_EQ(rd.SizeInBits(), rn.SizeInBits());
|
|
|
-diff --git a/src/codegen/arm64/assembler-arm64.h b/src/codegen/arm64/assembler-arm64.h
|
|
|
-index 589300ec63121d939a147545715711c48fe217d2..4b90e5a82dff985fde6c9cbfe0816dd5751e32fe 100644
|
|
|
---- a/src/codegen/arm64/assembler-arm64.h
|
|
|
-+++ b/src/codegen/arm64/assembler-arm64.h
|
|
|
-@@ -2732,11 +2732,7 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
|
|
|
- return rm.code() << Rm_offset;
|
|
|
- }
|
|
|
-
|
|
|
-- static Instr RmNot31(CPURegister rm) {
|
|
|
-- DCHECK_NE(rm.code(), kSPRegInternalCode);
|
|
|
-- DCHECK(!rm.IsZero());
|
|
|
-- return Rm(rm);
|
|
|
-- }
|
|
|
-+ static Instr RmNot31(CPURegister rm);
|
|
|
-
|
|
|
- static Instr Ra(CPURegister ra) {
|
|
|
- DCHECK_NE(ra.code(), kSPRegInternalCode);
|
|
|
-@@ -2760,15 +2756,8 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
|
|
|
-
|
|
|
- // These encoding functions allow the stack pointer to be encoded, and
|
|
|
- // disallow the zero register.
|
|
|
-- static Instr RdSP(Register rd) {
|
|
|
-- DCHECK(!rd.IsZero());
|
|
|
-- return (rd.code() & kRegCodeMask) << Rd_offset;
|
|
|
-- }
|
|
|
--
|
|
|
-- static Instr RnSP(Register rn) {
|
|
|
-- DCHECK(!rn.IsZero());
|
|
|
-- return (rn.code() & kRegCodeMask) << Rn_offset;
|
|
|
-- }
|
|
|
-+ static Instr RdSP(Register rd);
|
|
|
-+ static Instr RnSP(Register rn);
|
|
|
-
|
|
|
- // Flags encoding.
|
|
|
- inline static Instr Flags(FlagsUpdate S);
|