[runtime] Fix DISABLE_REFLECTION_EMIT build.
[mono.git] / mono / cil / make-opcode-def.xsl
1 <?xml version="1.0" encoding="iso-8859-1"?>\r
2 \r
3 \r
4 <!--\r
5  | make-opcode-def.xsl: Translates opcodes from the CIL-opcodes.xml into\r
6  |                      a spec compliant opcodes.def file\r
7  |                      Converted to XSLT from make-opcodes-def.pl\r
8  |\r
9  | See: Common Language Infrastructure (CLI) Part 5: Annexes\r
10  |\r
11  | Author: Sergey Chaban\r
12  |\r
13  | $Id$\r
14   -->\r
15 \r
16 \r
17 \r
18 <xsl:stylesheet version="1.0"\r
19                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\r
20 \r
21 \r
22 \r
23 <xsl:output method="text"/>\r
24 \r
25 \r
26 <xsl:template match="/">\r
27   <xsl:apply-templates/>\r
28   <xsl:call-template name="print-trailer"/>\r
29 </xsl:template>\r
30 \r
31 <xsl:template name="to-upper">\r
32   <xsl:param name="string"/>\r
33   <xsl:value-of select="translate($string,\r
34                         'abcdefghijklmnopqrstuvwxyz.-',\r
35                         'ABCDEFGHIJKLMNOPQRSTUVWXYZ__')"/>\r
36 </xsl:template>\r
37 \r
38 \r
39 <xsl:template name="get-flow">\r
40   <xsl:param name="flow" select="@flow"/>\r
41   <xsl:choose>\r
42     <xsl:when\r
43          test="contains('next call return branch meta cond-branch',$flow)">\r
44       <xsl:call-template name="to-upper">\r
45         <xsl:with-param name="string" select="$flow"/>\r
46       </xsl:call-template>\r
47     </xsl:when>\r
48     <xsl:otherwise><xsl:value-of select="'ERROR'"/></xsl:otherwise>\r
49   </xsl:choose>     \r
50 </xsl:template>\r
51 \r
52 \r
53 <xsl:template match="opdesc/opcode">\r
54   <xsl:variable name="uname">\r
55     <xsl:call-template name="to-upper">\r
56       <xsl:with-param name="string" select="@name"/>\r
57     </xsl:call-template>\r
58   </xsl:variable>\r
59   <xsl:variable name="o1">\r
60     <xsl:call-template name="to-upper">\r
61       <xsl:with-param name="string" select="@o1"/>\r
62     </xsl:call-template>\r
63   </xsl:variable>\r
64   <xsl:variable name="f">\r
65     <xsl:call-template name="get-flow"/>\r
66   </xsl:variable>\r
67   <xsl:variable name="count"\r
68        select="number(not(contains($o1,'FF')))+1"/>OPDEF(CEE_<xsl:value-of\r
69                select="concat($uname,', &#x22;',@name,'&#x22;, ',\r
70                               @input,', ',@output,', ',@args,', X, ',\r
71                               $count,', ',@o1,', ',@o2,', ',$f\r
72                        )"/>)\r
73 </xsl:template>\r
74 \r
75 \r
76 <xsl:template name="print-trailer">\r
77 #ifndef OPALIAS\r
78 #define _MONO_CIL_OPALIAS_DEFINED_\r
79 #define OPALIAS(a,s,r)\r
80 #endif\r
81 \r
82 OPALIAS(CEE_BRNULL,     "brnull",    CEE_BRFALSE)\r
83 OPALIAS(CEE_BRNULL_S,   "brnull.s",  CEE_BRFALSE_S)\r
84 OPALIAS(CEE_BRZERO,     "brzero",    CEE_BRFALSE)\r
85 OPALIAS(CEE_BRZERO_S,   "brzero.s",  CEE_BRFALSE_S)\r
86 OPALIAS(CEE_BRINST,     "brinst",    CEE_BRTRUE)\r
87 OPALIAS(CEE_BRINST_S,   "brinst.s",  CEE_BRTRUE_S)\r
88 OPALIAS(CEE_LDIND_U8,   "ldind.u8",  CEE_LDIND_I8)\r
89 OPALIAS(CEE_LDELEM_U8,  "ldelem.u8", CEE_LDELEM_I8)\r
90 OPALIAS(CEE_LDX_I4_MIX, "ldc.i4.M1", CEE_LDC_I4_M1)\r
91 OPALIAS(CEE_ENDFAULT,   "endfault",  CEE_ENDFINALLY)\r
92 \r
93 #ifdef _MONO_CIL_OPALIAS_DEFINED_\r
94 #undef OPALIAS\r
95 #undef _MONO_CIL_OPALIAS_DEFINED_\r
96 #endif\r
97 </xsl:template>\r
98 \r
99 \r
100 </xsl:stylesheet>\r