diff options
Diffstat (limited to 'js/src/jit/MIROps.yaml')
-rw-r--r-- | js/src/jit/MIROps.yaml | 84 |
1 files changed, 83 insertions, 1 deletions
diff --git a/js/src/jit/MIROps.yaml b/js/src/jit/MIROps.yaml index 565c3c9c2b..7f0df52742 100644 --- a/js/src/jit/MIROps.yaml +++ b/js/src/jit/MIROps.yaml @@ -1331,7 +1331,6 @@ folds_to: custom congruent_to: if_operands_equal alias_set: none - movable: true can_recover: true - name: ModuleMetadata @@ -1492,6 +1491,54 @@ alias_set: custom clone: true +# Implements the TypedArrayByteOffset intrinsic for resizable typed arrays, +# which calls TypedArrayObject::byteOffsetMaybeOutOfBounds(). +- name: ResizableTypedArrayByteOffsetMaybeOutOfBounds + operands: + object: Object + result_type: IntPtr + movable: true + congruent_to: if_operands_equal + alias_set: custom + compute_range: custom + +# Read the length of a resizable typed array. +- name: ResizableTypedArrayLength + operands: + object: Object + arguments: + requiresMemoryBarrier: MemoryBarrierRequirement + result_type: IntPtr + # Not removable or movable when a barrier is needed. + guard: true + movable: false + congruent_to: custom + alias_set: custom + compute_range: custom + +# Read the byteLength of a resizable dataview. +- name: ResizableDataViewByteLength + operands: + object: Object + arguments: + requiresMemoryBarrier: MemoryBarrierRequirement + result_type: IntPtr + # Not removable or movable when a barrier is needed. + guard: true + movable: false + congruent_to: custom + alias_set: custom + compute_range: custom + +# Read the byte length of a growable shared array buffer as IntPtr. +- name: GrowableSharedArrayBufferByteLength + operands: + object: Object + result_type: IntPtr + guard: true + movable: false + alias_set: custom + # Return the element size of a typed array. - name: TypedArrayElementSize operands: @@ -1513,6 +1560,26 @@ congruent_to: if_operands_equal alias_set: custom +# Guard a resizable typed array is in-bounds. +- name: GuardResizableArrayBufferViewInBounds + operands: + object: Object + result_type: Object + guard: true + movable: true + congruent_to: if_operands_equal + alias_set: custom + +# Guard a resizable typed array is in-bounds or detached. +- name: GuardResizableArrayBufferViewInBoundsOrDetached + operands: + object: Object + result_type: Object + guard: true + movable: true + congruent_to: if_operands_equal + alias_set: custom + - name: GuardNumberToIntPtrIndex gen_boilerplate: false @@ -1951,6 +2018,15 @@ congruent_to: if_operands_equal alias_set: none +- name: GuardIsResizableTypedArray + operands: + object: Object + result_type: Object + guard: true + movable: true + congruent_to: if_operands_equal + alias_set: none + - name: GuardHasProxyHandler operands: object: Object @@ -2510,6 +2586,9 @@ - name: GuardToClass gen_boilerplate: false +- name: GuardToEitherClass + gen_boilerplate: false + - name: GuardToFunction gen_boilerplate: false @@ -3106,6 +3185,9 @@ congruent_to: if_operands_equal alias_set: custom +- name: PostIntPtrConversion + gen_boilerplate: false + - name: WasmNeg gen_boilerplate: false |