commit 2175ceb316818146a667effbe5ce677410792c2a
parent 5de158f01823e0fc2b7bd989115bb71b3aabb171
Author: Jan de Mooij <jdemooij@mozilla.com>
Date: Fri, 12 Dec 2025 10:35:53 +0000
Bug 2005479 part 1 - Use generate_lir: true for more MIR instructions. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D275979
Diffstat:
2 files changed, 22 insertions(+), 75 deletions(-)
diff --git a/js/src/jit/LIROps.yaml b/js/src/jit/LIROps.yaml
@@ -267,14 +267,6 @@
num_temps: 1
mir_op: true
-- name: InitElemGetterSetter
- operands:
- object: WordSized
- id: BoxedValue
- value: WordSized
- call_instruction: true
- mir_op: true
-
# Takes in an Object and a Value.
- name: MutateProto
operands:
@@ -282,13 +274,6 @@
value: BoxedValue
call_instruction: true
-- name: InitPropGetterSetter
- operands:
- object: WordSized
- value: WordSized
- call_instruction: true
- mir_op: true
-
- name: WasmRefAsNonNull
operands:
ref: WordSized
@@ -1999,19 +1984,6 @@
num_temps: 2
mir_op: BinaryCache
-- name: ModuleMetadata
- result_type: WordSized
- call_instruction: true
- mir_op: true
-
-- name: DynamicImport
- result_type: WordSized
- operands:
- specifier: BoxedValue
- options: BoxedValue
- call_instruction: true
- mir_op: true
-
- name: Lambda
result_type: WordSized
operands:
@@ -2796,13 +2768,6 @@
num_temps: 3
mir_op: true
-- name: ValueToIterator
- result_type: WordSized
- operands:
- value: BoxedValue
- call_instruction: true
- mir_op: ValueToIterator
-
- name: IteratorHasIndicesAndBranch
successors: [ifTrue, ifFalse]
operands:
@@ -3050,10 +3015,6 @@
object: WordSized
num_temps: 1
-- name: GuardGlobalGeneration
- mir_op: true
- num_temps: 1
-
- name: GuardIsProxy
operands:
object: WordSized
@@ -3724,10 +3685,6 @@
input: BoxedValue
mir_op: true
-- name: ThrowRuntimeLexicalError
- call_instruction: true
- mir_op: true
-
- name: ThrowMsg
call_instruction: true
mir_op: true
@@ -3773,38 +3730,6 @@
call_instruction: true
mir_op: true
-- name: AsyncResolve
- result_type: WordSized
- operands:
- generator: WordSized
- value: BoxedValue
- call_instruction: true
- mir_op: true
-
-- name: AsyncReject
- result_type: WordSized
- operands:
- generator: WordSized
- reason: BoxedValue
- stack: BoxedValue
- call_instruction: true
- mir_op: true
-
-- name: AsyncAwait
- result_type: WordSized
- operands:
- value: BoxedValue
- generator: WordSized
- call_instruction: true
- mir_op: true
-
-- name: CanSkipAwait
- result_type: WordSized
- operands:
- value: BoxedValue
- call_instruction: true
- mir_op: true
-
- name: MaybeExtractAwaitValue
result_type: BoxedValue
operands:
diff --git a/js/src/jit/MIROps.yaml b/js/src/jit/MIROps.yaml
@@ -418,12 +418,16 @@
value: Object
arguments:
name: PropertyName*
+ possibly_calls: true
+ generate_lir: true
- name: InitElemGetterSetter
operands:
object: Object
id: Value
value: Object
+ possibly_calls: true
+ generate_lir: true
- name: Call
gen_boilerplate: false
@@ -1528,6 +1532,8 @@
result_type: None
guard: true
alias_set: custom
+ possibly_calls: true
+ generate_lir: true
- name: ThrowMsg
gen_boilerplate: false
@@ -1620,12 +1626,16 @@
arguments:
module: JSObject*
result_type: Object
+ possibly_calls: true
+ generate_lir: true
- name: DynamicImport
operands:
specifier: Value
options: Value
result_type: Object
+ possibly_calls: true
+ generate_lir: true
- name: Lambda
gen_boilerplate: false
@@ -2263,6 +2273,8 @@
movable: true
alias_set: custom
congruent_to: custom
+ generate_lir: true
+ lir_temps: 1
- name: GuardIsProxy
operands:
@@ -2818,6 +2830,8 @@
operands:
value: Value
result_type: Object
+ possibly_calls: true
+ generate_lir: true
- name: IteratorHasIndices
operands:
@@ -3216,6 +3230,8 @@
generator: Object
value: Value
result_type: Object
+ possibly_calls: true
+ generate_lir: true
- name: AsyncReject
operands:
@@ -3223,6 +3239,8 @@
reason: Value
stack: Value
result_type: Object
+ possibly_calls: true
+ generate_lir: true
# Returns from this function to the previous caller; this looks like a regular
# Unary instruction and is used to lie to the MIR generator about suspending
@@ -3239,6 +3257,8 @@
value: Value
generator: Object
result_type: Object
+ possibly_calls: true
+ generate_lir: true
- name: CheckThisReinit
operands:
@@ -3255,6 +3275,8 @@
operands:
value: Value
result_type: Boolean
+ possibly_calls: true
+ generate_lir: true
- name: MaybeExtractAwaitValue
gen_boilerplate: false