From 2daae5fd11344eaa88a0d92b0f6d65f8d2255c00 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Thu, 2 Jun 2011 12:07:03 +0100 Subject: Merge WebKit at r84325: Initial merge by git. Change-Id: Ic1a909300ecc0a13ddc6b4e784371d2ac6e3d59b --- .../assembler/AssemblerBufferWithConstantPool.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'Source/JavaScriptCore/assembler/AssemblerBufferWithConstantPool.h') diff --git a/Source/JavaScriptCore/assembler/AssemblerBufferWithConstantPool.h b/Source/JavaScriptCore/assembler/AssemblerBufferWithConstantPool.h index 9a9618f..3cfc67b 100644 --- a/Source/JavaScriptCore/assembler/AssemblerBufferWithConstantPool.h +++ b/Source/JavaScriptCore/assembler/AssemblerBufferWithConstantPool.h @@ -85,7 +85,14 @@ namespace JSC { template class AssemblerBufferWithConstantPool: public AssemblerBuffer { typedef SegmentedVector LoadOffsets; + using AssemblerBuffer::putIntegral; + using AssemblerBuffer::putIntegralUnchecked; public: + typedef struct { + short high; + short low; + } TwoShorts; + enum { UniqueConst, ReusableConst, @@ -171,6 +178,19 @@ public: correctDeltas(8); } + void putIntegral(TwoShorts value) + { + if (m_size > m_capacity - sizeof(TwoShorts)) + grow(); + putIntegralUnchecked(value); + } + + void putIntegralUnchecked(TwoShorts value) + { + putIntegralUnchecked(value.high); + putIntegralUnchecked(value.low); + } + int size() { flushIfNoSpaceFor(maxInstructionSize, sizeof(uint64_t)); -- cgit v1.1