summaryrefslogtreecommitdiff
path: root/cuobjdump_to_ptxplus/sass.l
diff options
context:
space:
mode:
authorJimmy Kwa <[email protected]>2012-09-06 13:53:41 -0800
committerAndrew Boktor <[email protected]>2014-08-14 13:48:55 -0700
commit46045592211f1999983755726263c60267f8ef2f (patch)
treedd85fc576f40a731b32b76d84b8dcc264a628871 /cuobjdump_to_ptxplus/sass.l
parent99ff7de8db264b902f0eaa5828c0a508e3986b56 (diff)
Several changes to ptxplus towards getting the sphyraena benchmark to work. Add .false modifier to cuobjdump_to_ptxplus. It isn't supported in gpgpusim yet since we don't know what it does. Fixed most of the issues with global (const14) variable not being declared properly. Added "BRX" instruction to cuobjdump_to_ptxplus and some support for it in gpgpusim. There are other issues with it that still need to be worked out. Added support for translating IADD.CARRY sass instruction into ptxplus addp instructions. Fixed a bug with generating ".half" modifiers on instructions so the ptxplus instruction addresses should match sass addresses now. Separated ssy instructions from nop. However, they are still simulated as nop in gpgpusim. Sometime cuobjdump generate a blank link that takes up an address slot. This was changed to a nop.
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 14001]
Diffstat (limited to 'cuobjdump_to_ptxplus/sass.l')
-rw-r--r--cuobjdump_to_ptxplus/sass.l5
1 files changed, 4 insertions, 1 deletions
diff --git a/cuobjdump_to_ptxplus/sass.l b/cuobjdump_to_ptxplus/sass.l
index b5b0532..22d9e2f 100644
--- a/cuobjdump_to_ptxplus/sass.l
+++ b/cuobjdump_to_ptxplus/sass.l
@@ -80,6 +80,7 @@ fltliteral [0-9]+\.[0-9]+
"BAR.ARV.WAIT b0, 0xfff" yylval.string_value = strdup(yytext); return BAR;
ADA yylval.string_value = strdup(yytext); return ADA;
BRA yylval.string_value = strdup(yytext); return BRA;
+BRX yylval.string_value = strdup(yytext); return BRX;
CAL yylval.string_value = strdup(yytext); return CAL;
COS yylval.string_value = strdup(yytext); return COS;
DADD yylval.string_value = strdup(yytext); return DADD;
@@ -122,11 +123,12 @@ IMAD32I yylval.string_value = strdup(yytext); return IMAD32I;
IMUL yylval.string_value = strdup(yytext); return IMUL;
IMUL\.U24\.U24 yylval.string_value = strdup(yytext); return IMUL24;
IMUL\.S24\.S24 yylval.string_value = strdup(yytext); return IMULS24;
+IMUL\.HI\.U24\.U24 yylval.string_value = strdup(yytext); return IMUL24H;
IMUL32 yylval.string_value = strdup(yytext); return IMUL32;
IMUL32\.S24\.S24 yylval.string_value = strdup(yytext); return IMUL32S24;
IMUL32\.U24\.U24 yylval.string_value = strdup(yytext); return IMUL32U24;
-IMUL32I\.S24\.S24 yylval.string_value = strdup(yytext); return IMUL32IS24;
IMUL32I yylval.string_value = strdup(yytext); return IMUL32I;
+IMUL32I\.S24\.S24 yylval.string_value = strdup(yytext); return IMUL32IS24;
IMUL32I\.U24\.U24 yylval.string_value = strdup(yytext); return IMUL32I24;
ISET yylval.string_value = strdup(yytext); return ISET;
LG2 yylval.string_value = strdup(yytext); return LG2;
@@ -207,6 +209,7 @@ NEU yylval.string_value = strdup(yytext); return NEU;
/* comparison operators */
\.EQ yylval.string_value = strdup(yytext); return DOTEQ;
\.EQU yylval.string_value = strdup(yytext); return DOTEQU;
+\.FALSE yylval.string_value = strdup(yytext); return DOTFALSE;
\.GE yylval.string_value = strdup(yytext); return DOTGE;
\.GEU yylval.string_value = strdup(yytext); return DOTGEU;
\.GT yylval.string_value = strdup(yytext); return DOTGT;