aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/genop.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2018-01-24 12:33:32 +0100
committerGitHub <[email protected]>2018-01-24 12:33:32 +0100
commit4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd (patch)
treeb0f72307cfeb11a886820845e07f0c67d870b9dc /lib/compiler/src/genop.tab
parent8e66754dac8963a6631c850b1eb63b27408259a2 (diff)
parent9b0122b65bdcafbae2a3cfd3299903da0948acab (diff)
downloadotp-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-xlib/compiler/src/genop.tab10
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