GNU PROLOG with UTF8 support
Main Page
Data Structures
Files
File List
Globals
gprolog-utf8-tree
src
Ma2Asm
FromC
mach.h
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------*
2
* Prolog To Wam Compiler INRIA Rocquencourt - CLoE Project *
3
* C Run-time Daniel Diaz - 1994 *
4
* *
5
* Machine Dependent Features - Header file *
6
* *
7
* machine.h *
8
*-------------------------------------------------------------------------*/
9
10
/*---------------------------------*
11
* Asm Labels, Symbols and Gotos *
12
*---------------------------------*/
13
14
#if defined(M_sony_news) || defined(M_ultrix_dec) || defined(M_alpha_osf) ||\
15
defined(M_ix86_linux) || defined(M_ix86_sco) || defined(M_ix86_bsd) ||\
16
defined(M_x86_64_linux) || defined(m_x86_64_bsd) || \
17
defined(M_powerpc_bsd) || defined(M_sparc_bsd) || defined(__ELF__)
18
19
# define M_Asm_Symbol1(name) #name
20
# define M_Asm_Symbol(name) M_Asm_Symbol1(name)
21
22
#elif defined (M_ix86_win32)
23
24
# define M_Asm_Symbol1(name) _##name
25
# define M_Asm_Symbol(name) M_Asm_Symbol1(name)
26
27
#else
28
29
# define M_Asm_Symbol1(name) "_"#name
30
# define M_Asm_Symbol(name) M_Asm_Symbol1(name)
31
32
#endif
33
34
35
36
#if defined(M_ix86_win32)
37
38
#define M_Indirect_Goto(p_lab) {register long adr=(long) p_lab; _asm jmp adr}
39
40
#else
41
42
#define M_Indirect_Goto(p_lab) {goto *(void*) p_lab;}
43
44
#endif
45
46
47
#if defined(M_sparc_sunos) || defined(M_ultrix_dec) || \
48
defined(M_sony_news) || defined(M_hppa_NeXT)
49
50
# define M_Direct_Goto(lab) {lab(); return;}
51
52
53
#elif defined(M_alpha_osf)
54
55
# define M_Direct_Goto(lab) {asm("lda $28," M_Asm_Symbol(lab)); \
56
asm("jmp $31,($28)," M_Asm_Symbol(lab));\
57
return;}
58
59
#elif defined(M_ix86) && defined(__GNUC__)
60
61
# define M_Direct_Goto(lab) {asm("jmp " M_Asm_Symbol(lab)); return;}
62
63
#elif defined(_MSC_VER)
64
65
# define M_Direct_Goto(lab) {_asm {jmp M_Asm_Symbol(lab)}; return;}
66
67
#elif defined(M_x86_64_linux) || defined(M_x86_64_solaris) || defined(M_x86_64_bsd)
68
69
# define M_Direct_Goto(lab) {asm("jmp " M_Asm_Symbol(lab)); return;}
70
71
#elif defined(M_powerpc_linux) || defined(M_powerpc_bsd)
72
73
# define M_Direct_Goto(lab) {asm("b " M_Asm_Symbol(lab)); return;}
74
75
#elif defined(M_m68k_NeXT)
76
77
# define M_Direct_Goto(lab) {asm("jmp " M_Asm_Symbol(lab)); return;}
78
79
#endif
80
81
82
83
84
/*---------------------------------*
85
* WAM *
86
*---------------------------------*/
87
88
#if 0
89
90
#if defined(M_ix86)
91
92
register
WamWord
*reg_bank
asm
(
"ebx"
);
93
94
#elif defined(M_powerpc)
95
96
register
WamWord
*reg_bank
asm
(
"r31"
);
97
98
#elif defined(M_x86_64)
99
100
register
WamWord
*reg_bank
asm
(
"r12"
);
101
102
#else
103
104
WamWord
*reg_bank;
105
106
#endif
107
108
#endif
109
110
WamWord
long WamWord
Definition:
LINUX_SIGSEGV.c:4
Generated by
1.8.11