/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
#include"Arm64.h"
#include"mozilla/ResultVariant.h"
namespace mozilla { namespace interceptor { namespace arm64 {
struct PCRelativeLoadTest { // Bitmask to be ANDed with the instruction to isolate the bits that this // instance is interested in
uint32_t mTestMask; // The desired bits that we want to see after masking
uint32_t mMatchBits; // If we match, mDecodeFn provide the code to decode the instruction.
LoadOrBranch (*mDecodeFn)(const uintptr_t aPC, const uint32_t aInst);
};
static LoadOrBranch ADRPDecode(const uintptr_t aPC, const uint32_t aInst) { // Keep in mind that on Windows aarch64, uint32_t is little-endian const uint32_t kMaskDataProcImmPcRelativeImmLo = 0x60000000; const uint32_t kMaskDataProcImmPcRelativeImmHi = 0x00FFFFE0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.