From 6882a04fb36642862b11efe514251d32070c3d65 Mon Sep 17 00:00:00 2001 From: Konstantin Tokarev Date: Thu, 25 Aug 2016 19:20:41 +0300 Subject: Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443) Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev --- Source/JavaScriptCore/dfg/DFGOSREntry.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'Source/JavaScriptCore/dfg/DFGOSREntry.h') diff --git a/Source/JavaScriptCore/dfg/DFGOSREntry.h b/Source/JavaScriptCore/dfg/DFGOSREntry.h index a5c264cd6..04aaabfee 100644 --- a/Source/JavaScriptCore/dfg/DFGOSREntry.h +++ b/Source/JavaScriptCore/dfg/DFGOSREntry.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Apple Inc. All rights reserved. + * Copyright (C) 2011, 2013, 2015 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -38,11 +38,31 @@ class CodeBlock; namespace DFG { #if ENABLE(DFG_JIT) +struct OSREntryReshuffling { + OSREntryReshuffling() { } + + OSREntryReshuffling(int fromOffset, int toOffset) + : fromOffset(fromOffset) + , toOffset(toOffset) + { + } + + int fromOffset; + int toOffset; +}; + struct OSREntryData { unsigned m_bytecodeIndex; unsigned m_machineCodeOffset; Operands m_expectedValues; + // Use bitvectors here because they tend to only require one word. BitVector m_localsForcedDouble; + BitVector m_localsForcedMachineInt; + Vector m_reshufflings; + BitVector m_machineStackUsed; + + void dumpInContext(PrintStream&, DumpContext*) const; + void dump(PrintStream&) const; }; inline unsigned getOSREntryDataBytecodeIndex(OSREntryData* osrEntryData) @@ -50,6 +70,8 @@ inline unsigned getOSREntryDataBytecodeIndex(OSREntryData* osrEntryData) return osrEntryData->m_bytecodeIndex; } +// Returns a pointer to a data buffer that the OSR entry thunk will recognize and +// parse. If this returns null, it means void* prepareOSREntry(ExecState*, CodeBlock*, unsigned bytecodeIndex); #else inline void* prepareOSREntry(ExecState*, CodeBlock*, unsigned) { return 0; } -- cgit v1.2.1