v8/include
Hao Xu e1dbe835d7 [csa][codegen] Optimize IsStrong/IsWeakOrCleared
The way to determine whether a MaybeObject is a strong or weak
reference to the heap object is to check its lowest two bits.
However, if the MaybeObject is known to not be a smi, that is, the
lowest bit is known to be 1, we can check one bit instead. This
allows Turbofan to select better instructions:

x64:

  Before:
    movl r9,r11
    andl r9,0x3
    cmpb r9l,0x1

  After:
    testb r11,0x2

arm64:

  Before:
    and w8, w7, #0x3
    cmp w8, #0x1 (1)
    b.ne #+0x320

  After:
    tbnz w7, #1, #+0x320

Change-Id: I03623183406ad7d920c96a752651e0116a22832e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3861310
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Hao A Xu <hao.a.xu@intel.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83153}
2022-09-13 09:25:25 +00:00
..
cppgc cppgc: Random cleanups 2022-09-05 17:35:54 +00:00
libplatform
APIDesign.md
DEPS
DIR_METADATA
js_protocol-1.2.json
js_protocol-1.3.json
js_protocol.pdl [wasm][devtools] Fix reported function body offsets 2022-07-22 10:08:32 +00:00
OWNERS
v8-array-buffer.h [api] Add more efficient API for accesssing ArrayBuffer raw data 2022-07-15 09:03:11 +00:00
v8-callbacks.h [wasm][API] Remove deprecated API 2022-08-29 10:43:55 +00:00
v8-container.h
v8-context.h [sandbox] Prepare ExternalPointerTable rollout 2022-07-11 13:34:54 +00:00
v8-cppgc.h Reland "[cppgc-js] Allow overriding marking support" 2022-08-24 13:41:30 +00:00
v8-data.h
v8-date.h Fix Date BiDi format 2022-07-11 17:19:43 +00:00
v8-debug.h
v8-embedder-heap.h [api, heap] Deprecate v8::EmbedderHeapTracer 2022-08-24 09:03:00 +00:00
v8-embedder-state-scope.h
v8-exception.h [api] Rename isolate variables 2022-04-28 12:51:08 +00:00
v8-extension.h
v8-external.h
v8-fast-api-calls.h [fastcall] fix options.data representation 2022-08-30 19:35:14 +00:00
v8-forward.h
v8-function-callback.h
v8-function.h Implement Function::Experimental_IsNopFunction. 2022-08-01 01:36:02 +00:00
v8-initialization.h Reland "[sandbox] Fold V8_SANDBOXED_EXTERNAL_POINTERS into V8_ENABLE_SANDBOX" 2022-09-12 11:48:02 +00:00
v8-inspector-protocol.h
v8-inspector.h [inspector] Introduce instrumentation pause distinction 2022-09-01 05:22:16 +00:00
v8-internal.h [csa][codegen] Optimize IsStrong/IsWeakOrCleared 2022-09-13 09:25:25 +00:00
v8-isolate.h [wasm][API] Remove deprecated API 2022-08-29 10:43:55 +00:00
v8-json.h
v8-local-handle.h [api] Fix MaybeLocal::ToLocal documentation when it's empty 2022-05-03 10:03:24 +00:00
v8-locker.h [api] Advance API deprecation 2022-08-16 08:11:57 +00:00
v8-maybe.h api: Allow v8::Maybe<MovableType>. 2022-04-30 21:47:24 +00:00
v8-memory-span.h
v8-message.h [api] Advance API deprecation 2022-08-16 08:11:57 +00:00
v8-metrics.h [wasm][API] Remove deprecated API 2022-08-29 10:43:55 +00:00
v8-microtask-queue.h [api] Rename isolate variables 2022-04-28 12:51:08 +00:00
v8-microtask.h
v8-object.h [sandbox] Prepare ExternalPointerTable rollout 2022-07-11 13:34:54 +00:00
v8-persistent-handle.h [api] Remove deprecated global handle APIs 2022-06-09 15:39:03 +00:00
v8-platform.h [API] Deprecate second OnCriticalMemoryPressure 2022-08-22 15:58:58 +00:00
v8-primitive-object.h
v8-primitive.h Reland "[strings] Support shared external strings" 2022-09-07 08:54:16 +00:00
v8-profiler.h [logging] Use short "JS:" prefix for function log events 2022-06-14 16:11:21 +00:00
v8-promise.h
v8-proxy.h
v8-regexp.h [regexp] Add v-Flag for Unicode Sets 2022-09-06 17:51:56 +00:00
v8-script.h [api] Advance API deprecation 2022-08-16 08:11:57 +00:00
v8-snapshot.h
v8-statistics.h
v8-template.h [api] Add more comments about interceptor callbacks 2022-05-25 11:38:44 +00:00
v8-traced-handle.h [api] Remove TracedGlobal<> 2022-03-23 21:04:51 +00:00
v8-typed-array.h
v8-unwinder-state.h [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
v8-unwinder.h
v8-util.h [api] Deprecate PersistentValueVector 2022-06-09 08:44:13 +00:00
v8-value-serializer-version.h
v8-value-serializer.h [shared-struct] Rework shared value serializer API again 2022-09-07 23:41:26 +00:00
v8-value.h
v8-version-string.h
v8-version.h Version 10.7.0 2022-08-18 09:17:36 +00:00
v8-wasm-trap-handler-posix.h
v8-wasm-trap-handler-win.h
v8-wasm.h [wasm][API] Remove deprecated API 2022-08-29 10:43:55 +00:00
v8-weak-callback-info.h [api] Remove APIs for resurrecting finalizers 2022-04-21 07:05:25 +00:00
v8.h
v8config.h [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00