Changeset 263824 in webkit
- Timestamp:
- Jul 1, 2020, 4:50:37 PM (6 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 21 edited
-
ChangeLog (modified) (1 diff)
-
assembler/MacroAssemblerARM64.h (modified) (3 diffs)
-
assembler/MacroAssemblerARMv7.h (modified) (1 diff)
-
assembler/MacroAssemblerMIPS.h (modified) (1 diff)
-
assembler/MacroAssemblerX86Common.h (modified) (10 diffs)
-
b3/air/AirOpcode.opcodes (modified) (1 diff)
-
bytecode/AccessCase.cpp (modified) (5 diffs)
-
dfg/DFGOSRExit.cpp (modified) (1 diff)
-
dfg/DFGSpeculativeJIT.cpp (modified) (15 diffs)
-
dfg/DFGSpeculativeJIT64.cpp (modified) (6 diffs)
-
ftl/FTLOSRExitCompiler.cpp (modified) (2 diffs)
-
jit/AssemblyHelpers.h (modified) (1 diff)
-
jit/CallFrameShuffler64.cpp (modified) (1 diff)
-
jit/JITOpcodes.cpp (modified) (1 diff)
-
jit/JITOpcodes32_64.cpp (modified) (1 diff)
-
jit/JITPropertyAccess.cpp (modified) (1 diff)
-
jit/JSInterfaceJIT.h (modified) (1 diff)
-
wasm/js/JSToWasm.cpp (modified) (1 diff)
-
wasm/js/WasmToJS.cpp (modified) (2 diffs)
-
wasm/js/WebAssemblyFunction.cpp (modified) (1 diff)
-
yarr/YarrJIT.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r263810 r263824 1 2020-07-01 Keith Miller <keith_miller@apple.com> 2 3 Rename zeroExtend32ToPtr to zeroExtend32ToWord 4 https://bugs.webkit.org/show_bug.cgi?id=213866 5 6 Reviewed by Saam Barati. 7 8 The old name no longer makes sense now that we have configurations 9 where sizeof(void*) != sizeof(CPURegister). 10 11 * assembler/MacroAssemblerARM64.h: 12 (JSC::MacroAssemblerARM64::branchTruncateDoubleToInt32): 13 (JSC::MacroAssemblerARM64::zeroExtend32ToWord): 14 (JSC::MacroAssemblerARM64::branchMul32): 15 (JSC::MacroAssemblerARM64::zeroExtend32ToPtr): Deleted. 16 * assembler/MacroAssemblerARMv7.h: 17 (JSC::MacroAssemblerARMv7::zeroExtend32ToWord): 18 (JSC::MacroAssemblerARMv7::zeroExtend32ToPtr): Deleted. 19 * assembler/MacroAssemblerMIPS.h: 20 (JSC::MacroAssemblerMIPS::zeroExtend32ToWord): 21 (JSC::MacroAssemblerMIPS::zeroExtend32ToPtr): Deleted. 22 * assembler/MacroAssemblerX86Common.h: 23 (JSC::MacroAssemblerX86Common::add32): 24 (JSC::MacroAssemblerX86Common::and32): 25 (JSC::MacroAssemblerX86Common::mul32): 26 (JSC::MacroAssemblerX86Common::or32): 27 (JSC::MacroAssemblerX86Common::xor32): 28 (JSC::MacroAssemblerX86Common::zeroExtend32ToWord): 29 (JSC::MacroAssemblerX86Common::branchAdd32): 30 (JSC::MacroAssemblerX86Common::zeroExtend32ToPtr): Deleted. 31 * b3/air/AirOpcode.opcodes: 32 * bytecode/AccessCase.cpp: 33 (JSC::AccessCase::generateWithGuard): 34 * dfg/DFGOSRExit.cpp: 35 (JSC::DFG::OSRExit::compileExit): 36 * dfg/DFGSpeculativeJIT.cpp: 37 (JSC::DFG::SpeculativeJIT::compileStringSlice): 38 (JSC::DFG::SpeculativeJIT::compileValueToInt32): 39 (JSC::DFG::SpeculativeJIT::compileUInt32ToNumber): 40 (JSC::DFG::SpeculativeJIT::setIntTypedArrayLoadResult): 41 (JSC::DFG::SpeculativeJIT::compileArithDiv): 42 (JSC::DFG::SpeculativeJIT::compileCreateRest): 43 (JSC::DFG::SpeculativeJIT::compileArraySlice): 44 (JSC::DFG::SpeculativeJIT::compileArrayIndexOf): 45 (JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize): 46 (JSC::DFG::SpeculativeJIT::emitAllocateButterfly): 47 (JSC::DFG::SpeculativeJIT::compileWeakMapGet): 48 (JSC::DFG::SpeculativeJIT::emitInitializeButterfly): 49 * dfg/DFGSpeculativeJIT64.cpp: 50 (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal): 51 (JSC::DFG::SpeculativeJIT::compile): 52 * ftl/FTLOSRExitCompiler.cpp: 53 (JSC::FTL::reboxAccordingToFormat): 54 * jit/CallFrameShuffler64.cpp: 55 (JSC::CallFrameShuffler::emitBox): 56 * jit/JITOpcodes.cpp: 57 (JSC::JIT::emit_op_has_indexed_property): 58 * jit/JITOpcodes32_64.cpp: 59 (JSC::JIT::emit_op_has_indexed_property): 60 * jit/JITPropertyAccess.cpp: 61 (JSC::JIT::emit_op_put_by_val): 62 * jit/JSInterfaceJIT.h: 63 (JSC::JSInterfaceJIT::emitLoadInt32): 64 * wasm/js/JSToWasm.cpp: 65 (JSC::Wasm::boxWasmResult): 66 * wasm/js/WasmToJS.cpp: 67 (JSC::Wasm::wasmToJS): 68 * wasm/js/WebAssemblyFunction.cpp: 69 (JSC::WebAssemblyFunction::jsCallEntrypointSlow): 70 * yarr/YarrJIT.cpp: 71 1 72 2020-07-01 Saam Barati <sbarati@apple.com> 2 73 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
r263380 r263824 1900 1900 // Truncate to a 64-bit integer in dataTempRegister, copy the low 32-bit to dest. 1901 1901 m_assembler.fcvtzs<64, 64>(getCachedDataTempRegisterIDAndInvalidate(), src); 1902 zeroExtend32To Ptr(dataTempRegister, dest);1902 zeroExtend32ToWord(dataTempRegister, dest); 1903 1903 // Check the low 32-bits sign extend to be equal to the full value. 1904 1904 m_assembler.cmp<64>(dataTempRegister, dataTempRegister, Assembler::SXTW, 0); … … 2516 2516 } 2517 2517 2518 void zeroExtend32To Ptr(RegisterID src, RegisterID dest)2518 void zeroExtend32ToWord(RegisterID src, RegisterID dest) 2519 2519 { 2520 2520 m_assembler.uxtw(dest, src); … … 3196 3196 m_assembler.asr<32>(scratch2, dest, 31); 3197 3197 // After a mul32 the top 32 bits of the register should be clear. 3198 zeroExtend32To Ptr(dest, dest);3198 zeroExtend32ToWord(dest, dest); 3199 3199 // Check that bits 31..63 of the original result were all equal. 3200 3200 return branch32(NotEqual, scratch2, scratch1); -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
r263380 r263824 1426 1426 } 1427 1427 1428 void zeroExtend32To Ptr(RegisterID src, RegisterID dest)1428 void zeroExtend32ToWord(RegisterID src, RegisterID dest) 1429 1429 { 1430 1430 move(src, dest); -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
r263049 r263824 1693 1693 } 1694 1694 1695 void zeroExtend32To Ptr(RegisterID src, RegisterID dest)1695 void zeroExtend32ToWord(RegisterID src, RegisterID dest) 1696 1696 { 1697 1697 if (src != dest || m_fixedWidth) -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
r258063 r263824 209 209 { 210 210 if (!imm.m_value) { 211 zeroExtend32To Ptr(src, dest);211 zeroExtend32ToWord(src, dest); 212 212 return; 213 213 } … … 334 334 { 335 335 if (op1 == op2) 336 zeroExtend32To Ptr(op1, dest);336 zeroExtend32ToWord(op1, dest); 337 337 else if (op1 == dest) 338 338 and32(op2, dest); … … 351 351 and32(op2, dest); 352 352 } else { 353 zeroExtend32To Ptr(op2, dest);353 zeroExtend32ToWord(op2, dest); 354 354 and32(op1, dest); 355 355 } … … 495 495 mul32(op2, dest); 496 496 } else { 497 zeroExtend32To Ptr(op2, dest);497 zeroExtend32ToWord(op2, dest); 498 498 mul32(op1, dest); 499 499 } … … 670 670 { 671 671 if (op1 == op2) 672 zeroExtend32To Ptr(op1, dest);672 zeroExtend32ToWord(op1, dest); 673 673 else if (op1 == dest) 674 674 or32(op2, dest); … … 687 687 or32(op2, dest); 688 688 } else { 689 zeroExtend32To Ptr(op2, dest);689 zeroExtend32ToWord(op2, dest); 690 690 or32(op1, dest); 691 691 } … … 1030 1030 xor32(op2, dest); 1031 1031 } else { 1032 zeroExtend32To Ptr(op2, dest);1032 zeroExtend32ToWord(op2, dest); 1033 1033 xor32(op1, dest); 1034 1034 } … … 2288 2288 } 2289 2289 2290 void zeroExtend32To Ptr(RegisterID src, RegisterID dest)2290 void zeroExtend32ToWord(RegisterID src, RegisterID dest) 2291 2291 { 2292 2292 m_assembler.movl_rr(src, dest); 2293 2293 } 2294 2294 2295 void zeroExtend32To Ptr(TrustedImm32 src, RegisterID dest)2295 void zeroExtend32ToWord(TrustedImm32 src, RegisterID dest) 2296 2296 { 2297 2297 m_assembler.movl_i32r(src.m_value, dest); … … 2376 2376 } 2377 2377 2378 void zeroExtend32To Ptr(RegisterID src, RegisterID dest)2378 void zeroExtend32ToWord(RegisterID src, RegisterID dest) 2379 2379 { 2380 2380 move(src, dest); … … 2823 2823 return branchAdd32(cond, op2, dest); 2824 2824 } 2825 zeroExtend32To Ptr(op2, dest);2825 zeroExtend32ToWord(op2, dest); 2826 2826 return branchAdd32(cond, op1, dest); 2827 2827 } -
trunk/Source/JavaScriptCore/b3/air/AirOpcode.opcodes
r247889 r263824 643 643 644 644 Move32 U:G:32, ZD:G:32 645 Tmp, Tmp as zeroExtend32To Ptr645 Tmp, Tmp as zeroExtend32ToWord 646 646 Addr, Tmp as load32 647 647 Index, Tmp as load32 648 648 Tmp, Addr as store32 649 649 Tmp, Index as store32 650 x86: Imm, Tmp as zeroExtend32To Ptr650 x86: Imm, Tmp as zeroExtend32ToWord 651 651 x86: Imm, Addr as store32 652 652 x86: Imm, Index as store32 -
trunk/Source/JavaScriptCore/bytecode/AccessCase.cpp
r263470 r263824 938 938 jit.loadPtr(CCallHelpers::Address(baseGPR, ScopedArguments::offsetOfScope()), scratch2GPR); 939 939 jit.loadPtr(CCallHelpers::Address(scratchGPR, ScopedArgumentsTable::offsetOfArguments()), scratchGPR); 940 jit.zeroExtend32To Ptr(propertyGPR, scratch3GPR);940 jit.zeroExtend32ToWord(propertyGPR, scratch3GPR); 941 941 jit.load32(CCallHelpers::BaseIndex(scratchGPR, scratch3GPR, CCallHelpers::TimesFour), scratchGPR); 942 942 failAndIgnore.append(jit.branch32(CCallHelpers::Equal, scratchGPR, CCallHelpers::TrustedImm32(ScopeOffset::invalidOffset))); … … 983 983 state.failAndRepatch.append(jit.branch32(CCallHelpers::AboveOrEqual, propertyGPR, scratchGPR)); 984 984 state.failAndRepatch.append(jit.branchTestPtr(CCallHelpers::NonZero, CCallHelpers::Address(baseGPR, DirectArguments::offsetOfMappedArguments()))); 985 jit.zeroExtend32To Ptr(propertyGPR, scratchGPR);985 jit.zeroExtend32ToWord(propertyGPR, scratchGPR); 986 986 jit.loadValue(CCallHelpers::BaseIndex(baseGPR, scratchGPR, CCallHelpers::TimesEight, DirectArguments::storageOffset()), valueRegs); 987 987 state.succeed(); … … 1114 1114 jit.loadPtr(CCallHelpers::Address(scratch2GPR, StringImpl::dataOffset()), scratch2GPR); 1115 1115 auto is16Bit = jit.branchTest32(CCallHelpers::Zero, scratchGPR, CCallHelpers::TrustedImm32(StringImpl::flagIs8Bit())); 1116 jit.zeroExtend32To Ptr(propertyGPR, scratchGPR);1116 jit.zeroExtend32ToWord(propertyGPR, scratchGPR); 1117 1117 jit.load8(CCallHelpers::BaseIndex(scratch2GPR, scratchGPR, CCallHelpers::TimesOne, 0), scratch2GPR); 1118 1118 auto is8BitLoadDone = jit.jump(); 1119 1119 is16Bit.link(&jit); 1120 jit.zeroExtend32To Ptr(propertyGPR, scratchGPR);1120 jit.zeroExtend32ToWord(propertyGPR, scratchGPR); 1121 1121 jit.load16(CCallHelpers::BaseIndex(scratch2GPR, scratchGPR, CCallHelpers::TimesTwo, 0), scratch2GPR); 1122 1122 is8BitLoadDone.link(&jit); … … 1178 1178 isOutOfBounds = jit.branch32(CCallHelpers::AboveOrEqual, propertyGPR, CCallHelpers::Address(scratchGPR, ArrayStorage::vectorLengthOffset())); 1179 1179 1180 jit.zeroExtend32To Ptr(propertyGPR, scratch2GPR);1180 jit.zeroExtend32ToWord(propertyGPR, scratch2GPR); 1181 1181 #if USE(JSVALUE64) 1182 1182 jit.loadValue(CCallHelpers::BaseIndex(scratchGPR, scratch2GPR, CCallHelpers::TimesEight, ArrayStorage::vectorOffset()), JSValueRegs(scratchGPR)); … … 1212 1212 jit.loadPtr(CCallHelpers::Address(baseGPR, JSObject::butterflyOffset()), scratchGPR); 1213 1213 isOutOfBounds = jit.branch32(CCallHelpers::AboveOrEqual, propertyGPR, CCallHelpers::Address(scratchGPR, Butterfly::offsetOfPublicLength())); 1214 jit.zeroExtend32To Ptr(propertyGPR, scratch2GPR);1214 jit.zeroExtend32ToWord(propertyGPR, scratch2GPR); 1215 1215 if (m_type == IndexedDoubleLoad) { 1216 1216 RELEASE_ASSERT(state.scratchFPR != InvalidFPRReg); -
trunk/Source/JavaScriptCore/dfg/DFGOSRExit.cpp
r262570 r263824 735 735 #if USE(JSVALUE64) 736 736 jit.load64(scratch + index, GPRInfo::regT0); 737 jit.zeroExtend32To Ptr(GPRInfo::regT0, GPRInfo::regT0);737 jit.zeroExtend32ToWord(GPRInfo::regT0, GPRInfo::regT0); 738 738 jit.or64(GPRInfo::numberTagRegister, GPRInfo::regT0); 739 739 jit.store64(GPRInfo::regT0, AssemblyHelpers::addressFor(operand)); -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r263470 r263824 1711 1711 1712 1712 // Load the character into scratchReg 1713 m_jit.zeroExtend32To Ptr(startIndexGPR, startIndexGPR);1713 m_jit.zeroExtend32ToWord(startIndexGPR, startIndexGPR); 1714 1714 auto is16Bit = m_jit.branchTest32(MacroAssembler::Zero, MacroAssembler::Address(temp2GPR, StringImpl::flagsOffset()), TrustedImm32(StringImpl::flagIs8Bit())); 1715 1715 … … 2519 2519 GPRReg op1GPR = op1.gpr(); 2520 2520 GPRReg resultGPR = result.gpr(); 2521 m_jit.zeroExtend32To Ptr(op1GPR, resultGPR);2521 m_jit.zeroExtend32ToWord(op1GPR, resultGPR); 2522 2522 strictInt32Result(resultGPR, node, DataFormatInt32); 2523 2523 return; … … 2604 2604 2605 2605 isInteger.link(&m_jit); 2606 m_jit.zeroExtend32To Ptr(gpr, resultGpr);2606 m_jit.zeroExtend32ToWord(gpr, resultGpr); 2607 2607 2608 2608 converted.link(&m_jit); … … 2691 2691 SpeculateInt32Operand op1(this, node->child1()); 2692 2692 GPRTemporary result(this, Reuse, op1); 2693 m_jit.zeroExtend32To Ptr(op1.gpr(), result.gpr());2693 m_jit.zeroExtend32ToWord(op1.gpr(), result.gpr()); 2694 2694 strictInt52Result(result.gpr(), node); 2695 2695 return; … … 3111 3111 if (node->shouldSpeculateInt52()) { 3112 3112 ASSERT(enableInt52()); 3113 m_jit.zeroExtend32To Ptr(resultReg, resultReg);3113 m_jit.zeroExtend32ToWord(resultReg, resultReg); 3114 3114 strictInt52Result(resultReg, node); 3115 3115 return; … … 5561 5561 JITCompiler::Jump notNeg2ToThe31 = 5562 5562 m_jit.branch32(JITCompiler::NotEqual, op1GPR, TrustedImm32(-2147483647-1)); 5563 m_jit.zeroExtend32To Ptr(op1GPR, eax.gpr());5563 m_jit.zeroExtend32ToWord(op1GPR, eax.gpr()); 5564 5564 done.append(m_jit.jump()); 5565 5565 … … 8286 8286 8287 8287 CCallHelpers::Jump skipLoop = m_jit.branch32(MacroAssembler::Equal, arrayLengthGPR, TrustedImm32(0)); 8288 m_jit.zeroExtend32To Ptr(arrayLengthGPR, currentLengthGPR);8288 m_jit.zeroExtend32ToWord(arrayLengthGPR, currentLengthGPR); 8289 8289 m_jit.addPtr(Imm32(sizeof(Register) * node->numberOfArgumentsToSkip()), argumentsStartGPR); 8290 8290 … … 8956 8956 8957 8957 m_jit.loadPtr(MacroAssembler::Address(resultGPR, JSObject::butterflyOffset()), resultButterfly); 8958 m_jit.zeroExtend32To Ptr(tempGPR, tempGPR);8959 m_jit.zeroExtend32To Ptr(loadIndex, loadIndex);8958 m_jit.zeroExtend32ToWord(tempGPR, tempGPR); 8959 m_jit.zeroExtend32ToWord(loadIndex, loadIndex); 8960 8960 auto done = m_jit.branchPtr(MacroAssembler::AboveOrEqual, loadIndex, tempGPR); 8961 8961 … … 9014 9014 #endif 9015 9015 9016 m_jit.zeroExtend32To Ptr(lengthGPR, lengthGPR);9017 m_jit.zeroExtend32To Ptr(indexGPR, indexGPR);9016 m_jit.zeroExtend32ToWord(lengthGPR, lengthGPR); 9017 m_jit.zeroExtend32ToWord(indexGPR, indexGPR); 9018 9018 9019 9019 auto loop = m_jit.label(); … … 9122 9122 #endif 9123 9123 9124 m_jit.zeroExtend32To Ptr(lengthGPR, lengthGPR);9125 m_jit.zeroExtend32To Ptr(indexGPR, indexGPR);9124 m_jit.zeroExtend32ToWord(lengthGPR, lengthGPR); 9125 m_jit.zeroExtend32ToWord(indexGPR, indexGPR); 9126 9126 9127 9127 auto loop = m_jit.label(); … … 10435 10435 #if CPU(ARM64E) 10436 10436 // sizeGPR is still boxed as a number and there is no 32-bit variant of the PAC instructions. 10437 m_jit.zeroExtend32To Ptr(sizeGPR, scratchGPR);10437 m_jit.zeroExtend32ToWord(sizeGPR, scratchGPR); 10438 10438 m_jit.tagArrayPtr(scratchGPR, storageGPR); 10439 10439 #endif … … 12472 12472 RELEASE_ASSERT(RegisterSet(storageResultGPR, sizeGPR, scratch1, scratch2, scratch3).numberOfSetGPRs() == 5); 12473 12473 ASSERT((1 << 3) == sizeof(JSValue)); 12474 m_jit.zeroExtend32To Ptr(sizeGPR, scratch1);12474 m_jit.zeroExtend32ToWord(sizeGPR, scratch1); 12475 12475 m_jit.lshift32(TrustedImm32(3), scratch1); 12476 12476 m_jit.add32(TrustedImm32(sizeof(IndexingHeader)), scratch1, scratch2); … … 13788 13788 if (node->child1().useKind() == WeakSetObjectUse) { 13789 13789 static_assert(sizeof(WeakMapBucket<WeakMapBucketDataKey>) == sizeof(void*), ""); 13790 m_jit.zeroExtend32To Ptr(indexGPR, bucketGPR);13790 m_jit.zeroExtend32ToWord(indexGPR, bucketGPR); 13791 13791 m_jit.lshiftPtr(MacroAssembler::Imm32(sizeof(void*) == 4 ? 2 : 3), bucketGPR); 13792 13792 m_jit.addPtr(bufferGPR, bucketGPR); … … 13794 13794 ASSERT(node->child1().useKind() == WeakMapObjectUse); 13795 13795 static_assert(sizeof(WeakMapBucket<WeakMapBucketDataKeyValue>) == 16, ""); 13796 m_jit.zeroExtend32To Ptr(indexGPR, bucketGPR);13796 m_jit.zeroExtend32ToWord(indexGPR, bucketGPR); 13797 13797 m_jit.lshiftPtr(MacroAssembler::Imm32(4), bucketGPR); 13798 13798 m_jit.addPtr(bufferGPR, bucketGPR); … … 14037 14037 void SpeculativeJIT::emitInitializeButterfly(GPRReg storageGPR, GPRReg sizeGPR, JSValueRegs emptyValueRegs, GPRReg scratchGPR) 14038 14038 { 14039 m_jit.zeroExtend32To Ptr(sizeGPR, scratchGPR);14039 m_jit.zeroExtend32ToWord(sizeGPR, scratchGPR); 14040 14040 MacroAssembler::Jump done = m_jit.branchTest32(MacroAssembler::Zero, scratchGPR); 14041 14041 MacroAssembler::Label loop = m_jit.label(); -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
r263134 r263824 1024 1024 result = gpr; 1025 1025 } 1026 m_jit.zeroExtend32To Ptr(gpr, result);1026 m_jit.zeroExtend32ToWord(gpr, result); 1027 1027 returnFormat = DataFormatInt32; 1028 1028 return result; … … 5088 5088 DataViewData data = node->dataViewData(); 5089 5089 5090 m_jit.zeroExtend32To Ptr(indexGPR, t2);5090 m_jit.zeroExtend32ToWord(indexGPR, t2); 5091 5091 if (data.byteSize > 1) 5092 5092 m_jit.add64(TrustedImm32(data.byteSize - 1), t2); … … 5098 5098 cageTypedArrayStorage(dataViewGPR, t2); 5099 5099 5100 m_jit.zeroExtend32To Ptr(indexGPR, t1);5100 m_jit.zeroExtend32ToWord(indexGPR, t1); 5101 5101 auto baseIndex = JITCompiler::BaseIndex(t2, t1, MacroAssembler::TimesOne); 5102 5102 … … 5289 5289 GPRReg isLittleEndianGPR = isLittleEndianOperand ? isLittleEndianOperand->gpr() : InvalidGPRReg; 5290 5290 5291 m_jit.zeroExtend32To Ptr(indexGPR, t2);5291 m_jit.zeroExtend32ToWord(indexGPR, t2); 5292 5292 if (data.byteSize > 1) 5293 5293 m_jit.add64(TrustedImm32(data.byteSize - 1), t2); … … 5299 5299 cageTypedArrayStorage(dataViewGPR, t2); 5300 5300 5301 m_jit.zeroExtend32To Ptr(indexGPR, t1);5301 m_jit.zeroExtend32ToWord(indexGPR, t1); 5302 5302 auto baseIndex = JITCompiler::BaseIndex(t2, t1, MacroAssembler::TimesOne); 5303 5303 … … 5401 5401 5402 5402 auto emitBigEndianCode = [&] { 5403 m_jit.zeroExtend32To Ptr(valueGPR, t3);5403 m_jit.zeroExtend32ToWord(valueGPR, t3); 5404 5404 m_jit.byteSwap32(t3); 5405 5405 m_jit.store32(t3, baseIndex); -
trunk/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp
r262570 r263824 53 53 switch (format) { 54 54 case DataFormatInt32: { 55 jit.zeroExtend32To Ptr(value, value);55 jit.zeroExtend32ToWord(value, value); 56 56 jit.or64(GPRInfo::numberTagRegister, value); 57 57 break; … … 74 74 75 75 case DataFormatBoolean: { 76 jit.zeroExtend32To Ptr(value, value);76 jit.zeroExtend32ToWord(value, value); 77 77 jit.or32(MacroAssembler::TrustedImm32(JSValue::ValueFalse), value); 78 78 break; -
trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h
r263470 r263824 1481 1481 1482 1482 isInt32.link(this); 1483 zeroExtend32To Ptr(source, target);1483 zeroExtend32ToWord(source, target); 1484 1484 or64(GPRInfo::numberTagRegister, target); 1485 1485 -
trunk/Source/JavaScriptCore/jit/CallFrameShuffler64.cpp
r261895 r263824 85 85 if (verbose) 86 86 dataLog(" * Boxing ", cachedRecovery.recovery()); 87 m_jit.zeroExtend32To Ptr(87 m_jit.zeroExtend32ToWord( 88 88 cachedRecovery.recovery().gpr(), 89 89 cachedRecovery.recovery().gpr()); -
trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp
r263470 r263824 1437 1437 // to 64-bits is necessary since it's used in the address calculation. We zero extend rather than sign 1438 1438 // extending since it makes it easier to re-tag the value in the slow case. 1439 zeroExtend32To Ptr(regT1, regT1);1439 zeroExtend32ToWord(regT1, regT1); 1440 1440 1441 1441 emitJumpSlowCaseIfNotJSCell(regT0, base); -
trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
r263049 r263824 1216 1216 // to 64-bits is necessary since it's used in the address calculation. We zero extend rather than sign 1217 1217 // extending since it makes it easier to re-tag the value in the slow case. 1218 zeroExtend32To Ptr(regT1, regT1);1218 zeroExtend32ToWord(regT1, regT1); 1219 1219 1220 1220 emitArrayProfilingSiteWithCell(regT0, regT2, profile); -
trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
r262613 r263824 125 125 addSlowCase(notIndex); 126 126 // See comment in op_get_by_val. 127 zeroExtend32To Ptr(regT1, regT1);127 zeroExtend32ToWord(regT1, regT1); 128 128 } 129 129 emitArrayProfilingSiteWithCell(regT0, regT2, profile); -
trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h
r254947 r263824 112 112 load64(addressFor(virtualRegister), dst); 113 113 Jump notInt32 = branchIfNotInt32(dst); 114 zeroExtend32To Ptr(dst, dst);114 zeroExtend32ToWord(dst, dst); 115 115 return notInt32; 116 116 } -
trunk/Source/JavaScriptCore/wasm/js/JSToWasm.cpp
r262098 r263824 50 50 break; 51 51 case Wasm::I32: 52 jit.zeroExtend32To Ptr(src.gpr(), dst.payloadGPR());52 jit.zeroExtend32ToWord(src.gpr(), dst.payloadGPR()); 53 53 jit.boxInt32(dst.payloadGPR(), dst, DoNotHaveTagRegisters); 54 54 break; -
trunk/Source/JavaScriptCore/wasm/js/WasmToJS.cpp
r261755 r263824 146 146 ++marshalledGPRs; 147 147 if (argType == I32) { 148 jit.zeroExtend32To Ptr(gprReg, gprReg); // Clear non-int32 and non-tag bits.148 jit.zeroExtend32ToWord(gprReg, gprReg); // Clear non-int32 and non-tag bits. 149 149 jit.boxInt32(gprReg, JSValueRegs(gprReg), DoNotHaveTagRegisters); 150 150 } … … 295 295 slowPath.append(jit.branchIfNotNumber(GPRInfo::returnValueGPR, DoNotHaveTagRegisters)); 296 296 slowPath.append(jit.branchIfNotInt32(JSValueRegs(GPRInfo::returnValueGPR), DoNotHaveTagRegisters)); 297 jit.zeroExtend32To Ptr(GPRInfo::returnValueGPR, dest);297 jit.zeroExtend32ToWord(GPRInfo::returnValueGPR, dest); 298 298 done.append(jit.jump()); 299 299 -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp
r262098 r263824 263 263 jit.store32(scratchGPR, calleeFrame.withOffset(wasmCallInfo.params[i].offsetFromSP())); 264 264 else 265 jit.zeroExtend32To Ptr(scratchGPR, wasmCallInfo.params[i].gpr());265 jit.zeroExtend32ToWord(scratchGPR, wasmCallInfo.params[i].gpr()); 266 266 break; 267 267 } -
trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp
r261569 r263824 3738 3738 } 3739 3739 // The ABI doesn't guarantee the upper bits are zero on unsigned arguments, so clear them ourselves. 3740 zeroExtend32To Ptr(index, index);3741 zeroExtend32To Ptr(length, length);3740 zeroExtend32ToWord(index, index); 3741 zeroExtend32ToWord(length, length); 3742 3742 #if OS(WINDOWS) 3743 3743 if (compileMode == IncludeSubpatterns) … … 3756 3756 3757 3757 // The ABI doesn't guarantee the upper bits are zero on unsigned arguments, so clear them ourselves. 3758 zeroExtend32To Ptr(index, index);3759 zeroExtend32To Ptr(length, length);3758 zeroExtend32ToWord(index, index); 3759 zeroExtend32ToWord(length, length); 3760 3760 #elif CPU(ARM_THUMB2) 3761 3761 push(ARMRegisters::r4);
Note:
See TracChangeset
for help on using the changeset viewer.