Intrinsic changes:
- Rename %RawCast to %RawObjectCast and add error checking so that it
only applies to subtypes of Objects.
- Add %RawPointerCast, which is similar to %RawObjectCast but must be
used for all subtypes of RawPtr.
- Add %RawConstexprCast, which allows one constexpr to be be cast to
another at compile time. It translate to an appropriate static_cast
in the generated code
- Add %FromConstexpr, which handles most of the standard cases of
generating XXXConstant CSA nodes from constexpr constants. It uses
either SmiConstant, NumberConstant, StringConstant, IntPtrConstant
or Int32Constant, depending on the cast-to type generic <To> type.
- Add support for intrinsics that return constexpr results.
Cleanup:
- Turn FromConstexpr into a generic with two generic types, a <To> and
a <From> type. Most FromConstexpr can use the new %FromConstexpr
intrinsic rather than provide an explicit implementation.
Bug: v8:7793
Change-Id: Icab5db16d203034ec157fa3ad5157d10c7dc8464
Reviewed-on: https://chromium-review.googlesource.com/c/1357049
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58049}