[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] libjit ./ChangeLog tools/gen-rules-scanner.l to...
From: |
Aleksey Demakov |
Subject: |
[dotgnu-pnet-commits] libjit ./ChangeLog tools/gen-rules-scanner.l to... |
Date: |
Mon, 03 Apr 2006 05:10:35 +0000 |
CVSROOT: /sources/dotgnu-pnet
Module name: libjit
Branch:
Changes by: Aleksey Demakov <address@hidden> 06/04/03 05:10:35
Modified files:
. : ChangeLog
tools : gen-rules-scanner.l gen-rules-parser.y
Log message:
Add `reversible', `x87arith', `copy' keywords and fix bugs.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/ChangeLog.diff?tr1=1.210&tr2=1.211&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/tools/gen-rules-scanner.l.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/tools/gen-rules-parser.y.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: libjit/ChangeLog
diff -u libjit/ChangeLog:1.210 libjit/ChangeLog:1.211
--- libjit/ChangeLog:1.210 Thu Mar 23 18:56:52 2006
+++ libjit/ChangeLog Mon Apr 3 05:10:35 2006
@@ -1,3 +1,9 @@
+2006-04-03 Aleksey Demakov <address@hidden>
+
+ * tools/gen-rules-scanner.l:
+ * tools/gen-rules-parser.y: add `reversible', `x87arith',
+ and `copy' keywords. Fix bugs.
+
2006-03-23 Klaus Treichel <address@hidden>
* jit/jitc-except.c: Walk the stack to build the stack trace in
Index: libjit/tools/gen-rules-parser.y
diff -u libjit/tools/gen-rules-parser.y:1.1 libjit/tools/gen-rules-parser.y:1.2
--- libjit/tools/gen-rules-parser.y:1.1 Wed Mar 22 18:48:02 2006
+++ libjit/tools/gen-rules-parser.y Mon Apr 3 05:10:35 2006
@@ -114,11 +114,14 @@
#define GENSEL_OPT_TERNARY 7
#define GENSEL_OPT_STACK 8
#define GENSEL_OPT_ONLY 9
-#define GENSEL_OPT_COMMUTATIVE 10
-
-#define GENSEL_OPT_MANUAL 11
-#define GENSEL_OPT_MORE_SPACE 12
-#define GENSEL_OPT_SPILL_BEFORE 13
+#define GENSEL_OPT_COPY 10
+#define GENSEL_OPT_X87ARITH 11
+#define GENSEL_OPT_COMMUTATIVE 12
+#define GENSEL_OPT_REVERSIBLE 13
+
+#define GENSEL_OPT_MANUAL 14
+#define GENSEL_OPT_MORE_SPACE 15
+#define GENSEL_OPT_SPILL_BEFORE 16
/*
* Pattern values.
@@ -840,7 +843,8 @@
}
printf("_JIT_REGS_TERNARY");
}
- if(gensel_search_option(options, GENSEL_OPT_COMMUTATIVE))
+ if(gensel_search_option(options, GENSEL_OPT_BINARY_BRANCH)
+ || gensel_search_option(options, GENSEL_OPT_UNARY_BRANCH))
{
if(seen_option)
{
@@ -850,7 +854,19 @@
{
seen_option = 1;
}
- printf("_JIT_REGS_COMMUTATIVE");
+ printf("_JIT_REGS_BRANCH");
+ }
+ if(gensel_search_option(options, GENSEL_OPT_COPY))
+ {
+ if(seen_option)
+ {
+ printf(" | ");
+ }
+ else
+ {
+ seen_option = 1;
+ }
+ printf("_JIT_REGS_COPY");
}
if(gensel_search_option(options, GENSEL_OPT_STACK))
{
@@ -864,8 +880,7 @@
}
printf("_JIT_REGS_STACK");
}
-/*
- if(gensel_search_option(options, GENSEL_OPT_))
+ if(gensel_search_option(options, GENSEL_OPT_X87ARITH))
{
if(seen_option)
{
@@ -875,15 +890,47 @@
{
seen_option = 1;
}
- printf("_JIT_REGS_");
+ printf("_JIT_REGS_X87_ARITH");
+ }
+ if(gensel_search_option(options, GENSEL_OPT_COMMUTATIVE))
+ {
+ if(seen_option)
+ {
+ printf(" | ");
+ }
+ else
+ {
+ seen_option = 1;
+ }
+ printf("_JIT_REGS_COMMUTATIVE");
+ }
+ if(gensel_search_option(options, GENSEL_OPT_REVERSIBLE))
+ {
+ if(seen_option)
+ {
+ printf(" | ");
+ }
+ else
+ {
+ seen_option = 1;
+ }
+ printf("_JIT_REGS_REVERSIBLE");
}
-*/
if(!seen_option)
{
printf("0");
}
printf(");\n");
+ if(!(gensel_search_option(options, GENSEL_OPT_TERNARY)
+ || gensel_search_option(options, GENSEL_OPT_BINARY_NOTE)
+ || gensel_search_option(options, GENSEL_OPT_BINARY_BRANCH)
+ || gensel_search_option(options, GENSEL_OPT_UNARY_NOTE)
+ || gensel_search_option(options, GENSEL_OPT_UNARY_BRANCH)))
+ {
+ printf("\t\t_jit_regs_set_dest(®s, insn, 0, -1,
-1);\n");
+ }
+
regs = 0;
index = 0;
pattern = clause->pattern;
@@ -898,12 +945,12 @@
printf("\t\t%s =
_jit_regs_lookup(\"%s\")];\n",
gensel_reg_names[regs],
pattern->values->value);
- printf("\t\t_jit_regs_set_%s(®s,
insn, %s, -1);\n",
+ printf("\t\t_jit_regs_set_%s(®s,
insn, 0, %s, -1);\n",
args[index],
gensel_reg_names[regs]);
}
else
{
- printf("\t\t_jit_regs_set_%s(®s,
insn, -1, -1);\n",
+ printf("\t\t_jit_regs_set_%s(®s,
insn, 0, -1, -1);\n",
args[index]);
}
++regs;
@@ -922,7 +969,7 @@
printf("\t\t%s =
_jit_regs_lookup(\"%s\")];\n",
gensel_other_reg_names[regs],
pattern->values->next->value);
-
printf("\t\t_jit_regs_set_%s(®s, insn, %s, %s);\n",
+
printf("\t\t_jit_regs_set_%s(®s, insn, 0, %s, %s);\n",
args[index],
gensel_reg_names[regs],
gensel_other_reg_names[regs]);
@@ -932,13 +979,13 @@
printf("\t\t%s =
_jit_regs_lookup(\"%s\")];\n",
gensel_reg_names[regs],
pattern->values->value);
-
printf("\t\t_jit_regs_set_%s(®s, insn, %s, -1);\n",
+
printf("\t\t_jit_regs_set_%s(®s, insn, 0, %s, -1);\n",
args[index],
gensel_reg_names[regs]);
}
}
else
{
- printf("\t\t_jit_regs_set_%s(®s,
insn, -1, -1);\n",
+ printf("\t\t_jit_regs_set_%s(®s,
insn, 0, -1, -1);\n",
args[index]);
}
++regs;
@@ -1013,16 +1060,16 @@
{
case GENSEL_PATT_REG:
case GENSEL_PATT_FREG:
- printf("\t\t%s =
_jit_reg_info[_jit_regs_%s(regs)].cpu_reg;\n",
+ printf("\t\t%s =
_jit_reg_info[_jit_regs_%s(®s)].cpu_reg;\n",
gensel_reg_names[regs], args[index]);
++regs;
++index;
break;
case GENSEL_PATT_LREG:
- printf("\t\t%s =
_jit_reg_info[_jit_regs_%s(regs)].cpu_reg;\n",
+ printf("\t\t%s =
_jit_reg_info[_jit_regs_%s(®s)].cpu_reg;\n",
gensel_reg_names[regs], args[index]);
- printf("\t\t%s =
_jit_reg_info[_jit_regs_%s_other(regs)].cpu_reg;\n",
+ printf("\t\t%s =
_jit_reg_info[_jit_regs_%s_other(®s)].cpu_reg;\n",
gensel_other_reg_names[regs],
args[index]);
++regs;
++index;
@@ -1202,7 +1249,10 @@
%token K_TERNARY "`ternary'"
%token K_STACK "`stack'"
%token K_ONLY "`only'"
+%token K_COPY "`copy'"
+%token K_X87ARITH "`x87arith'"
%token K_COMMUTATIVE "`commutative'"
+%token K_REVERSIBLE "`reversible'"
%token K_IF "`if'"
%token K_CLOBBER "`clobber'"
%token K_SCRATCH "`scratch'"
@@ -1443,7 +1493,10 @@
| K_TERNARY { $$ = GENSEL_OPT_TERNARY; }
| K_STACK { $$ = GENSEL_OPT_STACK; }
| K_ONLY { $$ = GENSEL_OPT_ONLY; }
+ | K_COPY { $$ = GENSEL_OPT_COPY; }
+ | K_X87ARITH { $$ = GENSEL_OPT_X87ARITH; }
| K_COMMUTATIVE { $$ = GENSEL_OPT_COMMUTATIVE; }
+ | K_REVERSIBLE { $$ = GENSEL_OPT_REVERSIBLE; }
/* deprecated: */
| K_MANUAL { $$ = GENSEL_OPT_MANUAL; }
Index: libjit/tools/gen-rules-scanner.l
diff -u libjit/tools/gen-rules-scanner.l:1.1
libjit/tools/gen-rules-scanner.l:1.2
--- libjit/tools/gen-rules-scanner.l:1.1 Wed Mar 22 18:48:02 2006
+++ libjit/tools/gen-rules-scanner.l Mon Apr 3 05:10:35 2006
@@ -102,7 +102,10 @@
"ternary" { RETURNTOK(K_TERNARY); }
"stack" { RETURNTOK(K_STACK); }
"only" { RETURNTOK(K_ONLY); }
+"copy" { RETURNTOK(K_COPY); }
+"x87arith" { RETURNTOK(K_X87ARITH); }
"commutative" { RETURNTOK(K_COMMUTATIVE); }
+"reversible" { RETURNTOK(K_REVERSIBLE); }
"if" { RETURNTOK(K_IF); }
"clobber" { RETURNTOK(K_CLOBBER); }
"scratch" { RETURNTOK(K_SCRATCH); }
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] libjit ./ChangeLog tools/gen-rules-scanner.l to...,
Aleksey Demakov <=