~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Erlang Packagers, Sergei Golovan
  • Date: 2006-12-03 17:07:44 UTC
  • mfrom: (2.1.11 feisty)
  • Revision ID: james.westby@ubuntu.com-20061203170744-rghjwupacqlzs6kv
Tags: 1:11.b.2-4
[ Sergei Golovan ]
Fixed erlang-base and erlang-base-hipe prerm scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
-record(rtl, {'fun',        %% Name of the function (MFA)
3
 
              args,         %% List of argument names (formals)
4
 
              closure,      %% True if this is code for a closure.
5
 
              leaf,         %% True if this is a leaf function.
6
 
              code,         %% Linear list of rtl-instructions.
7
 
              data,         %% Data segment
8
 
              var_range,    %% {Min,Max} First and last name used for
9
 
                            %%           regs fpregs or vars. 
10
 
                            %%           (they use a common namespace)
11
 
              label_range,  %% {Min,Max} First and last name used for labels
12
 
              info=[]       %% A keylist with arbitrary information.
13
 
             }).
14
 
 
15
 
-record(move, {dst, src, info}).
16
 
-record(multimove, {dst, src, info}).
17
 
-record(alu, {dst, src1, op, src2, info}).
18
 
-record(load, {dst, src, off, size, sign, info}).
19
 
-record(store, {dst, off, src, size, info}).
20
 
-record(load_address, {dst, address, type, info}).
21
 
-record(branch, {src1, src2, 'cond', true_label, false_label, p, info}).
22
 
-record(switch, {src, labels, sorted_by=[], info}).
23
 
-record(alub, {dst, src1, op, src2, 'cond', true_label, false_label, p, info}).
24
 
-record(call, {dst, 'fun', args, type, continuation, failcontinuation, info}).
25
 
-record(enter, {'fun', args, type, info}).
26
 
-record(return, {vars, info}).
27
 
-record(gctest, {words, info}).
28
 
-record(load_atom, {dst, atom, info}).
29
 
-record(load_word_index, {dst, block, index, info}).
30
 
-record(goto_index, {block, index, labels, info}).
31
 
-record(label, {name, info}).
32
 
-record(restore_catch, {vars, info}).
33
 
-record(comment, {text, info}).
34
 
-record(goto, {label, info}).
35
 
-record(fail_to, {reason, label, info}).
36
 
-record(fload, {dst, src, off, info}).
37
 
-record(fstore, {dst, off, src, info}).
38
 
-record(fmov, {dst, src, info=[]}).
39
 
-record(fp, {dst, src1, op, src2, info}).
40
 
-record(fp_unop, {dst, src, op, info}).
41
 
-record(fconv, {dst, src, info=[]}).
 
1
%% -*- erlang-indent-level: 2 -*-
 
2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
3
%%
 
4
%% Provides the abstract datatypes for HiPE's RTL (Register Transfer Language).
 
5
%%
 
6
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
7
 
 
8
-record(alu, {dst, src1, op, src2}).
 
9
-record(alub, {dst, src1, op, src2, 'cond', true_label, false_label, p}).
 
10
-record(branch, {src1, src2, 'cond', true_label, false_label, p}).
 
11
-record(call, {dstlist, 'fun', arglist, type, continuation, failcontinuation}).
 
12
-record(comment, {text}).
 
13
-record(enter, {'fun', arglist, type}).
 
14
-record(fconv, {dst, src}).
 
15
-record(fixnumop, {dst, src, type}).
 
16
-record(fload, {dst, src, offset}).
 
17
-record(fmove, {dst, src}).
 
18
-record(fp, {dst, src1, op, src2}).
 
19
-record(fp_unop, {dst, src, op}).
 
20
-record(fstore, {base, offset, src}).
 
21
-record(gctest, {words}).
 
22
-record(binbase, {dst, orig, offset}).
 
23
-record(goto, {label}).
 
24
-record(goto_index, {block, index, labels}).
 
25
-record(label, {name}).
 
26
-record(load, {dst, src, offset, size, sign}).
 
27
-record(load_address, {dst, address, type}).
 
28
-record(load_atom, {dst, atom}).
 
29
-record(load_word_index, {dst, block, index}).
 
30
-record(move, {dst, src}).
 
31
-record(multimove, {dstlist, srclist}).
 
32
-record(phi, {dst, id, arglist}).
 
33
-record(return, {varlist}).
 
34
-record(store, {base, offset, src, size}).
 
35
-record(switch, {src, labels, sorted_by=[]}).
 
36
 
 
37
%%---------------------------------------------------------------------
 
38
 
 
39
%% An efficient macro to convert byte sizes to bit sizes
 
40
-define(bytes_to_bits(Bytes), ((Bytes) bsl 3)).  % (N * 8)
 
41
 
 
42
%%---------------------------------------------------------------------