Bug 1660409 - Part 4: Transpile ArrayJoin. r=jandem

Differential Revision: https://phabricator.services.mozilla.com/D88565
This commit is contained in:
André Bargull 2020-09-01 13:06:06 +00:00
Родитель 78228ee48f
Коммит 5c6157aab2
2 изменённых файлов: 16 добавлений и 1 удалений

Просмотреть файл

@ -901,7 +901,7 @@
- name: ArrayJoinResult
shared: false
transpile: false
transpile: true
cost_estimate: 5
args:
obj: ObjId

Просмотреть файл

@ -2342,6 +2342,21 @@ bool WarpCacheIRTranspiler::emitArrayPush(ObjOperandId objId,
return resumeAfter(ins);
}
bool WarpCacheIRTranspiler::emitArrayJoinResult(ObjOperandId objId,
StringOperandId sepId) {
MDefinition* obj = getOperand(objId);
MDefinition* sep = getOperand(sepId);
// TODO(Warp): This flag only make sense for the Ion implementation. Remove it
// when IonBuilder is gone.
bool optimizeForArray = true;
auto* join = MArrayJoin::New(alloc(), obj, sep, optimizeForArray);
addEffectful(join);
pushResult(join);
return resumeAfter(join);
}
bool WarpCacheIRTranspiler::emitPackedArrayPopResult(ObjOperandId arrayId) {
MDefinition* array = getOperand(arrayId);