diff options
author | Björn Gustavsson <[email protected]> | 2017-05-18 07:17:22 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2017-05-18 07:37:39 +0200 |
commit | a3407eaa2104d634e4400c0c805202da462ee66f (patch) | |
tree | 28e5e05338237bee7c78c3b83d29eca4d7fc33ea /erts/emulator/utils/beam_makeops | |
parent | 91da20e4cc10a1b73672e558be34b14adc8ac0ae (diff) | |
download | otp-a3407eaa2104d634e4400c0c805202da462ee66f.tar.gz otp-a3407eaa2104d634e4400c0c805202da462ee66f.tar.bz2 otp-a3407eaa2104d634e4400c0c805202da462ee66f.zip |
Eliminate the -gen_dest macro flag
Instructions that take a 'd' argument needs a -gen_dest flag in their
macros. For example:
%macro:put_list PutList -pack -gen_dest
put_list s s d
-gen_dest was needed when x(0) was stored in a register, since it is
not possible to take the address of a register. Now that x(0) is stored
in memory and we can take the address, we can eliminate gen_dest.
Diffstat (limited to 'erts/emulator/utils/beam_makeops')
-rwxr-xr-x | erts/emulator/utils/beam_makeops | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/erts/emulator/utils/beam_makeops b/erts/emulator/utils/beam_makeops index 9813142585..b2bc9a17a8 100755 --- a/erts/emulator/utils/beam_makeops +++ b/erts/emulator/utils/beam_makeops @@ -928,7 +928,6 @@ sub basic_generator { my($tmp_arg_num) = 1; my($pack_spec) = ''; my($var_decls) = ''; - my($gen_dest_arg) = 'StoreSimpleDest'; my($i); my($no_prefetch) = 0; @@ -994,11 +993,11 @@ sub basic_generator { push(@f_types, $_); $prefix .= "GetR($size, $tmp);\n"; last SWITCH; }; - /d/ and do { $var_decls .= "Eterm dst; "; - push(@f, "dst"); + /d/ and do { $var_decls .= "Eterm dst; Eterm* dst_ptr; "; + push(@f, "*dst_ptr"); push(@f_types, $_); $prefix .= "dst = Arg($size);\n"; - $gen_dest_arg = 'StoreResult'; + $prefix .= "dst_ptr = REG_TARGET_PTR(dst);\n"; last SWITCH; }; defined($incl_arg{$_}) @@ -1017,14 +1016,6 @@ sub basic_generator { } # - # If requested, pass a pointer to the destination register. - # The destination must be the last operand. - # - if ($flags =~ /-gen_dest/) { - push(@f, $gen_dest_arg); - } - - # # Add a fail action macro if requested. # |