commit b2239a2304b0cb1ce21718cd19095b5a5971fa6f
parent c390eba46da784f544d496cda4a989dba5ab95dc
Author: Jan de Mooij <jdemooij@mozilla.com>
Date: Fri, 12 Dec 2025 10:35:55 +0000
Bug 2005479 part 8 - Use generate_lir: true for DeleteProperty and DeleteElement. r=iain
The LIR instructions had a different name (with a Call prefix) and this patch fixes that too.
Differential Revision: https://phabricator.services.mozilla.com/D276052
Diffstat:
4 files changed, 10 insertions(+), 21 deletions(-)
diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp
@@ -18464,7 +18464,7 @@ void CodeGenerator::visitNewPrivateName(LNewPrivateName* ins) {
callVM<Fn, NewPrivateName>(ins);
}
-void CodeGenerator::visitCallDeleteProperty(LCallDeleteProperty* lir) {
+void CodeGenerator::visitDeleteProperty(LDeleteProperty* lir) {
pushArg(ImmGCPtr(lir->mir()->name()));
pushArg(ToValue(lir->value()));
@@ -18476,7 +18476,7 @@ void CodeGenerator::visitCallDeleteProperty(LCallDeleteProperty* lir) {
}
}
-void CodeGenerator::visitCallDeleteElement(LCallDeleteElement* lir) {
+void CodeGenerator::visitDeleteElement(LDeleteElement* lir) {
pushArg(ToValue(lir->index()));
pushArg(ToValue(lir->value()));
diff --git a/js/src/jit/LIROps.yaml b/js/src/jit/LIROps.yaml
@@ -2629,21 +2629,6 @@
call_instruction: true
mir_op: true
-- name: CallDeleteProperty
- result_type: WordSized
- operands:
- value: BoxedValue
- call_instruction: true
- mir_op: DeleteProperty
-
-- name: CallDeleteElement
- result_type: WordSized
- operands:
- value: BoxedValue
- index: BoxedValue
- call_instruction: true
- mir_op: DeleteElement
-
- name: ObjectToIterator
result_type: WordSized
operands:
diff --git a/js/src/jit/Lowering.cpp b/js/src/jit/Lowering.cpp
@@ -6229,15 +6229,15 @@ void LIRGenerator::visitAssertShape(MAssertShape* ins) {
}
void LIRGenerator::visitDeleteProperty(MDeleteProperty* ins) {
- LCallDeleteProperty* lir =
- new (alloc()) LCallDeleteProperty(useBoxAtStart(ins->value()));
+ LDeleteProperty* lir =
+ new (alloc()) LDeleteProperty(useBoxAtStart(ins->value()));
defineReturn(lir, ins);
assignSafepoint(lir, ins);
}
void LIRGenerator::visitDeleteElement(MDeleteElement* ins) {
- LCallDeleteElement* lir = new (alloc()) LCallDeleteElement(
- useBoxAtStart(ins->value()), useBoxAtStart(ins->index()));
+ LDeleteElement* lir = new (alloc())
+ LDeleteElement(useBoxAtStart(ins->value()), useBoxAtStart(ins->index()));
defineReturn(lir, ins);
assignSafepoint(lir, ins);
}
diff --git a/js/src/jit/MIROps.yaml b/js/src/jit/MIROps.yaml
@@ -2875,6 +2875,8 @@
name: PropertyName*
strict: bool
result_type: Boolean
+ possibly_calls: true
+ generate_lir: true
- name: DeleteElement
operands:
@@ -2883,6 +2885,8 @@
arguments:
strict: bool
result_type: Boolean
+ possibly_calls: true
+ generate_lir: true
- name: SetPropertyCache
gen_boilerplate: false