Changeset 82617 in webkit
- Timestamp:
- Mar 31, 2011 2:25:42 PM (13 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r82522 r82617 1 2011-03-31 Thouraya ANDOLSI <thouraya.andolsi@st.com> 2 3 Reviewed by Oliver Hunt. 4 5 SH4 JIT SUPPORT. 6 https://bugs.webkit.org/show_bug.cgi?id=44329 7 8 Add YARR support for SH4 platforms (disabled by default). 9 10 * GNUmakefile.am: 11 * assembler/MacroAssembler.h: 12 * assembler/MacroAssemblerSH4.cpp: Added. 13 * assembler/MacroAssemblerSH4.h: Added. 14 * assembler/SH4Assembler.h: Added. 15 * yarr/YarrJIT.cpp: 16 1 17 2011-03-30 Adam Roben <aroben@apple.com> 2 18 -
trunk/Source/JavaScriptCore/GNUmakefile.am
r82508 r82617 92 92 Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h \ 93 93 Source/JavaScriptCore/assembler/MacroAssemblerX86.h \ 94 Source/JavaScriptCore/assembler/MacroAssemblerSH4.h \ 95 Source/JavaScriptCore/assembler/MacroAssemblerSH4.cpp \ 96 Source/JavaScriptCore/assembler/SH4Assembler.h \ 94 97 Source/JavaScriptCore/assembler/RepatchBuffer.h \ 95 98 Source/JavaScriptCore/assembler/X86Assembler.h \ -
trunk/Source/JavaScriptCore/assembler/AssemblerBufferWithConstantPool.h
r81577 r82617 86 86 class AssemblerBufferWithConstantPool: public AssemblerBuffer { 87 87 typedef SegmentedVector<uint32_t, 512> LoadOffsets; 88 using AssemblerBuffer::putIntegral; 89 using AssemblerBuffer::putIntegralUnchecked; 88 90 public: 91 typedef struct { 92 short high; 93 short low; 94 } TwoShorts; 95 89 96 enum { 90 97 UniqueConst, … … 170 177 AssemblerBuffer::putInt64Unchecked(value); 171 178 correctDeltas(8); 179 } 180 181 void putIntegral(TwoShorts value) 182 { 183 if (m_size > m_capacity - sizeof(TwoShorts)) 184 grow(); 185 putIntegralUnchecked(value); 186 } 187 188 void putIntegralUnchecked(TwoShorts value) 189 { 190 putIntegralUnchecked(value.high); 191 putIntegralUnchecked(value.low); 172 192 } 173 193 -
trunk/Source/JavaScriptCore/assembler/MacroAssembler.h
r82130 r82617 51 51 namespace JSC { typedef MacroAssemblerX86_64 MacroAssemblerBase; }; 52 52 53 #elif CPU(SH4) 54 #include "MacroAssemblerSH4.h" 55 namespace JSC { 56 typedef MacroAssemblerSH4 MacroAssemblerBase; 57 }; 58 53 59 #else 54 60 #error "The MacroAssembler is not supported on this platform." -
trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp
r82130 r82617 60 60 61 61 static const RegisterID returnRegister = MIPSRegisters::v0; 62 #elif CPU(SH4) 63 static const RegisterID input = SH4Registers::r4; 64 static const RegisterID index = SH4Registers::r5; 65 static const RegisterID length = SH4Registers::r6; 66 static const RegisterID output = SH4Registers::r7; 67 68 static const RegisterID regT0 = SH4Registers::r0; 69 static const RegisterID regT1 = SH4Registers::r1; 70 71 static const RegisterID returnRegister = SH4Registers::r0; 62 72 #elif CPU(X86) 63 73 static const RegisterID input = X86Registers::eax; … … 2180 2190 #endif 2181 2191 move(ARMRegisters::r3, output); 2192 #elif CPU(SH4) 2193 push(SH4Registers::r11); 2194 push(SH4Registers::r13); 2182 2195 #elif CPU(MIPS) 2183 2196 // Do nothing. … … 2202 2215 pop(ARMRegisters::r5); 2203 2216 pop(ARMRegisters::r4); 2217 #elif CPU(SH4) 2218 pop(SH4Registers::r13); 2219 pop(SH4Registers::r11); 2204 2220 #elif CPU(MIPS) 2205 2221 // Do nothing
Note: See TracChangeset
for help on using the changeset viewer.