diff options
author | Björn Gustavsson <[email protected]> | 2010-11-11 13:49:32 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-01-17 15:23:40 +0100 |
commit | 21cd0c4f8654286ce8b14157529fcfc916fc209e (patch) | |
tree | 935f25fc42a89afab0abe82145ba5959614bf91a /erts/emulator/beam/ops.tab | |
parent | 30f8eebe7b74a978de7acdb889b5d9e7a6f19ef9 (diff) | |
download | otp-21cd0c4f8654286ce8b14157529fcfc916fc209e.tar.gz otp-21cd0c4f8654286ce8b14157529fcfc916fc209e.tar.bz2 otp-21cd0c4f8654286ce8b14157529fcfc916fc209e.zip |
Eliminate the special instructions for selecting floats and bignums
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r-- | erts/emulator/beam/ops.tab | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index 7f4035c4e6..2d89926bc5 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -132,8 +132,12 @@ select_val S=s Fail=f Size=u Rest=* | use_jump_tab(Size, Rest) => \ is_integer Fail=f S | select_val S=s Fail=f Size=u Rest=* | use_jump_tab(Size, Rest) => \ gen_jump_tab(S, Fail, Size, Rest) +is_integer TypeFail=f S | select_val S=s Fail=f Size=u Rest=* | \ + mixed_types(Size, Rest) => \ + gen_split_values(S, TypeFail, Fail, Size, Rest) + select_val S=s Fail=f Size=u Rest=* | mixed_types(Size, Rest) => \ - gen_split_values(S, Fail, Size, Rest) + gen_split_values(S, Fail, Fail, Size, Rest) is_integer Fail=f S | select_val S=s Fail=f Size=u Rest=* | \ fixed_size_values(Size, Rest) => gen_select_val(S, Fail, Size, Rest) @@ -141,12 +145,12 @@ is_integer Fail=f S | select_val S=s Fail=f Size=u Rest=* | \ is_atom Fail=f S | select_val S=s Fail=f Size=u Rest=* | \ fixed_size_values(Size, Rest) => gen_select_val(S, Fail, Size, Rest) +select_val S=s Fail=f Size=u Rest=* | floats_or_bignums(Size, Rest) => \ + gen_select_literals(S, Fail, Size, Rest) + select_val S=s Fail=f Size=u Rest=* | fixed_size_values(Size, Rest) => \ gen_select_val(S, Fail, Size, Rest) -select_val S=s Fail=f Size=u Rest=* | all_values_are_big(Size, Rest) => \ - gen_select_big(S, Fail, Size, Rest) - is_tuple Fail=f S | select_tuple_arity S=s Fail=f Size=u Rest=* => \ gen_select_tuple_arity(S, Fail, Size, Rest) @@ -155,8 +159,6 @@ select_tuple_arity S=s Fail=f Size=u Rest=* => \ i_select_val s f I i_select_tuple_arity s f I -i_select_big s f -i_select_float s f I i_jump_on_val_zero s f I i_jump_on_val s f I I |