Force the SkVM interpreter if trace opcodes are encountered.

Trace opcodes will only be implemented in the interpreter. If we
encounter one while JITting a program, returning false will cause
execution to fall back to the interpreter automatically.

Change-Id: I94fce376cb7336c16072a174604de025f1b4e38a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/473137
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
This commit is contained in:
John Stiles 2021-11-17 19:21:04 -05:00 committed by SkCQ
parent c5b90df0be
commit e4692de674

View File

@ -2678,8 +2678,8 @@ namespace skvm {
case Op::trace_line:
case Op::trace_var:
case Op::trace_call:
/* Only supported in the interpreter. */
break;
/* Force this program to run in the interpreter. */
return false;
case Op::index:
if (I32->isVectorTy()) {
@ -3608,8 +3608,8 @@ namespace skvm {
case Op::trace_line:
case Op::trace_var:
case Op::trace_call:
/* Only supported in the interpreter. */
break;
/* Force this program to run in the interpreter. */
return false;
case Op::store8:
if (scalar) {
@ -3978,8 +3978,8 @@ namespace skvm {
case Op::trace_line:
case Op::trace_var:
case Op::trace_call:
/* Only supported in the interpreter. */
break;
/* Force this program to run in the interpreter. */
return false;
case Op::index: {
A::V tmp = alloc_tmp();