diff options
author | Björn Gustavsson <[email protected]> | 2018-01-24 12:33:32 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2018-01-24 12:33:32 +0100 |
commit | 4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd (patch) | |
tree | b0f72307cfeb11a886820845e07f0c67d870b9dc /lib/compiler/src/genop.tab | |
parent | 8e66754dac8963a6631c850b1eb63b27408259a2 (diff) | |
parent | 9b0122b65bdcafbae2a3cfd3299903da0948acab (diff) | |
download | otp-4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd.tar.gz otp-4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd.tar.bz2 otp-4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd.zip |
Merge pull request #1682 from bjorng/bjorn/optimize-unbuilt-stacktrace
Don't build a stacktrace if it's only passed to erlang:raise/3
Diffstat (limited to 'lib/compiler/src/genop.tab')
-rwxr-xr-x | lib/compiler/src/genop.tab | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/compiler/src/genop.tab b/lib/compiler/src/genop.tab index 397e478e1e..d59bb241a8 100755 --- a/lib/compiler/src/genop.tab +++ b/lib/compiler/src/genop.tab @@ -554,3 +554,13 @@ BEAM_FORMAT_NUMBER=0 ## Do a garbage collection if necessary to allocate space on the heap ## for the result. 160: build_stacktrace/0 + +## @spec raw_raise +## @doc This instruction works like the erlang:raise/3 BIF, except that the +## stacktrace in x(2) must be a raw stacktrace. +## x(0) is the class of the exception (error, exit, or throw), +## x(1) is the exception term, and x(2) is the raw stackframe. +## If x(0) is not a valid class, the instruction will not throw an +## exception, but store the atom 'badarg' in x(0) and execute the +## next instruction. +161: raw_raise/0 |