~ubuntu-branches/ubuntu/karmic/erlang/karmic-security

« back to all changes in this revision

Viewing changes to lib/hipe/rtl/hipe_rtl.erl

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-05-01 10:14:38 UTC
  • mfrom: (3.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090501101438-6qlr6rsdxgyzrg2z
Tags: 1:13.b-dfsg-2
* Cleaned up patches: removed unneeded patch which helped to support
  different SCTP library versions, made sure that changes for m68k
  architecture applied only when building on this architecture.
* Removed duplicated information from binary packages descriptions.
* Don't require libsctp-dev build-dependency on solaris-i386 architecture
  which allows to build Erlang on Nexenta (thanks to Tim Spriggs for
  the suggestion).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
%% -*- erlang-indent-level: 2 -*-
 
2
%%
 
3
%% %CopyrightBegin%
 
4
%% 
 
5
%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
 
6
%% 
 
7
%% The contents of this file are subject to the Erlang Public License,
 
8
%% Version 1.1, (the "License"); you may not use this file except in
 
9
%% compliance with the License. You should have received a copy of the
 
10
%% Erlang Public License along with this software. If not, it can be
 
11
%% retrieved online at http://www.erlang.org/.
 
12
%% 
 
13
%% Software distributed under the License is distributed on an "AS IS"
 
14
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 
15
%% the License for the specific language governing rights and limitations
 
16
%% under the License.
 
17
%% 
 
18
%% %CopyrightEnd%
 
19
%%
2
20
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3
21
%% @doc
4
22
%%
882
900
    #alub{} -> [alub_src1(I), alub_src2(I)];
883
901
    #branch{} -> [branch_src1(I), branch_src2(I)];
884
902
    #call{} -> 
 
903
      Args = call_arglist(I) ++ hipe_rtl_arch:call_used(),
885
904
      case call_is_known(I) of
886
 
        false -> [call_fun(I)|call_arglist(I)];
887
 
        true -> call_arglist(I)
 
905
        false -> [call_fun(I) | Args];
 
906
        true -> Args
888
907
      end;
889
908
    #comment{} -> [];
890
909
    #enter{} ->
 
910
      Args = enter_arglist(I) ++ hipe_rtl_arch:tailcall_used(),
891
911
      case enter_is_known(I) of
892
 
        false -> hipe_rtl_arch:add_ra_reg([enter_fun(I)|enter_arglist(I)]);
893
 
        true -> hipe_rtl_arch:add_ra_reg(enter_arglist(I))
 
912
        false -> [enter_fun(I) | Args];
 
913
        true -> Args
894
914
      end;
895
915
    #fconv{} -> [fconv_src(I)];
896
916
    #fixnumop{} -> [fixnumop_src(I)];
910
930
    #move{} -> [move_src(I)];
911
931
    #multimove{} -> multimove_srclist(I);
912
932
    #phi{} -> phi_args(I);
913
 
    #return{} -> hipe_rtl_arch:add_ra_reg(return_varlist(I));
 
933
    #return{} -> return_varlist(I) ++ hipe_rtl_arch:return_used();
914
934
    #store{} -> [store_base(I), store_offset(I), store_src(I)];
915
935
    #switch{} -> [switch_src(I)]
916
936
  end.
924
944
           #alu{} -> [alu_dst(Instr)];
925
945
           #alub{} -> [alub_dst(Instr)];
926
946
           #branch{} -> [];
927
 
           #call{} -> call_dstlist(Instr);
 
947
           #call{} -> call_dstlist(Instr) ++ hipe_rtl_arch:call_defined();
928
948
           #comment{} -> [];
929
949
           #enter{} -> [];
930
950
           #fconv{} -> [fconv_dst(Instr)];
990
1010
      end;
991
1011
    #comment{} ->
992
1012
      I;
993
 
    #enter{} -> %% XXX: Check why ra_reg is added in uses() but not updated here
 
1013
    #enter{} ->
994
1014
      case enter_is_known(I) of
995
1015
        false -> 
996
1016
          I0 = enter_fun_update(I, subst1(Subst, enter_fun(I))),