From 711bfaeea892d496644ceacad6ec4175e12b0c92 Mon Sep 17 00:00:00 2001 From: Tom Schuster Date: Thu, 7 May 2020 12:09:34 +0000 Subject: [PATCH] Bug 1635878 - Transpile LoadTypedArrayLength. r=jandem Depends on D74138 Differential Revision: https://phabricator.services.mozilla.com/D74140 --- js/src/jit/CacheIROps.yaml | 2 +- js/src/jit/WarpCacheIRTranspiler.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/js/src/jit/CacheIROps.yaml b/js/src/jit/CacheIROps.yaml index 818cf68cc869..e5b9c9f430a5 100644 --- a/js/src/jit/CacheIROps.yaml +++ b/js/src/jit/CacheIROps.yaml @@ -906,7 +906,7 @@ - name: LoadTypedArrayLengthResult shared: true - transpile: false + transpile: true args: obj: ObjId diff --git a/js/src/jit/WarpCacheIRTranspiler.cpp b/js/src/jit/WarpCacheIRTranspiler.cpp index 33f2c900db94..a608d8875ea6 100644 --- a/js/src/jit/WarpCacheIRTranspiler.cpp +++ b/js/src/jit/WarpCacheIRTranspiler.cpp @@ -416,6 +416,16 @@ bool WarpCacheIRTranspiler::emitLoadInt32ArrayLengthResult(ObjOperandId objId) { return true; } +bool WarpCacheIRTranspiler::emitLoadTypedArrayLengthResult(ObjOperandId objId) { + MDefinition* obj = getOperand(objId); + + auto* length = MTypedArrayLength::New(alloc(), obj); + add(length); + + pushResult(length); + return true; +} + bool WarpCacheIRTranspiler::emitLoadStringLengthResult(StringOperandId strId) { MDefinition* str = getOperand(strId);