Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
55a613a7
Commit
55a613a7
authored
Nov 26, 2002
by
Matthias Heil
Browse files
Modi umbenannt
sather und fiasco tarvals entfernt [r523]
parent
b67627d2
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
ir/ir/ircons.c
View file @
55a613a7
...
...
@@ -50,7 +50,7 @@ new_rd_Block (dbg_info* db, ir_graph *irg, int arity, ir_node **in)
{
ir_node
*
res
;
res
=
new_ir_node
(
db
,
irg
,
NULL
,
op_Block
,
mode_
R
,
arity
,
in
);
res
=
new_ir_node
(
db
,
irg
,
NULL
,
op_Block
,
mode_
BB
,
arity
,
in
);
set_Block_matured
(
res
,
1
);
set_Block_block_visited
(
res
,
0
);
...
...
@@ -162,7 +162,7 @@ new_rd_defaultProj (dbg_info* db, ir_graph *irg, ir_node *block, ir_node *arg,
long
max_proj
)
{
ir_node
*
res
;
assert
((
arg
->
op
==
op_Cond
)
&&
(
get_irn_mode
(
arg
->
in
[
1
])
==
mode_I
));
assert
((
arg
->
op
==
op_Cond
)
&&
(
get_irn_mode
(
arg
->
in
[
1
])
==
mode_I
u
));
arg
->
attr
.
c
.
kind
=
fragmentary
;
arg
->
attr
.
c
.
default_proj
=
max_proj
;
res
=
new_rd_Proj
(
db
,
irg
,
block
,
arg
,
mode_X
,
max_proj
);
...
...
@@ -556,7 +556,7 @@ new_rd_Sel (dbg_info* db, ir_graph *irg, ir_node *block, ir_node *store, ir_node
r_in
[
0
]
=
store
;
r_in
[
1
]
=
objptr
;
memcpy
(
&
r_in
[
2
],
in
,
sizeof
(
ir_node
*
)
*
arity
);
res
=
new_ir_node
(
db
,
irg
,
block
,
op_Sel
,
mode_
p
,
r_arity
,
r_in
);
res
=
new_ir_node
(
db
,
irg
,
block
,
op_Sel
,
mode_
P
,
r_arity
,
r_in
);
res
->
attr
.
s
.
ent
=
ent
;
...
...
@@ -595,9 +595,9 @@ new_rd_SymConst (dbg_info* db, ir_graph *irg, ir_node *block, type_or_id_p value
ir_node
*
res
;
ir_mode
*
mode
;
if
(
symkind
==
linkage_ptr_info
)
mode
=
mode_
p
;
mode
=
mode_
P
;
else
mode
=
mode_I
;
mode
=
mode_I
u
;
res
=
new_ir_node
(
db
,
irg
,
block
,
op_SymConst
,
mode
,
0
,
in
);
res
->
attr
.
i
.
num
=
symkind
;
...
...
@@ -1299,7 +1299,7 @@ get_r_value_internal (ir_node *block, int pos, ir_mode *mode)
/* Error Message */
printf
(
"Error: no value set. Use of undefined variable. Initializing
to zero.
\n
"
);
assert
(
mode
->
code
>=
irm_
f
&&
mode
->
code
<=
irm_
p
);
assert
(
mode
->
code
>=
irm_
F
&&
mode
->
code
<=
irm_
P
);
res
=
new_rd_Const
(
NULL
,
current_ir_graph
,
block
,
mode
,
tarval_mode_null
[
mode
->
code
]);
}
...
...
@@ -1629,7 +1629,7 @@ get_r_value_internal (ir_node *block, int pos, ir_mode *mode)
/* Error Message */
printf
(
"Error: no value set. Use of undefined variable. Initializing
to zero.
\n
"
);
assert
(
mode
->
code
>=
irm_
f
&&
mode
->
code
<=
irm_
p
);
assert
(
mode
->
code
>=
irm_
F
&&
mode
->
code
<=
irm_
P
);
res
=
new_rd_Const
(
NULL
,
current_ir_graph
,
block
,
mode
,
tarval_mode_null
[
mode
->
code
]);
}
...
...
@@ -1720,7 +1720,7 @@ ir_node *
new_d_defaultProj
(
dbg_info
*
db
,
ir_node
*
arg
,
long
max_proj
)
{
ir_node
*
res
;
assert
((
arg
->
op
==
op_Cond
)
&&
(
get_irn_mode
(
arg
->
in
[
1
])
==
mode_I
));
assert
((
arg
->
op
==
op_Cond
)
&&
(
get_irn_mode
(
arg
->
in
[
1
])
==
mode_I
u
));
arg
->
attr
.
c
.
kind
=
fragmentary
;
arg
->
attr
.
c
.
default_proj
=
max_proj
;
res
=
new_Proj
(
arg
,
mode_X
,
max_proj
);
...
...
@@ -2094,7 +2094,7 @@ ir_node *new_d_immBlock (dbg_info* db) {
assert
(
get_irg_phase_state
(
current_ir_graph
)
==
phase_building
);
/* creates a new dynamic in-array as length of in is -1 */
res
=
new_ir_node
(
db
,
current_ir_graph
,
NULL
,
op_Block
,
mode_
R
,
-
1
,
NULL
);
res
=
new_ir_node
(
db
,
current_ir_graph
,
NULL
,
op_Block
,
mode_
BB
,
-
1
,
NULL
);
current_ir_graph
->
current_block
=
res
;
res
->
attr
.
block
.
matured
=
0
;
res
->
attr
.
block
.
exc
=
exc_normal
;
...
...
ir/ir/ircons.h
View file @
55a613a7
...
...
@@ -298,11 +298,11 @@
* add_in_edge(this_block, cf_pred1);
* add_in_edge(this_block, cf_pred2);
* mature_block(this_block);
* a_val = get_value(42, mode_I);
* a_val = get_value(42, mode_I
u
);
* mem = get_store();
* div = new_Div(mem, a_val, a_val);
* mem = new_Proj(div, mode_M, 0); * for the numbers for Proj see docu *
* res = new_Proj(div, mode_I, 2);
* res = new_Proj(div, mode_I
u
, 2);
* set_store(mem);
* set_value(res, 42);
* cf_op = new_Jmp();
...
...
@@ -595,7 +595,7 @@
* datastructure don't use
* new_SymConst((type_or_id*)get_entity_ld_ident(ent), linkage_ptr_info);.
* Use a real const instead:
* new_Const(mode_
p
, tarval_p_from_entity(ent));
* new_Const(mode_
P
, tarval_p_from_entity(ent));
* This makes the Constant independent of name changes of the entity due to
* mangling.
*
...
...
@@ -616,10 +616,10 @@
* - size
* - linkage_ptr_info
* If the attr.i.num is type_tag or size, the node contains an attribute
* attr.i.*type, a pointer to a type_class. The mode of the node is mode_
i
.
* attr.i.*type, a pointer to a type_class. The mode of the node is mode_
Is
.
* if it is linkage_ptr_info it contains
* attr.i.*ptrinfo, an ident holding information for the linker. The mode
* of the node is mode_
p
.
* of the node is mode_
P
.
*
* THE SELECT NODE
* ---------------
...
...
ir/ir/irdump.c
View file @
55a613a7
...
...
@@ -531,7 +531,7 @@ void print_edge_vcgattr(ir_node *from, int to) {
case
iro_Start
:
break
;
case
iro_End
:
if
(
to
>=
0
)
{
if
(
get_irn_mode
(
get_End_keepalive
(
from
,
to
))
==
mode_
R
)
if
(
get_irn_mode
(
get_End_keepalive
(
from
,
to
))
==
mode_
BB
)
xfprintf
(
F
,
CF_EDGE_ATTR
);
if
(
get_irn_mode
(
get_End_keepalive
(
from
,
to
))
==
mode_X
)
xfprintf
(
F
,
MEM_EDGE_ATTR
);
...
...
ir/ir/irgopt.c
View file @
55a613a7
...
...
@@ -727,8 +727,8 @@ static void collect_calls(ir_node *call, void *env) {
if
(
get_irn_op
(
addr
)
==
op_Const
)
{
/* Check whether the constant is the pointer to a compiled entity. */
tv
=
get_Const_tarval
(
addr
);
if
(
tv
->
u
.
p
.
ent
)
{
called_irg
=
get_entity_irg
(
tv
->
u
.
p
.
ent
);
if
(
tv
->
u
.
P
.
ent
)
{
called_irg
=
get_entity_irg
(
tv
->
u
.
P
.
ent
);
if
(
called_irg
&&
pos
<
MAX_INLINE
)
{
/* The Call node calls a locally defined method. Remember to inline. */
calls
[
pos
]
=
call
;
...
...
@@ -771,7 +771,7 @@ void inline_small_irgs(ir_graph *irg, int size) {
tarval
*
tv
;
ir_graph
*
callee
;
tv
=
get_Const_tarval
(
get_Call_ptr
(
calls
[
i
]));
callee
=
get_entity_irg
(
tv
->
u
.
p
.
ent
);
callee
=
get_entity_irg
(
tv
->
u
.
P
.
ent
);
if
((
_obstack_memory_used
(
callee
->
obst
)
-
obstack_room
(
callee
->
obst
))
<
size
)
{
inline_method
(
calls
[
i
],
callee
);
}
...
...
ir/ir/irgraph.c
View file @
55a613a7
...
...
@@ -124,8 +124,8 @@ new_ir_graph (entity *ent, int n_loc)
/* Proj results of start node */
projX
=
new_Proj
(
res
->
start
,
mode_X
,
pns_initial_exec
);
set_store
(
new_Proj
(
res
->
start
,
mode_M
,
pns_global_store
));
res
->
frame
=
new_Proj
(
res
->
start
,
mode_
p
,
pns_frame_base
);
res
->
globals
=
new_Proj
(
res
->
start
,
mode_
p
,
pns_globals
);
res
->
frame
=
new_Proj
(
res
->
start
,
mode_
P
,
pns_frame_base
);
res
->
globals
=
new_Proj
(
res
->
start
,
mode_
P
,
pns_globals
);
res
->
args
=
new_Proj
(
res
->
start
,
mode_T
,
pns_args
);
add_in_edge
(
res
->
start_block
,
projX
);
...
...
ir/ir/irmode.c
View file @
55a613a7
...
...
@@ -18,46 +18,42 @@
# include "tv.h"
ir_mode
*
mode_T
;
ir_mode
*
mode_f
;
ir_mode
*
mode_d
;
ir_mode
*
mode_c
;
ir_mode
*
mode_F
;
ir_mode
*
mode_D
;
ir_mode
*
mode_E
;
ir_mode
*
mode_Bs
;
ir_mode
*
mode_Bu
;
ir_mode
*
mode_Hs
;
ir_mode
*
mode_Hu
;
ir_mode
*
mode_Is
;
ir_mode
*
mode_Iu
;
ir_mode
*
mode_Ls
;
ir_mode
*
mode_Lu
;
ir_mode
*
mode_C
;
ir_mode
*
mode_h
;
ir_mode
*
mode_H
;
ir_mode
*
mode_i
;
ir_mode
*
mode_I
;
ir_mode
*
mode_l
;
ir_mode
*
mode_L
;
ir_mode
*
mode_B
;
ir_mode
*
mode_b
;
ir_mode
*
mode_p
;
ir_mode
*
mode_s
;
ir_mode
*
mode_S
;
ir_mode
*
mode_P
;
ir_mode
*
mode_X
;
ir_mode
*
mode_M
;
ir_mode
*
mode_R
;
ir_mode
*
mode_Z
;
ir_mode
*
mode_BB
;
INLINE
ir_mode
*
get_modeT
()
{
return
mode_T
;
}
INLINE
ir_mode
*
get_modef
()
{
return
mode_f
;
}
INLINE
ir_mode
*
get_moded
()
{
return
mode_d
;
}
INLINE
ir_mode
*
get_modec
()
{
return
mode_c
;
}
INLINE
ir_mode
*
get_modeF
()
{
return
mode_F
;
}
INLINE
ir_mode
*
get_modeD
()
{
return
mode_D
;
}
INLINE
ir_mode
*
get_modeE
()
{
return
mode_E
;
}
INLINE
ir_mode
*
get_modeBs
()
{
return
mode_Bs
;
}
INLINE
ir_mode
*
get_modeBu
()
{
return
mode_Bu
;
}
INLINE
ir_mode
*
get_modeHs
()
{
return
mode_Hs
;
}
INLINE
ir_mode
*
get_modeHu
()
{
return
mode_Hu
;
}
INLINE
ir_mode
*
get_modeIs
()
{
return
mode_Is
;
}
INLINE
ir_mode
*
get_modeIu
()
{
return
mode_Iu
;
}
INLINE
ir_mode
*
get_modeLs
()
{
return
mode_Ls
;
}
INLINE
ir_mode
*
get_modeLu
()
{
return
mode_Lu
;
}
INLINE
ir_mode
*
get_modeC
()
{
return
mode_C
;
}
INLINE
ir_mode
*
get_modeh
()
{
return
mode_h
;
}
INLINE
ir_mode
*
get_modeH
()
{
return
mode_H
;
}
INLINE
ir_mode
*
get_modei
()
{
return
mode_i
;
}
INLINE
ir_mode
*
get_modeI
()
{
return
mode_I
;
}
INLINE
ir_mode
*
get_model
()
{
return
mode_l
;
}
INLINE
ir_mode
*
get_modeL
()
{
return
mode_L
;
}
INLINE
ir_mode
*
get_modeB
()
{
return
mode_B
;
}
INLINE
ir_mode
*
get_modep
()
{
return
mode_b
;
}
INLINE
ir_mode
*
get_modeb
()
{
return
mode_p
;
}
INLINE
ir_mode
*
get_modes
()
{
return
mode_s
;
}
INLINE
ir_mode
*
get_modeS
()
{
return
mode_S
;
}
INLINE
ir_mode
*
get_modeb
()
{
return
mode_b
;
}
INLINE
ir_mode
*
get_modeP
()
{
return
mode_P
;
}
INLINE
ir_mode
*
get_modeX
()
{
return
mode_X
;
}
INLINE
ir_mode
*
get_modeM
()
{
return
mode_M
;
}
INLINE
ir_mode
*
get_modeR
()
{
return
mode_R
;
}
INLINE
ir_mode
*
get_modeZ
()
{
return
mode_Z
;
}
INLINE
ir_mode
*
get_modeBB
()
{
return
mode_BB
;
}
void
init_mode
(
void
)
...
...
@@ -65,47 +61,43 @@ init_mode (void)
/* allocate all modes. We need to memset them as tarval_vrfy
reads fields before they are initialized: It compares to
min/max when tarvals for min/max are allocated! */
mode_T
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_T
,
0
,
sizeof
(
ir_mode
));
mode_f
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_f
,
0
,
sizeof
(
ir_mode
));
mode_d
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_d
,
0
,
sizeof
(
ir_mode
));
mode_c
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_c
,
0
,
sizeof
(
ir_mode
));
mode_C
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_C
,
0
,
sizeof
(
ir_mode
));
mode_h
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_h
,
0
,
sizeof
(
ir_mode
));
mode_H
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_H
,
0
,
sizeof
(
ir_mode
));
mode_i
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_i
,
0
,
sizeof
(
ir_mode
));
mode_I
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_I
,
0
,
sizeof
(
ir_mode
));
mode_l
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_l
,
0
,
sizeof
(
ir_mode
));
mode_L
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_L
,
0
,
sizeof
(
ir_mode
));
mode_B
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_B
,
0
,
sizeof
(
ir_mode
));
mode_b
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_b
,
0
,
sizeof
(
ir_mode
));
mode_p
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_p
,
0
,
sizeof
(
ir_mode
));
mode_s
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_s
,
0
,
sizeof
(
ir_mode
));
mode_S
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_S
,
0
,
sizeof
(
ir_mode
));
mode_X
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_X
,
0
,
sizeof
(
ir_mode
));
mode_M
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_M
,
0
,
sizeof
(
ir_mode
));
mode_R
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_R
,
0
,
sizeof
(
ir_mode
));
mode_Z
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Z
,
0
,
sizeof
(
ir_mode
));
mode_T
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_T
,
0
,
sizeof
(
ir_mode
));
mode_F
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_F
,
0
,
sizeof
(
ir_mode
));
mode_D
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_D
,
0
,
sizeof
(
ir_mode
));
mode_E
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_E
,
0
,
sizeof
(
ir_mode
));
mode_Bs
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Bs
,
0
,
sizeof
(
ir_mode
));
mode_Bu
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Bu
,
0
,
sizeof
(
ir_mode
));
mode_Hs
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Hs
,
0
,
sizeof
(
ir_mode
));
mode_Hu
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Hu
,
0
,
sizeof
(
ir_mode
));
mode_Is
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Is
,
0
,
sizeof
(
ir_mode
));
mode_Iu
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Iu
,
0
,
sizeof
(
ir_mode
));
mode_Ls
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Ls
,
0
,
sizeof
(
ir_mode
));
mode_Lu
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_Lu
,
0
,
sizeof
(
ir_mode
));
mode_C
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_C
,
0
,
sizeof
(
ir_mode
));
mode_b
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_b
,
0
,
sizeof
(
ir_mode
));
mode_P
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_P
,
0
,
sizeof
(
ir_mode
));
mode_X
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_X
,
0
,
sizeof
(
ir_mode
));
mode_M
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_M
,
0
,
sizeof
(
ir_mode
));
mode_BB
=
(
ir_mode
*
)
malloc
(
sizeof
(
ir_mode
));
memset
(
mode_BB
,
0
,
sizeof
(
ir_mode
));
mode_T
->
code
=
irm_T
;
mode_f
->
code
=
irm_f
;
mode_d
->
code
=
irm_d
;
mode_c
->
code
=
irm_c
;
mode_F
->
code
=
irm_F
;
mode_D
->
code
=
irm_D
;
mode_E
->
code
=
irm_E
;
mode_Bs
->
code
=
irm_Bs
;
mode_Bu
->
code
=
irm_Bu
;
mode_Hs
->
code
=
irm_Hs
;
mode_Hu
->
code
=
irm_Hu
;
mode_Is
->
code
=
irm_Is
;
mode_Iu
->
code
=
irm_Iu
;
mode_Ls
->
code
=
irm_Ls
;
mode_Lu
->
code
=
irm_Lu
;
mode_C
->
code
=
irm_C
;
mode_h
->
code
=
irm_h
;
mode_H
->
code
=
irm_H
;
mode_i
->
code
=
irm_i
;
mode_I
->
code
=
irm_I
;
mode_l
->
code
=
irm_l
;
mode_L
->
code
=
irm_L
;
mode_B
->
code
=
irm_B
;
mode_b
->
code
=
irm_b
;
mode_p
->
code
=
irm_p
;
mode_s
->
code
=
irm_s
;
mode_S
->
code
=
irm_S
;
mode_P
->
code
=
irm_P
;
mode_X
->
code
=
irm_X
;
mode_M
->
code
=
irm_M
;
mode_R
->
code
=
irm_R
;
mode_Z
->
code
=
irm_Z
;
mode_BB
->
code
=
irm_BB
;
/* initialize all modes */
...
...
@@ -114,103 +106,115 @@ init_mode (void)
mode_T
->
ffloat
=
0
;
/* float */
mode_
f
->
name
=
id_from_str
(
"
f
"
,
1
);
mode_
f
->
fsigned
=
1
;
mode_
f
->
ffloat
=
1
;
mode_
f
->
ld_align
=
4
;
mode_
f
->
size
=
4
;
mode_
F
->
name
=
id_from_str
(
"
F
"
,
1
);
mode_
F
->
fsigned
=
1
;
mode_
F
->
ffloat
=
1
;
mode_
F
->
ld_align
=
4
;
mode_
F
->
size
=
4
;
/* double */
mode_d
->
name
=
id_from_str
(
"d"
,
1
);
mode_d
->
fsigned
=
1
;
mode_d
->
ffloat
=
1
;
mode_d
->
ld_align
=
4
;
mode_d
->
size
=
8
;
/* signed char */
mode_c
->
name
=
id_from_str
(
"c"
,
1
);
mode_c
->
fsigned
=
1
;
mode_c
->
ffloat
=
0
;
mode_c
->
ld_align
=
1
;
mode_c
->
size
=
1
;
mode_c
->
min
=
tarval_from_long
(
mode_l
,
0xffffff80
);
mode_c
->
max
=
tarval_from_long
(
mode_l
,
0x0000007f
);
mode_c
->
null
=
tarval_from_long
(
mode_c
,
0
);
/* unsigned char */
mode_C
->
name
=
id_from_str
(
"C"
,
1
);
mode_C
->
fsigned
=
0
;
mode_C
->
ffloat
=
0
;
mode_C
->
ld_align
=
1
;
mode_C
->
size
=
1
;
mode_C
->
min
=
tarval_from_long
(
mode_L
,
0x00000000
);
mode_C
->
max
=
tarval_from_long
(
mode_L
,
0x000000ff
);
mode_C
->
null
=
tarval_from_long
(
mode_C
,
0
);
mode_D
->
name
=
id_from_str
(
"D"
,
1
);
mode_D
->
fsigned
=
1
;
mode_D
->
ffloat
=
1
;
mode_D
->
ld_align
=
4
;
mode_D
->
size
=
8
;
/* extended */
mode_E
->
name
=
id_from_str
(
"E"
,
1
);
mode_E
->
fsigned
=
1
;
mode_E
->
ffloat
=
1
;
mode_E
->
ld_align
=
4
;
mode_E
->
size
=
12
;
/* signed byte */
mode_Bs
->
name
=
id_from_str
(
"Bs"
,
1
);
mode_Bs
->
fsigned
=
1
;
mode_Bs
->
ffloat
=
0
;
mode_Bs
->
ld_align
=
1
;
mode_Bs
->
size
=
1
;
mode_Bs
->
min
=
tarval_from_long
(
mode_Ls
,
0xffffff80
);
mode_Bs
->
max
=
tarval_from_long
(
mode_Ls
,
0x0000007f
);
mode_Bs
->
null
=
tarval_from_long
(
mode_Bs
,
0
);
/* unsigned byte */
mode_Bu
->
name
=
id_from_str
(
"Bu"
,
1
);
mode_Bu
->
fsigned
=
0
;
mode_Bu
->
ffloat
=
0
;
mode_Bu
->
ld_align
=
1
;
mode_Bu
->
size
=
1
;
mode_Bu
->
min
=
tarval_from_long
(
mode_Lu
,
0x00000000
);
mode_Bu
->
max
=
tarval_from_long
(
mode_Lu
,
0x000000ff
);
mode_Bu
->
null
=
tarval_from_long
(
mode_Bu
,
0
);
/* signed short integer */
mode_
h
->
name
=
id_from_str
(
"
h
"
,
1
);
mode_
h
->
fsigned
=
1
;
mode_
h
->
ffloat
=
0
;
mode_
h
->
ld_align
=
2
;
mode_
h
->
size
=
2
;
mode_
h
->
min
=
tarval_from_long
(
mode_
l
,
0xffff8000
);
mode_
h
->
max
=
tarval_from_long
(
mode_
l
,
0x00007fff
);
mode_
h
->
null
=
tarval_from_long
(
mode_
h
,
0
);
/* unsig
e
ned short integer */
mode_H
->
name
=
id_from_str
(
"H"
,
1
);
mode_H
->
fsigned
=
0
;
mode_H
->
ffloat
=
0
;
mode_H
->
ld_align
=
2
;
mode_H
->
size
=
2
;
mode_H
->
min
=
tarval_from_long
(
mode_L
,
0x00000000
);
mode_H
->
max
=
tarval_from_long
(
mode_L
,
0x0000ffff
);
mode_H
->
null
=
tarval_from_long
(
mode_H
,
0
);
mode_
Hs
->
name
=
id_from_str
(
"
Hs
"
,
1
);
mode_
Hs
->
fsigned
=
1
;
mode_
Hs
->
ffloat
=
0
;
mode_
Hs
->
ld_align
=
2
;
mode_
Hs
->
size
=
2
;
mode_
Hs
->
min
=
tarval_from_long
(
mode_
Ls
,
0xffff8000
);
mode_
Hs
->
max
=
tarval_from_long
(
mode_
Ls
,
0x00007fff
);
mode_
Hs
->
null
=
tarval_from_long
(
mode_
Hs
,
0
);
/* unsigned short integer */
mode_H
u
->
name
=
id_from_str
(
"H
u
"
,
1
);
mode_H
u
->
fsigned
=
0
;
mode_H
u
->
ffloat
=
0
;
mode_H
u
->
ld_align
=
2
;
mode_H
u
->
size
=
2
;
mode_H
u
->
min
=
tarval_from_long
(
mode_L
u
,
0x00000000
);
mode_H
u
->
max
=
tarval_from_long
(
mode_L
u
,
0x0000ffff
);
mode_H
u
->
null
=
tarval_from_long
(
mode_H
u
,
0
);
/* signed integer */
mode_
i
->
name
=
id_from_str
(
"
i
"
,
1
);
mode_
i
->
fsigned
=
1
;
mode_
i
->
ffloat
=
0
;
mode_
i
->
ld_align
=
4
;
mode_
i
->
size
=
4
;
mode_
i
->
min
=
tarval_from_long
(
mode_
l
,
0x80000000
);
mode_
i
->
max
=
tarval_from_long
(
mode_
l
,
0x7fffffff
);
mode_
i
->
null
=
tarval_from_long
(
mode_
i
,
0
);
mode_
Is
->
name
=
id_from_str
(
"
Is
"
,
1
);
mode_
Is
->
fsigned
=
1
;
mode_
Is
->
ffloat
=
0
;
mode_
Is
->
ld_align
=
4
;
mode_
Is
->
size
=
4
;
mode_
Is
->
min
=
tarval_from_long
(
mode_
Ls
,
0x80000000
);
mode_
Is
->
max
=
tarval_from_long
(
mode_
Ls
,
0x7fffffff
);
mode_
Is
->
null
=
tarval_from_long
(
mode_
Is
,
0
);
/* unsigned integer */
mode_I
->
name
=
id_from_str
(
"I"
,
1
);
mode_I
->
fsigned
=
0
;
mode_I
->
ffloat
=
0
;
mode_I
->
ld_align
=
4
;
mode_I
->
size
=
4
;
mode_I
->
min
=
tarval_from_long
(
mode_L
,
0x00000000
);
mode_I
->
max
=
tarval_from_long
(
mode_L
,
0xffffffff
);
mode_I
->
null
=
tarval_from_long
(
mode_I
,
0
);
mode_I
u
->
name
=
id_from_str
(
"I
u
"
,
1
);
mode_I
u
->
fsigned
=
0
;
mode_I
u
->
ffloat
=
0
;
mode_I
u
->
ld_align
=
4
;
mode_I
u
->
size
=
4
;
mode_I
u
->
min
=
tarval_from_long
(
mode_L
u
,
0x00000000
);
mode_I
u
->
max
=
tarval_from_long
(
mode_L
u
,
0xffffffff
);
mode_I
u
->
null
=
tarval_from_long
(
mode_I
u
,
0
);
/* signed long integer */
mode_
l
->
name
=
id_from_str
(
"
l
"
,
1
);
mode_
l
->
fsigned
=
1
;
mode_
l
->
ffloat
=
0
;
mode_
l
->
ld_align
=
4
;
mode_
l
->
size
=
4
;
mode_
l
->
min
=
tarval_from_long
(
mode_
l
,
0x80000000
);
mode_
l
->
max
=
tarval_from_long
(
mode_
l
,
0x7fffffff
);
mode_
I
->
null
=
tarval_from_long
(
mode_
l
,
0
);
mode_
Ls
->
name
=
id_from_str
(
"
Ls
"
,
1
);
mode_
Ls
->
fsigned
=
1
;
mode_
Ls
->
ffloat
=
0
;
mode_
Ls
->
ld_align
=
8
;
mode_
Ls
->
size
=
8
;
mode_
Ls
->
min
=
tarval_from_long
(
mode_
Ls
,
0x80000000
);
mode_
Ls
->
max
=
tarval_from_long
(
mode_
Ls
,
0x7fffffff
);
mode_
Ls
->
null
=
tarval_from_long
(
mode_
Ls
,
0
);
/* unsigned long integer */
mode_L
->
name
=
id_from_str
(
"L"
,
1
);
mode_L
->
fsigned
=
0
;
mode_L
->
ffloat
=
0
;
mode_L
->
ld_align
=
4
;
mode_L
->
size
=
4
;
mode_L
->
min
=
tarval_from_long
(
mode_L
,
0x00000000
);
mode_L
->
max
=
tarval_from_long
(
mode_L
,
0xffffffff
);
mode_L
->
null
=
tarval_from_long
(
mode_L
,
0
);
/* universal bits */
mode_B
->
name
=
id_from_str
(
"B"
,
1
);
mode_B
->
fsigned
=
0
;
mode_B
->
ffloat
=
0
;
mode_Lu
->
name
=
id_from_str
(
"Lu"
,
1
);
mode_Lu
->
fsigned
=
0
;
mode_Lu
->
ffloat
=
0
;
mode_Lu
->
ld_align
=
8
;
mode_Lu
->
size
=
8
;
mode_Lu
->
min
=
tarval_from_long
(
mode_Lu
,
0x00000000
);
mode_Lu
->
max
=
tarval_from_long
(
mode_Lu
,
0xffffffff
);
mode_Lu
->
null
=
tarval_from_long
(
mode_Lu
,
0
);
/* character */
mode_C
->
name
=
id_from_str
(
"C"
,
1
);
mode_C
->
fsigned
=
0
;
mode_C
->
ffloat
=
0
;
mode_C
->
ld_align
=
1
;
mode_C
->
size
=
1
;
mode_C
->
min
=
tarval_from_long
(
mode_Ls
,
0xffffff80
);
mode_C
->
max
=
tarval_from_long
(
mode_Ls
,
0x0000007f
);
mode_C
->
null
=
tarval_from_long
(
mode_C
,
0
);
/* boolean */
mode_b
->
name
=
id_from_str
(
"b"
,
1
);
...
...
@@ -218,22 +222,14 @@ init_mode (void)
mode_b
->
ffloat
=
0
;
/* pointer */
mode_p
->
name
=
id_from_str
(
"p"
,
1
);
mode_p
->
fsigned
=
0
;
mode_p
->
ffloat
=
0
;
mode_p
->
ld_align
=
4
;
mode_p
->
size
=
4
;
mode_p
->
min
=
tarval_from_long
(
mode_L
,
0x00000000
);
mode_p
->
max
=
tarval_from_long
(
mode_L
,
0xffffffff
);
mode_p
->
null
=
tarval_from_long
(
mode_p
,
0
);
mode_s
->
name
=
id_from_str
(
"s"
,
1
);
mode_s
->
fsigned
=
0
;
mode_s
->
ffloat
=
0
;
mode_S
->
name
=
id_from_str
(
"S"
,
1
);
mode_S
->
fsigned
=
0
;
mode_S
->
ffloat
=
0
;
mode_P
->
name
=
id_from_str
(
"P"
,
1
);
mode_P
->
fsigned
=
0
;
mode_P
->
ffloat
=
0
;
mode_P
->
ld_align
=
4
;
mode_P
->
size
=
4
;
mode_P
->
min
=
tarval_from_long
(
mode_Lu
,
0x00000000
);
mode_P
->
max
=
tarval_from_long
(
mode_Lu
,
0xffffffff
);
mode_P
->
null
=
tarval_from_long
(
mode_P
,
0
);
/* Execution */
mode_X
->
name
=
id_from_str
(
"X"
,
1
);
...
...
@@ -245,13 +241,9 @@ init_mode (void)
mode_M
->
fsigned
=
0
;
mode_M
->
ffloat
=
0
;
mode_R
->
name
=
id_from_str
(
"R"
,
1
);
mode_R
->
fsigned
=
0
;
mode_R
->
ffloat
=
0
;
mode_Z
->
name
=
id_from_str
(
"Z"
,
1
);
mode_Z
->
fsigned
=
1
;
mode_Z
->
ffloat
=
0
;
mode_BB
->
name
=
id_from_str
(
"BB"
,
1
);
mode_BB
->
fsigned
=
0
;
mode_BB
->
ffloat
=
0
;
}
/* Functions for the direct access to all attributes od a ir_mode */
...
...
@@ -394,34 +386,34 @@ set_mode_ffloat (ir_mode *mode, unsigned ffloat)
The set of "float" is defined as:
---------------------------------
float = {irm_
f
, irm_
d
}
float = {irm_
F, irm_D
, irm_
E
}
The set of "int" is defined as:
-------------------------------
int = {irm_
c
, irm_
C
, irm_
h
, irm_H, irm_
i
, irm_I, irm_
l
, irm_L}
int = {irm_
Bs
, irm_
Bu
, irm_
Hs
, irm_H
u
, irm_
Is
, irm_I
u
, irm_
Ls
, irm_L
u
}
The set of "num" is defined as:
-------------------------------
num = {irm_
f
, irm_
d
, irm_
c
, irm_
C
, irm_
h
, irm_H,
irm_
i
, irm_I, irm_
l
, irm_L}
num = {irm_
F, irm_D
, irm_
E
, irm_
Bs
, irm_
Bu
, irm_
Hs
, irm_H
u
,
irm_
Is
, irm_I
u
, irm_
Ls
, irm_L
u
}
= {float || int}
The set of "data" is defined as:
-------------------------------
data = {irm_
f
, irm_
d
, irm_
c
, irm_
C
, irm_
h
, irm_H,
irm_
i
, irm_I, irm_
l
, irm_L, irm_p}
= {num || irm_
p
}
data = {irm_
F
, irm_
D
, irm_
E irm_Bs
, irm_
Bu
, irm_
Hs
, irm_H
u
,
irm_
Is
, irm_I
u
, irm_
Ls
, irm_L
u, irm_C
, irm_p}
= {num || irm_
C || irm_P
}
The set of "datab" is defined as:
---------------------------------
datab = {irm_
f
, irm_
d
, irm_
c
, irm_
C
, irm_
h
, irm_H,
irm_
i
, irm_I, irm_
l
, irm_L, irm_
p
, irm_
b
, irm_
B
}
= {data || irm_b
|| irm_B
}
datab = {irm_
F, irm_D
, irm_
E
, irm_
Bs
, irm_
Bu
, irm_
Hs
, irm_H
u
,
irm_
Is
, irm_I
u
, irm_
Ls
, irm_L
u
, irm_
C
, irm_
P
, irm_
b
}
= {data || irm_b }
The set of "dataM" is defined as:
---------------------------------
dataM = {irm_
f
, irm_
d
, irm_
c
, irm_
C
, irm_
h
, irm_H, irm_
i
,
irm_I, irm_
l
, irm_L, irm_
p
, irm_M}
dataM = {irm_
F
, irm_
D
, irm_
E
, irm_
Bs
, irm_
Bu
, irm_H
s
, irm_
Hu
,
irm_I
s
, irm_
Iu, irm_Ls
, irm_L
u
, irm_
P
, irm_M}
= {data || irm_M}
*/
...
...
@@ -462,7 +454,7 @@ mode_is_int (ir_mode *mode)