X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/ba379fdc102753d6be2c4d937058fe40257329fe..14957cd040308e3eeec43d26bae5d76da13fcd85:/assembler/CodeLocation.h?ds=inline diff --git a/assembler/CodeLocation.h b/assembler/CodeLocation.h index b910b6f..9500b1e 100644 --- a/assembler/CodeLocation.h +++ b/assembler/CodeLocation.h @@ -26,9 +26,7 @@ #ifndef CodeLocation_h #define CodeLocation_h -#include - -#include +#include "MacroAssemblerCodeRef.h" #if ENABLE(ASSEMBLER) @@ -39,6 +37,7 @@ class CodeLocationLabel; class CodeLocationJump; class CodeLocationCall; class CodeLocationNearCall; +class CodeLocationDataLabelCompact; class CodeLocationDataLabel32; class CodeLocationDataLabelPtr; @@ -62,6 +61,7 @@ public: CodeLocationNearCall nearCallAtOffset(int offset); CodeLocationDataLabelPtr dataLabelPtrAtOffset(int offset); CodeLocationDataLabel32 dataLabel32AtOffset(int offset); + CodeLocationDataLabelCompact dataLabelCompactAtOffset(int offset); protected: CodeLocationCommon() @@ -128,6 +128,15 @@ public: : CodeLocationCommon(MacroAssemblerCodePtr(location)) {} }; +class CodeLocationDataLabelCompact : public CodeLocationCommon { +public: + CodeLocationDataLabelCompact() { } + explicit CodeLocationDataLabelCompact(MacroAssemblerCodePtr location) + : CodeLocationCommon(location) { } + explicit CodeLocationDataLabelCompact(void* location) + : CodeLocationCommon(MacroAssemblerCodePtr(location)) { } +}; + class CodeLocationDataLabelPtr : public CodeLocationCommon { public: CodeLocationDataLabelPtr() {} @@ -179,6 +188,12 @@ inline CodeLocationDataLabel32 CodeLocationCommon::dataLabel32AtOffset(int offse return CodeLocationDataLabel32(reinterpret_cast(dataLocation()) + offset); } +inline CodeLocationDataLabelCompact CodeLocationCommon::dataLabelCompactAtOffset(int offset) +{ + ASSERT_VALID_CODE_OFFSET(offset); + return CodeLocationDataLabelCompact(reinterpret_cast(dataLocation()) + offset); +} + } // namespace JSC #endif // ENABLE(ASSEMBLER)