1 <?xml version="1.0" encoding="iso-8859-1"?>
\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
9 | See: Common Language Infrastructure (CLI) Part 5: Annexes
\r
11 | Author: Sergey Chaban
\r
13 | $Id: make-opcode-def.xsl,v 1.1 2001/07/13 01:04:23 miguel Exp $
\r
18 <xsl:stylesheet version="1.0"
\r
19 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
\r
23 <xsl:output method="text"/>
\r
26 <xsl:template match="/">
\r
27 <xsl:apply-templates/>
\r
28 <xsl:call-template name="print-trailer"/>
\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
39 <xsl:template name="get-flow">
\r
40 <xsl:param name="flow" select="@flow"/>
\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
48 <xsl:otherwise><xsl:value-of select="'ERROR'"/></xsl:otherwise>
\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
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
64 <xsl:variable name="f">
\r
65 <xsl:call-template name="get-flow"/>
\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,', "',@name,'", ',
\r
70 @input,', ',@output,', ',@args,', X, ',
\r
71 $count,', ',@o1,', ',@o2,', ',$f
\r
76 <xsl:template name="print-trailer">
\r
78 #define _MONO_CIL_OPALIAS_DEFINED_
\r
79 #define OPALIAS(a,s,r)
\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
93 #ifdef _MONO_CIL_OPALIAS_DEFINED_
\r
95 #undef _MONO_CIL_OPALIAS_DEFINED_
\r