Changeset 259849 in webkit
- Timestamp:
- Apr 9, 2020, 11:48:09 PM (6 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
jit/JITPropertyAccess.cpp (modified) (4 diffs)
-
jit/JITPropertyAccess32_64.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r259848 r259849 1 2020-04-09 Yusuke Suzuki <ysuzuki@apple.com> 2 3 [JSC] Use UnconditionalWriteBarrier in Baseline effectively to reduce code size 4 https://bugs.webkit.org/show_bug.cgi?id=209395 5 6 Reviewed by Tadeu Zagallo. 7 8 In put/delete we always need to emit write-barrier if the base is a cell since IC can write things (writing new StructureID etc.). 9 We should use emitWriteBarrier with UnconditionalWriteBarrier to remove unnecessary branch. 10 11 * jit/JITPropertyAccess.cpp: 12 (JSC::JIT::emitPutByValWithCachedId): 13 (JSC::JIT::emit_op_del_by_id): 14 (JSC::JIT::emit_op_del_by_val): 15 (JSC::JIT::emit_op_put_by_id): 16 * jit/JITPropertyAccess32_64.cpp: 17 (JSC::JIT::emitPutByValWithCachedId): 18 (JSC::JIT::emit_op_put_by_id): 19 1 20 2020-04-09 Mark Lam <mark.lam@apple.com> 2 21 -
trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
r259676 r259849 291 291 gen.generateFastPath(*this); 292 292 // IC can write new Structure without write-barrier if a base is cell. 293 // FIXME: Use UnconditionalWriteBarrier in Baseline effectively to reduce code size. 294 // https://bugs.webkit.org/show_bug.cgi?id=209395 295 emitWriteBarrier(base, ShouldFilterBase); 293 // We emit write-barrier unconditionally since we know baseVRege is a cell. 294 emitWriteBarrier(base, UnconditionalWriteBarrier); 296 295 doneCases.append(jump()); 297 296 … … 410 409 411 410 // IC can write new Structure without write-barrier if a base is cell. 411 // We emit write-barrier unconditionally since we know baseVRege is a cell. 412 412 // We should emit write-barrier at the end of sequence since write-barrier clobbers registers. 413 // FIXME: Use UnconditionalWriteBarrier in Baseline effectively to reduce code size. 414 // https://bugs.webkit.org/show_bug.cgi?id=209395 415 emitWriteBarrier(base, ShouldFilterBase); 413 emitWriteBarrier(base, UnconditionalWriteBarrier); 416 414 } 417 415 … … 460 458 // We should emit write-barrier at the end of sequence since write-barrier clobbers registers. 461 459 // IC can write new Structure without write-barrier if a base is cell. 462 // FIXME: Use UnconditionalWriteBarrier in Baseline effectively to reduce code size. 463 // https://bugs.webkit.org/show_bug.cgi?id=209395 464 emitWriteBarrier(base, ShouldFilterBase); 460 // We emit write-barrier unconditionally since we know baseVRege is a cell. 461 emitWriteBarrier(base, UnconditionalWriteBarrier); 465 462 } 466 463 … … 679 676 680 677 // IC can write new Structure without write-barrier if a base is cell. 681 // FIXME: Use UnconditionalWriteBarrier in Baseline effectively to reduce code size. 682 // https://bugs.webkit.org/show_bug.cgi?id=209395 683 emitWriteBarrier(baseVReg, ShouldFilterBase); 678 // We emit write-barrier unconditionally since we know baseVRege is a cell. 679 emitWriteBarrier(baseVReg, UnconditionalWriteBarrier); 684 680 } 685 681 -
trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
r259715 r259849 370 370 // 371 371 // IC can write new Structure without write-barrier if a base is cell. 372 // We emit write-barrier unconditionally since we know baseVRege is a cell. 372 373 // We are emitting write-barrier before writing here but this is OK since 32bit JSC does not have concurrent GC. 373 // FIXME: Use UnconditionalWriteBarrier in Baseline effectively to reduce code size. 374 // https://bugs.webkit.org/show_bug.cgi?id=209395 375 emitWriteBarrier(base, ShouldFilterBase); 374 emitWriteBarrier(base, UnconditionalWriteBarrier); 376 375 emitLoadPayload(base, regT0); 377 376 emitLoad(value, regT3, regT2); … … 624 623 625 624 // IC can write new Structure without write-barrier if a base is cell. 626 // FIXME: Use UnconditionalWriteBarrier in Baseline effectively to reduce code size. 627 // https://bugs.webkit.org/show_bug.cgi?id=209395 628 emitWriteBarrier(base, ShouldFilterBase); 625 // We emit write-barrier unconditionally since we know baseVRege is a cell. 626 emitWriteBarrier(base, UnconditionalWriteBarrier); 629 627 } 630 628
Note:
See TracChangeset
for help on using the changeset viewer.