\expandafter\def\csname #1LINK\endcsname{\index{#2}\hyperlink{chap:#1}{#2}}
\expandafter\def\csname #1TARG\endcsname{\index{#2}\hypertarget{chap:#1}{#2}}
\expandafter\def\csname #1INDX\endcsname{\index{#2}#2}
+ \expandafter\def\csname #1MARK\endcsname{\hypertarget{chap:#1}{}}
\expandafter\def\csname #1NAME\endcsname{#2}
% The normal, most common use in running text...
\expandafter\def\csname #1\endcsname{\csname #1LINK\endcsname}
}
+
+% DW_ACCESS
+%
+\newdwfnamecommands{DWACCESSprivate}{DW\_ACCESS\_private}
+\newdwfnamecommands{DWACCESSprotected}{DW\_ACCESS\_protected}
+\newdwfnamecommands{DWACCESSpublic}{DW\_ACCESS\_public}
+%
+% DW_ADDR
+%
+\newdwfnamecommands{DWADDRnone}{DW\_ADDR\_none}
+%
% DW_AT
%
+\newdwfnamecommands{DWATabstractorigin}{DW\_AT\_abstract\_origin}
+\newdwfnamecommands{DWATaccessibility}{DW\_AT\_accessibility}
+\newdwfnamecommands{DWATaddressclass}{DW\_AT\_address\_class}
+\newdwfnamecommands{DWATallocated}{DW\_AT\_allocated}
+\newdwfnamecommands{DWATartificial}{DW\_AT\_artificial}
+\newdwfnamecommands{DWATassociated}{DW\_AT\_associated}
+%
+\newdwfnamecommands{DWATbasetypes}{DW\_AT\_base\_types}
+\newdwfnamecommands{DWATbinaryscale}{DW\_AT\_binary\_scale}
+\newdwfnamecommands{DWATbitoffset}{DW\_AT\_bit\_offset}
\newdwfnamecommands{DWATbitsize}{DW\_AT\_bit\_size}
+\newdwfnamecommands{DWATbitstride}{DW\_AT\_bit\_stride}
+\newdwfnamecommands{DWATbyteoffset}{DW\_AT\_byte\_offset}
\newdwfnamecommands{DWATbytesize}{DW\_AT\_byte\_size}
\newdwfnamecommands{DWATbytestride}{DW\_AT\_byte\_stride}
+%
+\newdwfnamecommands{DWATcallcolumn}{DW\_AT\_call\_column}
+\newdwfnamecommands{DWATcallfile}{DW\_AT\_call\_file}
+\newdwfnamecommands{DWATcallline}{DW\_AT\_call\_line}
+\newdwfnamecommands{DWATcallingconvention}{DW\_AT\_calling\_convention}
+\newdwfnamecommands{DWATcommonreference}{DW\_at\_common\_reference}
+\newdwfnamecommands{DWATcompdir}{DW\_AT\_omp\_dir}
+\newdwfnamecommands{DWATconstexpr}{DW\_AT\_const\_expr}
+\newdwfnamecommands{DWATconstvalue}{DW\_AT\_const\_value}
+\newdwfnamecommands{DWATcontainingtype}{DW\_AT\_containing\_type}
+\newdwfnamecommands{DWATcount}{DW\_AT\_count}
+%
+\newdwfnamecommands{DWATdatabitoffset}{DW\_AT\_bit\_offset}
\newdwfnamecommands{DWATdatalocation}{DW\_AT\_data\_location}
+\newdwfnamecommands{DWATdatamemberlocation}{DW\_AT\_data\_member\_location}
+\newdwfnamecommands{DWATdecimalscale}{DW\_AT\_decimal\_scale}
+\newdwfnamecommands{DWATdecimalsign}{DW\_AT\_decimal\_sign}
+\newdwfnamecommands{DWATdeclcolumn}{DW\_AT\_decl\_column}
+\newdwfnamecommands{DWATdeclfile}{DW\_AT\_decl\_file}
+\newdwfnamecommands{DWATdeclline}{DW\_AT\_decl\_line}
+\newdwfnamecommands{DWATdeclaration}{DW\_AT\_declaration}
+\newdwfnamecommands{DWATdefaultvalue}{DW\_AT\_default\_value}
+\newdwfnamecommands{DWATdescription}{DW\_AT\_description}
+\newdwfnamecommands{DWATdigitcount}{DW\_AT\_digit\_ount}
+\newdwfnamecommands{DWATdiscr}{DW\_AT\_discr}
+\newdwfnamecommands{DWATdiscrlist}{DW\_AT\_discr\_list}
+\newdwfnamecommands{DWATdiscrvalue}{DW\_AT\_discr\_value}
+%
+\newdwfnamecommands{DWATelemental}{DW\_AT\_elemental}
+\newdwfnamecommands{DWATencoding}{DW\_AT\_encoding}
+\newdwfnamecommands{DWATendianity}{DW\_AT\_endianity}
+\newdwfnamecommands{DWATentrypc}{DW\_AT\_entry\_pc}
+\newdwfnamecommands{DWATenumclass}{DW\_AT\_enum\_class}
+\newdwfnamecommands{DWATexplicit}{DW|_AT\_explicit}
+\newdwfnamecommands{DWATextension}{DW\_AT\_extension}
+\newdwfnamecommands{DWATexternal}{DW\_AT\_external}
+%
+\newdwfnamecommands{DWATframebase}{DW\_AT\_frame\_base}
+\newdwfnamecommands{DWATfriend}{DW\_AT\_friend}
+%
+\newdwfnamecommands{DWAThiuser}{DW\_AT\_hi\_user}
+\newdwfnamecommands{DWAThighpc}{DW\_AT\_high\_pc}
+%
+\newdwfnamecommands{DWATidentifiercase}{DW\_AT\_identifier\_case}
+\newdwfnamecommands{DWATimport}{DW\_AT\_import}
+\newdwfnamecommands{DWATinline}{DW\_AT\_inline}
+\newdwfnamecommands{DWATisoptional}{DW\_AT\_is\_optional}
+%
+\newdwfnamecommands{DWATlanguage}{DW\_AT\_language}
+\newdwfnamecommands{DWATlinkagename}{DW\_AT\_linkage\_name}
+\newdwfnamecommands{DWATlouser}{DW\_AT\_lo\_user}
\newdwfnamecommands{DWATlocation}{DW\_AT\_location}
+\newdwfnamecommands{DWATlowpc}{DW\_AT\_low\_pc}
\newdwfnamecommands{DWATlowerbound}{DW\_AT\_lower\_bound}
+%
\newdwfnamecommands{DWATmacroinfo}{DW\_AT\_macro\_info}
+\newdwfnamecommands{DWATmainsubprogram}{DW\_AT\_main\_subprogram}
+\newdwfnamecommands{DWATmutable}{DW\_AT\_mutable}
+%
\newdwfnamecommands{DWATname}{DW\_AT\_name}
+\newdwfnamecommands{DWATnamelistitem}{DW\_AT\_namelist\_item}
+%
+\newdwfnamecommands{DWATobjectpointer}{DW\_AT\_object\_pointer}
\newdwfnamecommands{DWATordering}{DW\_AT\_ordering}
+%
+\newdwfnamecommands{DWATpicturestring}{DW\_AT\_picture\_string}
+\newdwfnamecommands{DWATpriority}{DW\AT\_priority}
+\newdwfnamecommands{DWATproducer}{DW\_AT\_producer}
+\newdwfnamecommands{DWATprototyped}{DW\_AT\_prototyped}
+\newdwfnamecommands{DWATpure}{DW\_AT\_pure}
+%
\newdwfnamecommands{DWATranges}{DW\_AT\_ranges}
\newdwfnamecommands{DWATrank}{DW\_AT\_rank}
+\newdwfnamecommands{DWATrecursive}{DW\_AT\_recursive}
+\newdwfnamecommands{DWATreturnaddr}{DW\_AT\_return\_addr}
+%
+\newdwfnamecommands{DWATsegment}{DW\_AT\_segment}
\newdwfnamecommands{DWATsibling}{DW\_AT\_sibling}
+\newdwfnamecommands{DWATsignature}{DW\_AT\_signature}
+\newdwfnamecommands{DWATsmall}{DW\_AT\_small}
+\newdwfnamecommands{DWATspecification}{DW\_AT\_specification}
+\newdwfnamecommands{DWATstartsccope}{DW\_AT\_start\_scope}
+\newdwfnamecommands{DWATstaticlink}{DW\_AT\_static\_link}
\newdwfnamecommands{DWATstmtlist}{DW\_AT\_stmt\_list}
\newdwfnamecommands{DWATstringlength}{DW\_AT\_string\_length}
\newdwfnamecommands{DWATstringlengthbitsize}{DW\_AT\_string\_length\_bit\_size}
\newdwfnamecommands{DWATstringlengthbytesize}{DW\_AT\_string\_length\_byte\_size}
+%
+\newdwfnamecommands{DWATthreadsscaled}{DW\_AT\_threads\_scaled}
+\newdwfnamecommands{DWATtrampoline}{DW\_AT\_trampoline}
\newdwfnamecommands{DWATtype}{DW\_AT\_type}
+%
\newdwfnamecommands{DWATupperbound}{DW\_AT\_upper\_bound}
+\newdwfnamecommands{DWATuselocation}{DW\_AT\_use\_location}
+\newdwfnamecommands{DWATuseUTFeight}{DW\_AT\_use\_UTF8}
+%
+\newdwfnamecommands{DWATvariableparameter}{DW\_AT\_variable\_parameter}
+\newdwfnamecommands{DWATvirtuality}{DW\_AT\_virtuality}
+\newdwfnamecommands{DWATvisibility}{DW\_AT\_visibility}
+\newdwfnamecommands{DWATvtableelemlocation}{DW\_AT\_vtable\_elem\_location}
+%
+% DW_ATE
+%
+\newdwfnamecommands{DWATEaddress}{DW\_ATE\_address}
+\newdwfnamecommands{DWATEboolean}{DW\_ATE\_boolean}
+\newdwfnamecommands{DWATEcomplexfloat}{DW\_ATE\_complex\_float}
+\newdwfnamecommands{DWATEdecimalfloat}{DW\_ATE\_decimal\_float}
+\newdwfnamecommands{DWATEedited}{DW\_ATE\_edited}
+\newdwfnamecommands{DWATEfloat}{DW\_ATE\_float}
+\newdwfnamecommands{DWATEhiuser}{DW\_ATE\_hi\_user}
+\newdwfnamecommands{DWATEimaginaryfloat}{DW\_ATE\_imaginary\_float}
+\newdwfnamecommands{DWATElouser}{DW\_ATE\_lo\_user}
+\newdwfnamecommands{DWATEnumericstring}{DW\_ATE\_numeric\_string}
+\newdwfnamecommands{DWATEpackeddecimal}{DWATE\_packed\_decimal}
+\newdwfnamecommands{DWATEsigned}{DW\_ATE\_signed}
+\newdwfnamecommands{DWATEsignedchar}{DW\_ATE\_signed\_char}
+\newdwfnamecommands{DWATEsignedfixed}{DW\_ATE\_signed\_fixed}
+\newdwfnamecommands{DWATEunsigned}{DW\_ATE\_unsigned}
+\newdwfnamecommands{DWATEunsignedchar}{DW\_ATE\_unsigned\_char}
+\newdwfnamecommands{DWATEunsignedfixed}{DW\_ATE\_unsigned\_fixed}
+\newdwfnamecommands{DWATEUTF}{DW\_ATE\_UTF}
+%
+% DW_CC
+%
+\newdwfnamecommands{DWCChiuser}{DW\_CC\_hi\_user}
+\newdwfnamecommands{DWCClouser}{DW\_CC\_lo\_user}
+\newdwfnamecommands{DWCCnocall}{DW\_CC\_nocall}
+\newdwfnamecommands{DWCCnormal}{DW\_CC\_normal}
+\newdwfnamecommands{DWCCprogram}{DW\_CC\_program}
+%
+% DW_CFA
+%
+\newdwfnamecommands{DWCFAadvanceloc}{DW\_CFA\_advance\_loc}
+\newdwfnamecommands{DWCFAadvancelocone}{DW\_CFA\_advance\_loc1}
+\newdwfnamecommands{DWCFAadvanceloctwo}{DW\_CFA\_advance\_loc2}
+\newdwfnamecommands{DWCFAadvancelocfour}{DW\_CFA\_advance\_loc4}
+\newdwfnamecommands{DWCFAdefcfa}{DW\_CFA\_def\_cfa}
+\newdwfnamecommands{DWCFAdefcfaexpression}{DW\_CFA\_def\_cfa\_expression}
+\newdwfnamecommands{DWCFAdefcfaoffset}{DW\_CFA\_def\_cfa\_offset}
+\newdwfnamecommands{DWCFAdefcfaoffsetsf}{DW\_CFA\_def\_cfa\_offset\_sf}
+\newdwfnamecommands{DWCFAdefcfaregister}{DW\_CFA\_def\_cfa\_register}
+\newdwfnamecommands{DWCFAdefcfasf}{DW\_CFA\_def\_cfa\_sf}
+\newdwfnamecommands{DWCFAexpression}{DW\_CFA\_expression}
+\newdwfnamecommands{DWCFAiuser}{DW\_CFA\_hi\_user}
+\newdwfnamecommands{DWCFAlouser}{DW\_CFA\_lo\_user}
+\newdwfnamecommands{DWCFAnop}{DW\_CFA\_nop}
+\newdwfnamecommands{DWCFAoffset}{DW\_CFA\_offset}
+\newdwfnamecommands{DWCFAoffsetextended}{DW\_CFA\_offset\_extended}
+\newdwfnamecommands{DWCFAoffsetextendedsf}{DW\_CFA\_offset\_extended\_sf}
+\newdwfnamecommands{DWCFAregister}{DW\_CFA\_register}
+\newdwfnamecommands{DWCFArememberstate}{DW\_CFA\_remember\_state}
+\newdwfnamecommands{DWCFArestore}{DW\_CFA\_restore}
+\newdwfnamecommands{DWCFArestoreextended}{DW\_CFA\_restore\_extended}
+\newdwfnamecommands{DWCFArestorestate}{DW\_CFA\_restore\_state}
+\newdwfnamecommands{DWCFAsamevalue}{DW\_CFA\_same\_value}
+\newdwfnamecommands{DWCFAsetloc}{DW\_CFA\_set\_loc}
+\newdwfnamecommands{DWCFAundefined}{DW\_CFA\_undefined}
+\newdwfnamecommands{DWCFAvalexpression}{DW\_CFA\_val\_expression}
+\newdwfnamecommands{DWCFAvaloffset}{DW\_CFA\_val\_val\_offset}
+\newdwfnamecommands{DWCFAvaloffsetsf}{DW\_CFA\_val\_offset\_sf}
+%
+% DW_CHILDREN
+%
+\newdwfnamecommands{DWCHILDRENno}{DW\_CHILDREN\_no}
+\newdwfnamecommands{DWCHILDRENyes}{DW\_CHILDREN\_yes}
+%
+% DW_DS
+%
+\newdwfnamecommands{DWDSleadingoverpunch}{DW\_DS\_leading\_overpunch}
+\newdwfnamecommands{DWDSleadingseparate}{DW\_DS\_leading\_separate}
+\newdwfnamecommands{DWDStrailingoverpunch}{DW\_DS\_trailing\_overpunch}
+\newdwfnamecommands{DWDStrailingseparate}{DW\_DS\_trailing\_separate}
+\newdwfnamecommands{DWDSunsigned}{DW\_DS\_unsigned}
+%
+% DW_DSC
+%
+\newdwfnamecommands{DWDSClabel}{DW\_DSC\_label}
+\newdwfnamecommands{DWDSCrange}{DW\_DSC\_range}
+%
+% DW_END
+%
+\newdwfnamecommands{DWENDbig}{DW\_END\_big}
+\newdwfnamecommands{DWENDdefault}{DW\_END\_default}
+\newdwfnamecommands{DWENDhiuser}{DW\_END\_hi\_user}
+\newdwfnamecommands{DWENDlittle}{DW\_END\_little}
+\newdwfnamecommands{DWENDlouser}{DW\_END\_lo\_user}
%
% DW_FORM
%
+\newdwfnamecommands{DWFORMaddr}{DW\_FORM\_addr}
+\newdwfnamecommands{DWFORMblock}{DW\_FORM\_block}
+\newdwfnamecommands{DWFORMblockone}{DW\_FORM\_block1}
+\newdwfnamecommands{DWFORMblocktwo}{DW\_FORM\_block2}
+\newdwfnamecommands{DWFORMblockfour}{DW\_FORM\_block3}
+\newdwfnamecommands{DWFORMdata}{DW\_FORM\_data}
+\newdwfnamecommands{DWFORMdataone}{DW\_FORM\_data1}
+\newdwfnamecommands{DWFORMdatatwo}{DW\_FORM\_data2}
+\newdwfnamecommands{DWFORMdatafour}{DW\_FORM\_data4}
+\newdwfnamecommands{DWFORMdataeight}{DW\_FORM\_data8}
+\newdwfnamecommands{DWFORMexprloc}{DW\_FORM\_exprloc}
+\newdwfnamecommands{DWFORMflag}{DW\_FORM\_flag}
+\newdwfnamecommands{DWFORMflag}{DW\_FORM\_flag\_present}
+\newdwfnamecommands{DWFORMindirect}{DW\_FORM\_indirect}
+\newdwfnamecommands{DWFORMrefone}{DW\_FORM\_ref1}
+\newdwfnamecommands{DWFORMreftwo}{DW\_FORM\_ref2}
+\newdwfnamecommands{DWFORMreffour}{DW\_FORM\_ref4}
+\newdwfnamecommands{DWFORMrefeight}{DW\_FORM\_ref8}
+\newdwfnamecommands{DWFORMrefaddr}{DW\_FORM\_ref\_addr}
\newdwfnamecommands{DWFORMrefsigeight}{DW\_FORM\_ref\_sig8}
+\newdwfnamecommands{DWFORMrefudata}{DW\_FORM\_ref\_udata}
+\newdwfnamecommands{DWFORMsdata}{DW\_FORM\_sdata}
+\newdwfnamecommands{DWFORMsecoffset}{DW\_FORM\_sec\_offset}
+\newdwfnamecommands{DWFORMstring}{DW\_FORM\_string}
\newdwfnamecommands{DWFORMstrp}{DW\_FORM\_strp}
+\newdwfnamecommands{DWFORMudata}{DW\_FORM\_udata}
+%
+% DW_ID
+%
+\newdwfnamecommands{DWIDcaseinsensitive}{DW\_ID\_case\_insensitive}
+\newdwfnamecommands{DWIDcasesensitive}{DW\_ID\_case\_sensitive}
+\newdwfnamecommands{DWIDdowncase}{DW\_ID\_down\_case}
+\newdwfnamecommands{DWIDupcase}{DW\_ID\_up\_case}
+%
+% DW_INL
+%
+\newdwfnamecommands{DWINLdeclaredinlined}{DW\_INL\_declared\_inlined}
+\newdwfnamecommands{DWINLdeclarednotinlined}{DW\_INL\_declared\_not\_inlined}
+\newdwfnamecommands{DWINLinlined}{DW\_INL\_inlined}
+\newdwfnamecommands{DWINLnotinlined}{DW\_INL\_not\_inlined}
%
% DW_LANG
%
+\newdwfnamecommands{DWLANGAdaeightythree}{DW\_LANG\_Ada83}
+\newdwfnamecommands{DWLANGAdaninetyfive}{DW\_LANG\_Ada95}
+\newdwfnamecommands{DWLANGC}{DW\_LANG\_C}
+\newdwfnamecommands{DWLANGCeightynine}{DW\_LANG\_C89}
+\newdwfnamecommands{DWLANGCninetynine}{DW\_LANG\_C99}
+\newdwfnamecommands{DWLANGCplusplus}{DW\_LANG\_C\_plus\_plus}
+\newdwfnamecommands{DWLANGCobolseventyfour}{DW\_LANG\_Cobol74}
+\newdwfnamecommands{DWLANGCoboleightyfive}{DW\_LANG\_Cobol85}
+\newdwfnamecommands{DWLANGD}{DW\_LANG\_D}
+\newdwfnamecommands{DWLANGFortranseventyseven}{DW\_LANG\_Fortran77}
+\newdwfnamecommands{DWLANGFortranninety}{DW\_LANG\_Fortran90}
+\newdwfnamecommands{DWLANGFortranninetyfive}{DW\_LANG\_Fortran95}
\newdwfnamecommands{DWLANGGo}{DW\_LANG\_Go}
\newdwfnamecommands{DWLANGHaskell}{DW\_LANG\_Haskell}
-\newdwfnamecommands{DWLANGModulaThree}{DW\_LANG\_Modula3}
+\newdwfnamecommands{DWLANGhiuser}{DW\_LANG\_hi\_user}
+\newdwfnamecommands{DWLANGJava}{DW\_LANG\_Java}
+\newdwfnamecommands{DWLANGlouser}{DW\_LANG\_lo\_user}
+\newdwfnamecommands{DWLANGModulatwo}{DW\_LANG\_Modula2}
+\newdwfnamecommands{DWLANGModulathree}{DW\_LANG\_Modula3}
+\newdwfnamecommands{DWLANGObjC}{DW\_LANG\_ObjC}
+\newdwfnamecommands{DWLANGObjCplusplus}{DW\_LANG\_ObjC\_plus\_plus}
\newdwfnamecommands{DWLANGOpenCL}{DW\_LANG\_OpenCL}
+\newdwfnamecommands{DWLANGPascaleightythree}{DW\_LANG\_Pascal83}
+\newdwfnamecommands{DWLANGPLI}{DW\_LANG\_PLI}
+\newdwfnamecommands{DWLANGPython}{DW\_LANG\_Python}
+\newdwfnamecommands{DWLANGUPC}{DW\_LANG\_UPC}
+%
+% DW_LNE
+%
+\newdwfnamecommands{DWLNEdefinefile}{DW\_LNE\_define\_file}
+\newdwfnamecommands{DWLNEendsequence}{DW\_LNE\_end\_sequence}
+\newdwfnamecommands{DWLNEhiuser}{DW\_LNE\_hi\_user}
+\newdwfnamecommands{DWLNElouser}{DW\_LNE\_lo\_user}
+\newdwfnamecommands{DWLNEsetaddress}{DW\_LNE\_set\_address}
+\newdwfnamecommands{DWLNEsetdiscriminator}{DW\_LNE\_set\_discriminator}
+%
+% DW_LNS
+%
+\newdwfnamecommands{DWLNSadvanceline}{DW\_LNS\_advance\_line}
+\newdwfnamecommands{DWLNSadvancepc}{DW\_LNS\_advance\_pc}
+\newdwfnamecommands{DWLNSconstaddpc}{DW\_LNS\_const\_add\_pc}
+\newdwfnamecommands{DWLNScopy}{DW\_LNS\_copy}
+\newdwfnamecommands{DWLNSfixedadvancepc}{DW\_LNS\_fixed\_advance\_pc}
+\newdwfnamecommands{DWLNShiuser}{DW\_LNS\_hi\_user}
+\newdwfnamecommands{DWLNSlouser}{DW\_LNS\_lo\_user}
+\newdwfnamecommands{DWLNSnegatestmt}{DW\_LNS\_negate\_stmt}
+\newdwfnamecommands{DWLNSsetbasicblock}{DW\_LNS\_set\_basic\_block}
+\newdwfnamecommands{DWLNSsetcolumn}{DW\_LNS\_set\_column}
+\newdwfnamecommands{DWLNSsetepiloguebegin}{DW\_LNS\_set\_epilogue\_begin}
+\newdwfnamecommands{DWLNSsetfile}{DW\_LNS\_set\_file}
+\newdwfnamecommands{DWLNSsetisa}{DW\_LNS\_set\_isa}
+\newdwfnamecommands{DWLNSsetprologueend}{DW\_LNS\_set\_prologue\_end}
+%
+% DW_MACINFO
+%
+\newdwfnamecommands{DWMACINFOdefine}{DW\_MACINFO\_define}
+\newdwfnamecommands{DWMACINFOendfile}{DW\_MACINFO\_end\_file}
+\newdwfnamecommands{DWMACINFOstartfile}{DW\_MACINFO\_start\_file}
+\newdwfnamecommands{DWMACINFOundef}{DW\_MACINFO\_undef}
+\newdwfnamecommands{DWMACINFOvendorext}{DW\_MACINFO\_vendor\_ext}
%
% DW_OP
%
+\newdwfnamecommands{DWOPabs}{DW\_OP\_abs}
+\newdwfnamecommands{DWOPaddr}{DW\_OP\_addr}
+\newdwfnamecommands{DWOPand}{DW\_OP\_and}
+\newdwfnamecommands{DWOPbitpiece}{DW\_OP\_bit\_piece}
+\newdwfnamecommands{DWOPbra}{DW\_OP\_bra}
+\newdwfnamecommands{DWOPbregn}{DW\_OP\_breg\textit{n}} % Generic name
+\newdwfnamecommands{DWOPbregzero}{DW\_OP\_breg0}
+\newdwfnamecommands{DWOPbregone}{DW\_OP\_breg1}
+\newdwfnamecommands{DWOPbregthirtyone}{DW\_OP\_breg31}
+ \newcommand{\DWOPbregtwo}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg2}} % Link, don't index...
+ \newcommand{\DWOPbregthree}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg3}} %
+ \newcommand{\DWOPbregfour}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg4}} %
+ \newcommand{\DWOPbregeleven}{\hyperlink{chap:DWOPbregn}{DW\_OP\_breg11}} %
+\newdwfnamecommands{DWOPbregx}{DW\_OP\_bregx}
+\newdwfnamecommands{DWOPcalltwo}{DW\_OP\_call2}
+\newdwfnamecommands{DWOPcallfour}{DW\_OP\_call4}
+\newdwfnamecommands{DWOPcallframecfa}{DW\_OP\_call\_frame\_cfa}
\newdwfnamecommands{DWOPcallref}{DW\_OP\_call\_ref}
-\newdwfnamecommands{DWOPconst}{DW\_OP\_const}
+\newdwfnamecommands{DWOPconstnx}{DW\_OP\_const\textit{nx}} %generic const%% operator name
+\newdwfnamecommands{DWOPconstns}{DW\_OP\_const\textit{n}s} %generic const%s operator name
+\newdwfnamecommands{DWOPconstnu}{DW\_OP\_const\textit{n}u} %generic const%u operator name
+\newdwfnamecommands{DWOPconstones}{DW\_OP\_const1s}
+\newdwfnamecommands{DWOPconstoneu}{DW\_OP\_const1u}
+\newdwfnamecommands{DWOPconsttwos}{DW\_OP\_const2s}
+\newdwfnamecommands{DWOPconsttwou}{DW\_OP\_const2u}
+\newdwfnamecommands{DWOPconstfours}{DW\_OP\_const4s}
+\newdwfnamecommands{DWOPconstfouru}{DW\_OP\_const4u}
+\newdwfnamecommands{DWOPconsteights}{DW\_OP\_const8s}
+\newdwfnamecommands{DWOPconsteightu}{DW\_OP\_const8u}
+\newdwfnamecommands{DWOPconsts}{DW\_OP\_consts}
+\newdwfnamecommands{DWOPconstu}{DW\_OP\_constu}
\newdwfnamecommands{DWOPderef}{DW\_OP\_deref}
+\newdwfnamecommands{DWOPderefsize}{DW\_OP\_deref\_size}
+\newdwfnamecommands{DWOPdiv}{DW\_OP\_div}
+\newdwfnamecommands{DWOPdrop}{DW\_OP\_drop}
+\newdwfnamecommands{DWOPdup}{DW\_OP\_dup}
+\newdwfnamecommands{DWOPeq}{DW\_OP\_eq}
+\newdwfnamecommands{DWOPfbreg}{DW\_OP\_fbreg}
\newdwfnamecommands{DWOPformtlsaddress}{DW\_OP\_form\_tls\_address}
-\newdwfnamecommands{DWOPlit}{DW\_OP\_lit}
-\newdwfnamecommands{DWOPmult}{DW\_OP\_mult}
+\newdwfnamecommands{DWOPge}{DW\_OP\_ge}
+\newdwfnamecommands{DWOPgt}{DW\_OP\_gt}
+\newdwfnamecommands{DWOPhiuser}{DW\_OP\_hi\_user}
+\newdwfnamecommands{DWOPimplicitvalue}{DW\_OP\_implicit\_value}
+\newdwfnamecommands{DWOPle}{DW\_OP\_le}
+\newdwfnamecommands{DWOPlitn}{DW\_OP\_lit\textit{n}} % generic lit operator name
+\newdwfnamecommands{DWOPlitzero}{DW\_OP\_lit0}
+\newdwfnamecommands{DWOPlitone}{DW\_OP\_lit1}
+ \newcommand{\DWOPlittwo}{\hyperlink{chap:DWOPlitn}{DW\_OP\_lit2}} % Link, don't index...
+\newdwfnamecommands{DWOPlitthirtyone}{DW\_OP\_lit31}
+\newdwfnamecommands{DWOPlouser}{DW\_OP\_lo\_user}
+\newdwfnamecommands{DWOPlt}{DW\_OP\_lt}
+\newdwfnamecommands{DWOPminus}{DW\_OP\_minus}
+\newdwfnamecommands{DWOPmod}{DW\_OP\_mod}
+\newdwfnamecommands{DWOPmul}{DW\_OP\_mul}
+\newdwfnamecommands{DWOPne}{DW\_OP\_ne}
+\newdwfnamecommands{DWOPneg}{DW\_OP\_neg}
+\newdwfnamecommands{DWOPnop}{DW\_OP\_nop}
+\newdwfnamecommands{DWOPnot}{DW\_OP\_not}
+\newdwfnamecommands{DWOPor}{DW\_OP\_or}
+\newdwfnamecommands{DWOPover}{DW\_OP\_over}
+\newdwfnamecommands{DWOPpick}{DW\_OP\_pick}
+\newdwfnamecommands{DWOPpiece}{DW\_OP\_piece}
\newdwfnamecommands{DWOPplus}{DW\_OP\_plus}
+\newdwfnamecommands{DWOPplusuconst}{DW\_OP\_plus\_uconst}
\newdwfnamecommands{DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
+\newdwfnamecommands{DWOPregn}{DW\_OP\_reg\textit{n}} % Generic register name
+\newdwfnamecommands{DWOPregzero}{DW\_OP\_reg0}
+\newdwfnamecommands{DWOPregone}{DW\_OP\_reg1}
+ \newcommand{\DWOPregtwo}{\hyperlink{DWOPregn}{DW\_OP\_reg2}} % Link, don't index
+ \newcommand{\DWOPregthree}{\hyperlink{DWOPregn}{DW\_OP\_reg3}}
+ \newcommand{\DWOPregten}{\hyperlink{DWOPregn}{DW\_OP\_reg10}}
+\newdwfnamecommands{DWOPregthirtyone}{DW\_OP\_reg31}
+\newdwfnamecommands{DWOPregx}{DW\_OP\_regx}
+\newdwfnamecommands{DWOProt}{DW\_OP\_rot}
+\newdwfnamecommands{DWOPshl}{DW\_OP\_shl}
+\newdwfnamecommands{DWOPshr}{DW\_OP\_shr}
+\newdwfnamecommands{DWOPshra}{DW\_OP\_shra}
+\newdwfnamecommands{DWOPskip}{DW\_OP\_skip}
+\newdwfnamecommands{DWOPstatckvalue}{DW\_OP\_static\_value}
+\newdwfnamecommands{DWOPswap}{DW\_OP\_swap}
+\newdwfnamecommands{DWOPxderef}{DW\_OP\_xderef}
+\newdwfnamecommands{DWOPxderefsize}{DW\_OP\_xderef\_size}
+\newdwfnamecommands{DWOPxor}{DW\_OP\_xor}
%
% DW_ORD
%
%
% DW_TAG
%
+\newdwfnamecommands{DWTAGaccessdeclaration}{DW\_TAG\_access\_declaration}
\newdwfnamecommands{DWTAGarraytype}{DW\_TAG\_array\_type}
+\newdwfnamecommands{DWTAGbasetype}{DW\_TAG\_base\_type}
+\newdwfnamecommands{DWTAGcatchblok}{DW\_TAG\_catch\_block}
+\newdwfnamecommands{DWTAGclasstype}{DW\_TAG\_class\_type}
\newdwfnamecommands{DWTAGcoarraytype}{DW\_TAG\_coarray\_type}
+\newdwfnamecommands{DWTAGcommonblock}{DW\_TAG\_common\_block}
+\newdwfnamecommands{DWTAGcommoninclusion}{DW\_TAG\_common\_inclusion}
+\newdwfnamecommands{DWTAGcompileunit}{DW\_TAG\_compile\_unit}
+\newdwfnamecommands{DWTAGcondition}{DW\_TAG\_condition}
+\newdwfnamecommands{DWTAGconttype}{DW\_TAG\_const\_type}
+\newdwfnamecommands{DWTAGconstant}{DW\_TAG\_constant}
+\newdwfnamecommands{DWTAGdwarfprocedure}{DW\_TAG\_dwarf\_procedure}
+\newdwfnamecommands{DWTAGentrypoint}{DW\_TAG\_entry\_point}
+\newdwfnamecommands{DWTAGenumerationtype}{DW\_TAG\_enumeration\_type}
+\newdwfnamecommands{DWTAGenumerator}{DW\_TAG\_enumerator}
+\newdwfnamecommands{DWTAGfiletype}{DW\_TAG\_file\_type}
+\newdwfnamecommands{DWTAGformalparameter}{DW\_TAG\_formal\_parameter}
+\newdwfnamecommands{DWTAGfriend}{DW\_TAG\_friend}
\newdwfnamecommands{DWTAGgenericsubrange}{DW\_TAG\_generic\_subrange}
+\newdwfnamecommands{DWTAGhiuser}{DW\_TAG\_hi\_user}
+\newdwfnamecommands{DWTAGimporteddeclaration}{DW\_TAG\_imported\_declaration}
+\newdwfnamecommands{DWTAGimportedmodule}{DW\_TAG\_imported\_module}
+\newdwfnamecommands{DWTAGimportedunit}{DW\_TAG\_imported\_unit}
+\newdwfnamecommands{DWTAGinheritance}{DW\_TAG\_inheritance}
+\newdwfnamecommands{DWTAGinlinedsubroutine}{DW\_TAG\_inlined\_subroutine}
+\newdwfnamecommands{DWTAGinterfacetype}{DW\_TAG\_interface\_type}
+\newdwfnamecommands{DWTAGlabel}{DW\_TAG\_label}
+\newdwfnamecommands{DWTAGlexicalblock}{DW\_TG\_lexical\_block}
+\newdwfnamecommands{DWTAGlouser}{DW\_TAG\_lo\_user}
\newdwfnamecommands{DWTAGmember}{DW\_TAG\_member}
+\newdwfnamecommands{DWTAGmodule}{DW\_TAG\_module}
+\newdwfnamecommands{DWTAGnamelist}{DW\_TAG\_namelist}
+\newdwfnamecommands{DWTAGnamelistitem}{DW\_TAG\_namelist\_item}
+\newdwfnamecommands{DWTAGnamespace}{DW\_TAG\_namespace}
+\newdwfnamecommands{DWTAGpackedtype}{DW\_TAG\_packed\_type}
+\newdwfnamecommands{DWTAGpartialunit}{DW\_TAG\_partial\_unit}
+\newdwfnamecommands{DWTAGpointertype}{DW\_TAG\_pointer\_type}
+\newdwfnamecommands{DWTAGptrtomembertype}{DW\_TAG\_ptr\_to\_member\_type}
+\newdwfnamecommands{DWTAGreferencetype}{DW\_tag\_reference\_type}
+\newdwfnamecommands{DWTAGrestricttype}{DW\_TAG\_restrict\_type}
+\newdwfnamecommands{DWTAGrvaluereferencetype}{DW\_TAG\_rvalue\_reference\_type}
+\newdwfnamecommands{DWTAGsettype}{DW\_TAG\_set\_type}
+\newdwfnamecommands{DWTAGsharedtype}{DW\_TAG\_shared\_type}
+\newdwfnamecommands{DWTAGstringtype}{DW\_TAG\_string\_type}
+\newdwfnamecommands{DWTAGstructuretype}{DW\_TAG\_structure\_type}
+\newdwfnamecommands{DWTAGsubprogram}{DW\_TAG\_subprogram}
\newdwfnamecommands{DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
+\newdwfnamecommands{DWTAGsubroutinetype}{DW\_TAG\_subroutine\_type}
+\newdwfnamecommands{DWTAGtemplatealias}{DW\_TAG\_template\_alias}
+\newdwfnamecommands{DWTAGtemplatetypeparameter}{DW\_TAG\_template\_type\_parameter}
+\newdwfnamecommands{DWTAGtemplatevalueparameter}{DW\_TAG\_template\_value\_parameter}
+\newdwfnamecommands{DWTAGthrowntype}{DW\_TAG\_thrown\_type}
+\newdwfnamecommands{DWTAGtryblock}{DW\_TAG\_try\_block}
+\newdwfnamecommands{DWTAGtypedef}{DW\_TAG\_typedef}
+\newdwfnamecommands{DWTAGtypeunit}{DW\_TAG\_type\_unit}
+\newdwfnamecommands{DWTAGuniontype}{DW\_TAG\_union\_type}
+\newdwfnamecommands{DWTAGunspecifiedparameters}{DW\_TAG\_unspecified\_parameters}
+\newdwfnamecommands{DWTAGunspecifiedtype}{DW\_TAG\_unspecified_type}
\newdwfnamecommands{DWTAGvariable}{DW\_TAG\_variable}
+\newdwfnamecommands{DWTAGvariant}{DW\_TAG\_variant}
+\newdwfnamecommands{DWTAGvariantpart}{DW\_TAG\_variant\_part}
+\newdwfnamecommands{DWTAGvolatiletype}{DW\_TAG\_volatile\_type}
+\newdwfnamecommands{DWTAGwithstmt}{DW\_TAG\_with\_stmt}
+%
+% DW_VIRTUALITY
+%
+\newdwfnamecommands{DWVIRTUALITYnone}{DW\_VIRTUALITY\_none}
+\newdwfnamecommands{DWVIRTUALITYpurevirtual}{DW\_VIRTUALITY\_pure\_virtual}
+\newdwfnamecommands{DWVIRTUALITYvirtual}{DW\_VIRTUALITY\_virtual}
+%
+% DW_VIS
+%
+\newdwfnamecommands{DWVISexported}{DW\_VIS\_exported}
+\newdwfnamecommands{DWVISlocal}{DW\_VIS\_local}
+\newdwfnamecommands{DWVISqualified}{DW\_VIS\_qualified}
+%
+%%%%%%%%%%%%%%%
%
% .debug, et al
%
-\newcommand{\dotdebugabbrev}[1][]{\addtoindex{\texttt{.debug\_abbrev}}}
-\newcommand{\dotdebugaranges}[1][]{\addtoindex{\texttt{.debug\_aranges}}}
-\newcommand{\dotdebugframe}[1][]{\addtoindex{\texttt{.debug\_frame}}}
-\newcommand{\dotdebuginfo}[1][]{\addtoindex{\texttt{.debug\_info}}}
-\newcommand{\dotdebugline}[1][]{\addtoindex{\texttt{.debug\_line}}}
-\newcommand{\dotdebugloc}[1][]{\addtoindex{\texttt{.debug\_loc}}}
-\newcommand{\dotdebugmacinfo}[1][]{\addtoindex{\texttt{.debug\_mac\_info}}}
-\newcommand{\dotdebugpubnames}[1][]{\addtoindex{\texttt{.debug\_pubnames}}}
-\newcommand{\dotdebugpubtypes}[1][]{\addtoindex{\texttt{.debug\_pubtypes}}}
-\newcommand{\dotdebugranges}[1][]{\addtoindex{\texttt{.debug\_ranges}}}
-\newcommand{\dotdebugstr}[1][]{\addtoindex{\texttt{.debug\_str}}}
-\newcommand{\dotdebugtypes}[1][]{\addtoindex{\texttt{.debug\_types}}}
-%
-\newcommand{\dotdata}[1][]{\addtoindex{\texttt{.data}}}
-\newcommand{\dottext}[1][]{\addtoindex{\texttt{.text}}}
+\newcommand{\dotdebugabbrev}{\addtoindex{\texttt{.debug\_abbrev}}}
+\newcommand{\dotdebugaranges}{\addtoindex{\texttt{.debug\_aranges}}}
+\newcommand{\dotdebugframe}{\addtoindex{\texttt{.debug\_frame}}}
+\newcommand{\dotdebuginfo}{\addtoindex{\texttt{.debug\_info}}}
+\newcommand{\dotdebugline}{\addtoindex{\texttt{.debug\_line}}}
+\newcommand{\dotdebugloc}{\addtoindex{\texttt{.debug\_loc}}}
+\newcommand{\dotdebugmacinfo}{\addtoindex{\texttt{.debug\_mac\_info}}}
+\newcommand{\dotdebugpubnames}{\addtoindex{\texttt{.debug\_pubnames}}}
+\newcommand{\dotdebugpubtypes}{\addtoindex{\texttt{.debug\_pubtypes}}}
+\newcommand{\dotdebugranges}{\addtoindex{\texttt{.debug\_ranges}}}
+\newcommand{\dotdebugstr}{\addtoindex{\texttt{.debug\_str}}}
+\newcommand{\dotdebugtypes}{\addtoindex{\texttt{.debug\_types}}}
+%
+\newcommand{\dotdata}{\addtoindex{\texttt{.data}}}
+\newcommand{\dottext}{\addtoindex{\texttt{.text}}}
%
% Current section version numbers
%
\chapter{Examples (Informative)}
-\label{app:examplesinformative}
+\label{app:examplesinformative}F
The following sections provide examples that illustrate
various aspects of the DWARF debugging information format.
-\section{ Compilation Units and Abbreviations Table Example}
+\section{ Compilation Units and Abbreviations Table Example}F
\label{app:compilationunitsandabbreviationstableexample}
\livelink{chap:DWATtype}{DW\_AT\_type}(reference to REAL)
\livelink{chap:DWATassociated}{DW\_AT\_associated}(expression= ! Test 'ptr\_assoc' \nolink{flag}
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(ptr\_assoc)
+ \DWOPlitn ! where n == offset(ptr\_assoc)
\livelink{chap:DWOPplus}{DW\_OP\_plus}
\livelink{chap:DWOPderef}{DW\_OP\_deref}
- \livelink{chap:DWOPlit1}{DW\_OP\_lit1} ! mask for 'ptr\_assoc' \nolink{flag}
+ \livelink{chap:DWOPlit1}{DW\_OP\_lit1} ! mask for 'ptr\_assoc' \nolink{flag}
\livelink{chap:DWOPand}{DW\_OP\_and})
\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}(expression= ! Get raw data address
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(base)
+ \DWOPlitn ! where n == offset(base)
\livelink{chap:DWOPplus}{DW\_OP\_plus}
- \livelink{chap:DWOPderef}{DW\_OP\_deref}) ! Type of index of array 'ap'
+ \livelink{chap:DWOPderef}{DW\_OP\_deref}) ! Type of index of array 'ap'
2\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
! No name, default stride
\livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(expression=
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n ==
- ! offset(desc, dims) +
- ! offset(dims\_str, lower\_bound)
+ \DWOPlitn ! where n ==
+ ! offset(desc, dims) +
+ ! offset(dims\_str, lower\_bound)
\livelink{chap:DWOPplus}{DW\_OP\_plus}
\livelink{chap:DWOPderef}{DW\_OP\_deref})
\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(expression=
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n ==
- ! offset(desc, dims) +
- ! offset(dims\_str, upper\_bound)
+ \DWOPlitn ! where n ==
+ ! offset(desc, dims) +
+ ! offset(dims\_str, upper\_bound)
\livelink{chap:DWOPplus}{DW\_OP\_plus}
\livelink{chap:DWOPderef}{DW\_OP\_deref})
! Note: for the m'th dimension, the second operator becomes
- ! \livelink{chap:DWOPlit}{DW\_OP\_lit}<x> where
- ! x == offset(desc, dims) +
- ! (m-1)*sizeof(dims\_str) +
+ ! \DWOPlitn where
+ ! n == offset(desc, dims) +
+ ! (m-1)*sizeof(dims\_str) +
! offset(dims\_str, [lower|upper]\_bound)
! That is, the expression does not get longer for each successive
! dimension (other than to express the larger offsets involved).
\livelink{chap:DWATtype}{DW\_AT\_type}(reference to 3\$)
\livelink{chap:DWATallocated}{DW\_AT\_allocated}(expression= ! Test 'ptr\_alloc' \nolink{flag}
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(ptr\_alloc)
+ \DWOPlitn ! where n == offset(ptr\_alloc)
\livelink{chap:DWOPplus}{DW\_OP\_plus}
\livelink{chap:DWOPderef}{DW\_OP\_deref}
- \livelink{chap:DWOPlit}{DW\_OP\_lit2} ! Mask for 'ptr\_alloc' \nolink{flag}
+ \DWOPlittwo ! Mask for 'ptr\_alloc' \nolink{flag}
\livelink{chap:DWOPand}{DW\_OP\_and})
\livelink{chap:DWATdatalocation}{DW\_AT\_data\_location}(expression= ! Get raw data address
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n = offset(base)
+ \DWOPlitn ! where n == offset(base)
\livelink{chap:DWOPplus}{DW\_OP\_plus}
\livelink{chap:DWOPderef}{DW\_OP\_deref})
7\$: \livelink{chap:DWTAGsubrangetype}{DW\_TAG\_subrange\_type}
\livelink{chap:DWATtype}{DW\_AT\_type}(reference to INTEGER)
\livelink{chap:DWATlowerbound}{DW\_AT\_lower\_bound}(expression=
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == ...
+ \DWOPlitn ! where n == ...
\livelink{chap:DWOPplus}{DW\_OP\_plus}
\livelink{chap:DWOPderef}{DW\_OP\_deref})
\livelink{chap:DWATupperbound}{DW\_AT\_upper\_bound}(expression=
\livelink{chap:DWOPpushobjectaddress}{DW\_OP\_push\_object\_address}
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == ...
+ \DWOPlitn ! where n == ...
\livelink{chap:DWOPplus}{DW\_OP\_plus}
\livelink{chap:DWOPderef}{DW\_OP\_deref})
8\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}
\DWATtype(reference to real)
\DWATrank(expression=
\DWOPpushobjectaddress
- \DWOPlit<offset of rank in descriptor>
+ \DWOPlitn ! offset of rank in descriptor>
\DWOPplus
\DWOPderef)
\DWATdatalocation(expression=
\DWOPpushobjectaddress
- \DWOPlit<offset of data in descriptor>
+ \DWOPlitn ! offset of data in descriptor>
\DWOPplus
\DWOPderef)
11\$: \DWTAGgenericsubrange
\DWATtype(reference to integer)
\DWATlowerbound(expression=
! Looks up the lower bound of dimension i.
- ! Operation ! Stack effect
- ! (implicit) ! i
- \DWOPlit<byte size of struct dim> ! i sizeof(dim)
- \DWOPmult ! dim[i]
- \DWOPlit<offset of dim in descriptor> ! dim[i] offset
- \DWOPplus ! dim[i]+offset
- \DWOPpushobjectaddress ! dim[i]+offset objptr
- \DWOPplus ! objptr.dim[i]
- \DWOPlit<offset of lowerbound in dim> ! objptr.dim[i] offset
- \DWOPplus ! objptr.dim[i].lowerbound
- \DWOPderef) ! *objptr.dim[i].lowerbound
+ ! Operation ! Stack effect
+ ! (implicit) ! i
+ \DWOPlitn ! i sizeof(dim)
+ \DWOPmul ! dim[i]
+ \DWOPlitn ! dim[i] offsetof(dim)
+ \DWOPplus ! dim[i]+offset
+ \DWOPpushobjectaddress ! dim[i]+offsetof(dim) objptr
+ \DWOPplus ! objptr.dim[i]
+ \DWOPlitn ! objptr.dim[i] offsetof(lb)
+ \DWOPplus ! objptr.dim[i].lowerbound
+ \DWOPderef) ! *objptr.dim[i].lowerbound
\DWATupperbound(expression=
! Looks up the upper bound of dimension i.
- \DWOPlit<byte size of dim>
- \DWOPmult
- \DWOPlit<offset of dim in descriptor>
+ \DWOPlitn ! sizeof(dim)
+ \DWOPmul
+ \DWOPlitn ! offsetof(dim)
\DWOPplus
\DWOPpushobjectaddress
\DWOPplus
- \DWOPlit<offset of upperbound in dim>
+ \DWOPlitn ! offset of upperbound in dim
\DWOPplus
\DWOPderef)
\DWATbytestride(expression=
\livelink{chap:DWATname}{DW\_AT\_name}("VEC2")
\livelink{chap:DWATtype}{DW\_AT\_type}(reference to array "subtype" at 28\$)
\livelink{chap:DWATdatamemberlocation}{DW\_AT\_data\_member\_location}(machine=
- \livelink{chap:DWOPlit}{DW\_OP\_lit}<n> ! where n == offset(REC2, VEC2)
+ \DWOPlitn ! where n == offset(REC2, VEC2)
\livelink{chap:DWOPplus}{DW\_OP\_plus})
. . .
41\$: \livelink{chap:DWTAGvariable}{DW\_TAG\_variable}