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

« back to all changes in this revision

Viewing changes to lib/hipe/x86/hipe_x86.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:
12
12
%%% term        ::= <any Erlang term>
13
13
%%% cc          ::= <an atom denoting a condition code>
14
14
%%% pred        ::= <a real number between 0.0 and 1.0 inclusive>
15
 
%%% isfail      ::= 'true' | 'false'
16
15
%%% npop        ::= <a 32-bit natural number which is a multiple of 4>
17
16
%%%
18
17
%%% temp        ::= {x86_temp, reg, type, allocatable}
21
20
%%% imm         ::= {x86_imm, value}
22
21
%%% value       ::= int32 | atom | {label, label_type}
23
22
%%%
24
 
%%% mem         ::= {x86_mem, base, off, type}
 
23
%%% mem         ::= {x86_mem, base, off, mem_type}
25
24
%%% base        ::= temp | []           (XXX BUG: not quite true before RA)
26
25
%%% off         ::= imm | temp
 
26
%%% mem_type    ::= 'byte' | 'int16'    (only valid with mov{s,z}x)
 
27
%%%               | type
27
28
%%%
28
29
%%% src         ::= temp | mem | imm
29
30
%%% dst         ::= temp | mem
57
58
%%% After frame allocation, every temp must denote a physical register.
58
59
 
59
60
-record(alu, {aluop, src, dst}).
60
 
-record(call, {'fun', sdesc}).
 
61
-record(call, {'fun', sdesc, linkage}).
61
62
-record(cmovcc, {cc, src, dst}).
62
 
-record(cmp, {src, dst}).               % a 'sub' alu which doesn't update dst
 
63
-record(cmp, {src, dst}).               % a 'sub' alu which doesn't update dst
63
64
-record(comment, {term}).
64
 
-record(dec, {dst}).
65
 
-record(finit, {}).
66
 
-record(fmov, {src, dst}).
 
65
-record(fmove, {src, dst}).
67
66
-record(fp_binop, {op, src, dst}).
68
 
-record(fp_unop, {op, arg}).
69
 
-record(inc, {dst}).
 
67
-record(fp_unop, {op, arg}).            % arg may be [] :-(
70
68
-record(jcc, {cc, label}).
71
 
-record(jmp_fun, {'fun'}).              % tailcall, direct or indirect
 
69
-record(jmp_fun, {'fun', linkage}).     % tailcall, direct or indirect
72
70
-record(jmp_label, {label}).            % local jmp, direct
73
71
-record(jmp_switch, {temp, jtab, labels}).      % local jmp, indirect
74
 
-record(label, {label, isfail}).
 
72
-record(label, {label}).
75
73
-record(lea, {mem, temp}).
76
74
-record(move, {src, dst}).
 
75
-record(move64, {imm, dst}).
77
76
-record(movsx, {src, dst}).
78
77
-record(movzx, {src, dst}).
79
 
-record(nop, {}).
80
 
-record(prefix_fs, {}).
81
 
-record(pseudo_call, {dsts, 'fun', arity, contlab, exnlab}). % dsts is [] or [EAX]
 
78
-record(pseudo_call, {'fun', sdesc, contlab, linkage}).
82
79
-record(pseudo_jcc, {cc, true_label, false_label, pred}).
83
 
-record(pseudo_tailcall, {'fun', arity, stkargs}).
 
80
-record(pseudo_tailcall, {'fun', arity, stkargs, linkage}).
84
81
-record(pseudo_tailcall_prepare, {}).
85
82
-record(push, {src}).
 
83
-record(pop, {dst}).
86
84
-record(ret, {npop}).                   % EAX is live-in
87
85
-record(shift, {shiftop, src, dst}).
 
86
-record(test, {src, dst}).
 
87
 
88
88
%%% Function definitions.
89
89
 
90
90
-record(defun, {mfa, formals, code, data, isclosure, isleaf,