diff options
author | Myles Borins <mylesborins@google.com> | 2019-09-24 11:56:38 -0400 |
---|---|---|
committer | Myles Borins <myles.borins@gmail.com> | 2019-10-07 03:19:23 -0400 |
commit | f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2 (patch) | |
tree | f5edbccb3ffda2573d70a6e291e7157f290e0ae0 /deps/v8/src/execution/arm64/simulator-arm64.h | |
parent | ffd22e81983056d09c064c59343a0e488236272d (diff) | |
download | android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.gz android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.bz2 android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.zip |
deps: update V8 to 7.8.279.9
PR-URL: https://github.com/nodejs/node/pull/29694
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Diffstat (limited to 'deps/v8/src/execution/arm64/simulator-arm64.h')
-rw-r--r-- | deps/v8/src/execution/arm64/simulator-arm64.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/deps/v8/src/execution/arm64/simulator-arm64.h b/deps/v8/src/execution/arm64/simulator-arm64.h index ca1cef61ae..4a493ec696 100644 --- a/deps/v8/src/execution/arm64/simulator-arm64.h +++ b/deps/v8/src/execution/arm64/simulator-arm64.h @@ -1273,6 +1273,45 @@ class Simulator : public DecoderVisitor, public SimulatorBase { static inline const char* VRegNameForCode(unsigned code); static inline int CodeFromName(const char* name); + enum PointerType { kDataPointer, kInstructionPointer }; + + struct PACKey { + uint64_t high; + uint64_t low; + int number; + }; + + static const PACKey kPACKeyIA; + + // Current implementation is that all pointers are tagged. + static bool HasTBI(uint64_t ptr, PointerType type) { + USE(ptr, type); + return true; + } + + // Current implementation uses 48-bit virtual addresses. + static int GetBottomPACBit(uint64_t ptr, int ttbr) { + USE(ptr, ttbr); + DCHECK((ttbr == 0) || (ttbr == 1)); + return 48; + } + + // The top PAC bit is 55 for the purposes of relative bit fields with TBI, + // however bit 55 is the TTBR bit regardless of TBI so isn't part of the PAC + // codes in pointers. + static int GetTopPACBit(uint64_t ptr, PointerType type) { + return HasTBI(ptr, type) ? 55 : 63; + } + + // Armv8.3 Pointer authentication helpers. + static uint64_t CalculatePACMask(uint64_t ptr, PointerType type, int ext_bit); + static uint64_t ComputePAC(uint64_t data, uint64_t context, PACKey key); + static uint64_t AuthPAC(uint64_t ptr, uint64_t context, PACKey key, + PointerType type); + static uint64_t AddPAC(uint64_t ptr, uint64_t context, PACKey key, + PointerType type); + static uint64_t StripPAC(uint64_t ptr, PointerType type); + protected: // Simulation helpers ------------------------------------ bool ConditionPassed(Condition cond) { |