aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/utils/beam_makeops
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2010-12-17 11:13:55 +0100
committerBjörn Gustavsson <[email protected]>2011-01-17 15:23:41 +0100
commite4a4632ed173f22642a2b67316b6decbc91b2a5b (patch)
treec48cd778fc73197c747bd025cdb2050d9277477c /erts/emulator/utils/beam_makeops
parent9cea01fb88b0e18e387b08fa3e6273dbf1f76082 (diff)
downloadotp-e4a4632ed173f22642a2b67316b6decbc91b2a5b.tar.gz
otp-e4a4632ed173f22642a2b67316b6decbc91b2a5b.tar.bz2
otp-e4a4632ed173f22642a2b67316b6decbc91b2a5b.zip
beam_makeops: Support jumping to common code from an instruction macro
Diffstat (limited to 'erts/emulator/utils/beam_makeops')
-rwxr-xr-xerts/emulator/utils/beam_makeops8
1 files changed, 8 insertions, 0 deletions
diff --git a/erts/emulator/utils/beam_makeops b/erts/emulator/utils/beam_makeops
index cf18ea4a92..e7c57142c0 100755
--- a/erts/emulator/utils/beam_makeops
+++ b/erts/emulator/utils/beam_makeops
@@ -938,6 +938,14 @@ sub basic_generator {
"{ $var_decls",
$macro_code,
"}");
+ } elsif ($flags =~ /-goto:(\S*)/) {
+ my $goto = $1;
+ $code = join("\n",
+ "{ $var_decls",
+ $macro_code,
+ "I += $size + 1;",
+ "goto $goto;",
+ "}");
} else {
$code = join("\n",
"{ $var_decls",