v8/test/unittests/interpreter
Georg Neis b97567a976 No longer desugar the exponentiation (**) operator.
Prior to this change, the exponentiation operator was rewritten by the
parser to a call of the Math.pow builtin. However, Math.pow does not
accept BigInt arguments, while the exponentiation operator must accept
them.

This CL
- removes the parser's special treatment of ** and **=, treating them
  like any other binary op instead.
- adds a TFC builtin Exponentiate that does the right thing for
  all inputs.
- adds interpreter bytecodes Exp and ExpSmi whose handlers call the
  Exponentiate builtin. For simplicity, they currently always collect
  kAny feedback.
- adds a Turbofan operator JSExponentiate with a typed-lowering to
  the existing NumberPow and a generic-lowering to the Exponentiate
  builtin. There is currently no speculative lowering.

Note that exponentiation for BigInts is actually not implemented yet,
so we can't yet test it.

Bug: v8:6791
Change-Id: Id90914c9c3fce310ce01e715c09eaa9f294f4f8a
Reviewed-on: https://chromium-review.googlesource.com/785694
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49696}
2017-11-29 06:52:27 +00:00
..
bytecode-array-builder-unittest.cc No longer desugar the exponentiation (**) operator. 2017-11-29 06:52:27 +00:00
bytecode-array-iterator-unittest.cc [Compiler] Remove isolate from CompilationInfo. 2017-11-15 15:40:55 +00:00
bytecode-array-random-iterator-unittest.cc [Compiler] Remove isolate from CompilationInfo. 2017-11-15 15:40:55 +00:00
bytecode-array-writer-unittest.cc [jumbo] fix B macro/symbol clashes in arm64 builds 2017-11-09 09:33:45 +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 Revert "[ignition] Merge bytecode array builder and writer" 2017-06-27 09:10:18 +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] Remove BytecodePipeline. 2017-04-12 15:18:50 +00:00
bytecode-source-info-unittest.cc [Interpreter] Remove BytecodePipeline. 2017-04-12 15:18:50 +00:00
bytecode-utils.h [jumbo] fix B macro/symbol clashes in arm64 builds 2017-11-09 09:33:45 +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 [ast] Move AstValue implementation into Literal 2017-10-27 20:21:29 +00:00
interpreter-assembler-unittest.cc [jumbo] fix another set of unittest compilation errors 2017-10-19 09:15:44 +00:00
interpreter-assembler-unittest.h [jumbo] fix another set of unittest compilation errors 2017-10-19 09:15:44 +00:00