v8/test/unittests/interpreter
Jaroslav Sevcik f53dfd934d Replace array index masking with the poisoning approach.
The idea is to mark all the branches and loads participating in array
bounds checks, and let them contribute-to/use the poisoning register.
In the code, the marks for array indexing operations now contain
"Critical" in their name. By default (--untrusted-code-mitigations),
we only instrument the "critical" operations with poisoning.

With that in place, we also remove the array masking approach based
on arithmetic.

Since we do not propagate the poison through function calls,
we introduce a node for poisoning an index that is passed through
function call - the typical example is the bounds-checked index
that is passed to the CharCodeAt builtin.

Most of the code in this CL is threads through the three levels of
protection (safe, critical, unsafe) for loads, branches and flags.

Bug: chromium:798964

Change-Id: Ief68e2329528277b3ba9156115b2a6dcc540d52b
Reviewed-on: https://chromium-review.googlesource.com/995413
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52883}
2018-04-30 13:22:44 +00:00
..
bytecode-array-builder-unittest.cc Remove incorrect receiver checks from some array methods. 2018-04-23 08:57:35 +00:00
bytecode-array-iterator-unittest.cc [Interpreter] Make RegisterList constructor private to avoid missue. 2017-12-13 13:15:35 +00:00
bytecode-array-random-iterator-unittest.cc [Interpreter] Make RegisterList constructor private to avoid missue. 2017-12-13 13:15:35 +00:00
bytecode-array-writer-unittest.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
bytecode-decoder-unittest.cc [jumbo] fix B macro/symbol clashes in arm64 builds 2017-11-09 09:33:45 +00:00
bytecode-node-unittest.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
bytecode-operands-unittest.cc [Interpreter] Templatize AccumulatorUsage and OperandType for bytecode creation. 2016-12-15 07:56:21 +00:00
bytecode-register-allocator-unittest.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
bytecode-register-optimizer-unittest.cc [Interpreter] Make RegisterList constructor private to avoid missue. 2017-12-13 13:15:35 +00:00
bytecode-source-info-unittest.cc [Interpreter] Remove BytecodePipeline. 2017-04-12 15:18:50 +00:00
bytecode-utils.h [Interpreter] Make RegisterList constructor private to avoid missue. 2017-12-13 13:15:35 +00:00
bytecodes-unittest.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
constant-array-builder-unittest.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
interpreter-assembler-unittest.cc Replace array index masking with the poisoning approach. 2018-04-30 13:22:44 +00:00
interpreter-assembler-unittest.h [turbofan] unify interpreter and JIT speculation poisoning 2018-03-27 12:55:28 +00:00