X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gold%2Faarch64.cc;h=a45d3fd6671985332d7b77ab02846e8761435684;hb=refs%2Fheads%2Fsandbox%2Fakazmin%2Ftizen_version;hp=bc85c833415cbfb0ef9a22951908eac54eb079fd;hpb=0eccf19f96d6218dd7c2f8d13f0546c2b942cc08;p=external%2Fbinutils.git diff --git a/gold/aarch64.cc b/gold/aarch64.cc index bc85c83..a45d3fd 100644 --- a/gold/aarch64.cc +++ b/gold/aarch64.cc @@ -1,6 +1,6 @@ // aarch64.cc -- aarch64 target support for gold. -// Copyright (C) 2014-2015 Free Software Foundation, Inc. +// Copyright (C) 2014-2019 Free Software Foundation, Inc. // Written by Jing Yu and Han Shen . // This file is part of gold. @@ -110,6 +110,10 @@ public: is_adrp(const Insntype insn) { return (insn & 0x9F000000) == 0x90000000; } + static bool + is_mrs_tpidr_el0(const Insntype insn) + { return (insn & 0xFFFFFFE0) == 0xd53bd040; } + static unsigned int aarch64_rm(const Insntype insn) { return aarch64_bits(insn, 16, 5); } @@ -156,7 +160,7 @@ public: uint64_t imm = ((adrp >> 29) & mask2) | (((adrp >> 5) & mask19) << 2); // Retrieve msb of 21-bit-signed imm for sign extension. uint64_t msbt = (imm >> 20) & 1; - // Real value is imm multipled by 4k. Value now has 33-bit information. + // Real value is imm multiplied by 4k. Value now has 33-bit information. int64_t value = imm << 12; // Sign extend to 64-bit by repeating msbt 31 (64-33) times and merge it // with value. @@ -266,7 +270,7 @@ public: uint32_t v = 0; uint32_t opc_v = 0; - /* Bail out quickly if INSN doesn't fall into the the load-store + /* Bail out quickly if INSN doesn't fall into the load-store encoding space. */ if (!aarch64_ldst (insn)) return false; @@ -784,8 +788,14 @@ Stub_template_repertoire::Stub_template_repertoire() 0x14000000, /* b