# comment: OPTIONAL comment for the node constructor
#
# register types:
-# 0 - no special type
-# 1 - ignore (do not assign this register)
-# 2 - the register is a virtual one
-# 4 - register represents a state
+# none - no special type
+# ignore - ignore (do not assign this register)
+# virtual - the register is a virtual one
+# state - register represents a state
# NOTE: Last entry of each class is the largest Firm-Mode a register can hold
%reg_classes = (
gp => [
{ name => "r11" },
{ name => "r12" },
{ name => "r13" },
- { name => "sp", realname => "r14", type => 1 }, # stackpointer
- { name => "bp", realname => "r15", type => 1 }, # basepointer
+ { name => "sp", realname => "r14", type => "ignore" }, # stackpointer
+ { name => "bp", realname => "r15", type => "ignore" }, # basepointer
{ mode => $mode_gp }
],
fp => [
{ name => "rdi", dwarf => 5 },
{ name => "rbx", dwarf => 3 },
{ name => "rbp", dwarf => 6 },
- { name => "rsp", dwarf => 7, type => $ignore }, # stackpointer?
+ { name => "rsp", dwarf => 7, type => "ignore" }, # stackpointer
{ name => "r8", dwarf => 8 },
{ name => "r9", dwarf => 9 },
{ name => "r10", dwarf => 10 },
{ name => "r13", dwarf => 13 },
{ name => "r14", dwarf => 14 },
{ name => "r15", dwarf => 15 },
-# { name => "gp_NOREG", type => $ignore }, # we need a dummy register for NoReg nodes
+# { name => "gp_NOREG", type => "ignore" }, # we need a dummy register for NoReg nodes
{ mode => "mode_Lu" }
],
# fp => [
$mode_flags = "mode_Iu";
$mode_fpcw = "ia32_mode_fpcw";
-# register types:
-$normal = 0; # no special type
-$ignore = 1; # ignore (do not assign this register)
-$virtual = 2; # the register is a virtual one
-$state = 4; # register represents a state
-# NOTE: Last entry of each class is the largest Firm-Mode a register can hold
%reg_classes = (
gp => [
{ name => "edx", dwarf => 2 },
{ name => "esi", dwarf => 6 },
{ name => "edi", dwarf => 7 },
{ name => "ebp", dwarf => 5 },
- { name => "esp", dwarf => 4, type => $ignore },
- { name => "gp_NOREG", type => $ignore | $virtual }, # we need a dummy register for NoReg nodes
+ { name => "esp", dwarf => 4, type => "ignore" },
+ { name => "gp_NOREG", type => "ignore | virtual" }, # we need a dummy register for NoReg nodes
{ mode => $mode_gp }
],
mmx => [
- { name => "mm0", dwarf => 29, type => $ignore },
- { name => "mm1", dwarf => 30, type => $ignore },
- { name => "mm2", dwarf => 31, type => $ignore },
- { name => "mm3", dwarf => 32, type => $ignore },
- { name => "mm4", dwarf => 33, type => $ignore },
- { name => "mm5", dwarf => 34, type => $ignore },
- { name => "mm6", dwarf => 35, type => $ignore },
- { name => "mm7", dwarf => 36, type => $ignore },
+ { name => "mm0", dwarf => 29, type => "ignore" },
+ { name => "mm1", dwarf => 30, type => "ignore" },
+ { name => "mm2", dwarf => 31, type => "ignore" },
+ { name => "mm3", dwarf => 32, type => "ignore" },
+ { name => "mm4", dwarf => 33, type => "ignore" },
+ { name => "mm5", dwarf => 34, type => "ignore" },
+ { name => "mm6", dwarf => 35, type => "ignore" },
+ { name => "mm7", dwarf => 36, type => "ignore" },
{ mode => $mode_mmx, flags => "manual_ra" }
],
xmm => [
{ name => "xmm5", dwarf => 26 },
{ name => "xmm6", dwarf => 27 },
{ name => "xmm7", dwarf => 28 },
- { name => "xmm_NOREG", type => $ignore | $virtual }, # we need a dummy register for NoReg nodes
+ { name => "xmm_NOREG", type => "ignore | virtual" }, # we need a dummy register for NoReg nodes
{ mode => $mode_xmm }
],
fp => [
{ name => "st5", realname => "st(5)", dwarf => 16 },
{ name => "st6", realname => "st(6)", dwarf => 17 },
{ name => "st7", realname => "st(7)", dwarf => 18 },
- { name => "fp_NOREG", type => $ignore | $virtual }, # we need a dummy register for NoReg nodes
+ { name => "fp_NOREG", type => "ignore | virtual" }, # we need a dummy register for NoReg nodes
{ mode => $mode_fp87 }
],
fp_cw => [ # the floating point control word
- { name => "fpcw", dwarf => 37, type => $ignore | $state },
- { mode => $mode_fpcw, flags => "manual_ra|state" }
+ { name => "fpcw", dwarf => 37, type => "ignore | state" },
+ { mode => $mode_fpcw, flags => "manual_ra | state" }
],
flags => [
- { name => "eflags", dwarf => 9, type => 0 },
+ { name => "eflags", dwarf => 9 },
{ mode => "mode_Iu", flags => "manual_ra" }
],
); # %reg_classes