aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src/hipe_ext_format.hrl
blob: 102cb49a2bc31e10f391b0a248e820ccaf4a656f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
%% hipe_x86_ext_format.hrl
%% Definitions for unified external object format
%% Currently: sparc, x86, amd64
%% Authors: Erik Johansson, Ulf Magnusson

-define(LOAD_ATOM,0).
-define(LOAD_ADDRESS,1).
-define(CALL_REMOTE,2).
-define(CALL_LOCAL,3).
-define(SDESC,4).
-define(X86ABSPCREL,5).

-define(TERM,0).
-define(BLOCK,1).
-define(SORTEDBLOCK,2).

-define(CONST_TYPE2EXT(T),
	case T of
	    term -> ?TERM;
	    sorted_block -> ?SORTEDBLOCK;
            block -> ?BLOCK
        end).

-define(EXT2CONST_TYPE(E),
	case E of
	    ?TERM -> term;
	    ?SORTEDBLOCK -> sorted_block;
	    ?BLOCK -> block
	end).

-define(EXT2PATCH_TYPE(E),
	case E of
	    ?LOAD_ATOM -> load_atom;
	    ?LOAD_ADDRESS -> load_address;
	    ?SDESC -> sdesc;
	    ?X86ABSPCREL -> x86_abs_pcrel;
	    ?CALL_REMOTE -> call_remote;
	    ?CALL_LOCAL -> call_local
	end).

-define(STACK_DESC(ExnRA, FSize, Arity, Live), {ExnRA, FSize, Arity, Live}).