0000: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0010: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0020: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0030: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0040: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0050: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0060: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
0070: 0a 0a 0a 0a 0a 0a 0a 23 69 66 64 65 66 20 5f 4d .......#ifdef _M
0080: 53 43 5f 56 45 52 0a 23 64 65 66 69 6e 65 20 43 SC_VER.#define C
0090: 28 65 6e 74 72 79 70 6f 69 6e 74 29 20 65 6e 74 (entrypoint) ent
00a0: 72 79 70 6f 69 6e 74 0a 23 64 65 66 69 6e 65 20 rypoint.#define
00b0: 4c 28 6c 61 62 65 6c 29 20 4c 23 23 6c 61 62 65 L(label) L##labe
00c0: 6c 0a 23 65 6c 73 65 0a 23 69 66 64 65 66 20 41 l.#else.#ifdef A
00d0: 53 4d 5f 55 4e 44 45 52 53 43 4f 52 45 0a 23 64 SM_UNDERSCORE.#d
00e0: 65 66 69 6e 65 20 43 28 65 6e 74 72 79 70 6f 69 efine C(entrypoi
00f0: 6e 74 29 20 5f 23 23 65 6e 74 72 79 70 6f 69 6e nt) _##entrypoin
0100: 74 0a 23 64 65 66 69 6e 65 20 4c 28 6c 61 62 65 t.#define L(labe
0110: 6c 29 20 4c 23 23 6c 61 62 65 6c 0a 23 65 6c 73 l) L##label.#els
0120: 65 0a 23 64 65 66 69 6e 65 20 43 28 65 6e 74 72 e.#define C(entr
0130: 79 70 6f 69 6e 74 29 20 65 6e 74 72 79 70 6f 69 ypoint) entrypoi
0140: 6e 74 0a 23 64 65 66 69 6e 65 20 4c 28 6c 61 62 nt.#define L(lab
0150: 65 6c 29 20 2e 4c 23 23 6c 61 62 65 6c 0a 23 65 el) .L##label.#e
0160: 6e 64 69 66 0a 23 65 6e 64 69 66 0a 0a 0a 0a 0a ndif.#endif.....
0170: 0a 23 69 66 64 65 66 20 5f 4d 53 43 5f 56 45 52 .#ifdef _MSC_VER
0180: 0a 23 64 65 66 69 6e 65 20 49 4e 54 45 4c 5f 53 .#define INTEL_S
0190: 59 4e 54 41 58 0a 23 65 6c 73 65 0a 0a 0a 0a 23 YNTAX.#else....#
01a0: 69 66 64 65 66 20 41 53 4d 5f 55 4e 44 45 52 53 ifdef ASM_UNDERS
01b0: 43 4f 52 45 0a 23 64 65 66 69 6e 65 20 42 53 44 CORE.#define BSD
01c0: 5f 53 59 4e 54 41 58 0a 23 65 6c 73 65 0a 23 64 _SYNTAX.#else.#d
01d0: 65 66 69 6e 65 20 45 4c 46 5f 53 59 4e 54 41 58 efine ELF_SYNTAX
01e0: 0a 23 65 6e 64 69 66 0a 23 65 6e 64 69 66 0a 0a .#endif.#endif..
01f0: 23 69 66 20 64 65 66 69 6e 65 64 20 28 42 53 44 #if defined (BSD
0200: 5f 53 59 4e 54 41 58 29 20 7c 7c 20 64 65 66 69 _SYNTAX) || defi
0210: 6e 65 64 20 28 45 4c 46 5f 53 59 4e 54 41 58 29 ned (ELF_SYNTAX)
0220: 0a 23 64 65 66 69 6e 65 20 52 28 72 29 20 25 72 .#define R(r) %r
0230: 0a 23 64 65 66 69 6e 65 20 4e 55 4d 28 6e 29 20 .#define NUM(n)
0240: 24 23 23 6e 0a 23 64 65 66 69 6e 65 20 41 44 44 $##n.#define ADD
0250: 52 28 61 29 20 24 23 23 61 0a 23 64 65 66 69 6e R(a) $##a.#defin
0260: 65 20 58 31 0a 23 64 65 66 69 6e 65 20 58 32 0a e X1.#define X2.
0270: 23 64 65 66 69 6e 65 20 58 34 0a 23 64 65 66 69 #define X4.#defi
0280: 6e 65 20 58 38 0a 23 64 65 66 69 6e 65 20 4d 45 ne X8.#define ME
0290: 4d 28 62 61 73 65 29 28 52 28 62 61 73 65 29 29 M(base)(R(base))
02a0: 0a 23 64 65 66 69 6e 65 20 4d 45 4d 5f 44 49 53 .#define MEM_DIS
02b0: 50 28 62 61 73 65 2c 64 69 73 70 6c 61 63 65 6d P(base,displacem
02c0: 65 6e 74 29 64 69 73 70 6c 61 63 65 6d 65 6e 74 ent)displacement
02d0: 28 52 28 62 61 73 65 29 29 0a 23 64 65 66 69 6e (R(base)).#defin
02e0: 65 20 4d 45 4d 5f 49 4e 44 45 58 28 62 61 73 65 e MEM_INDEX(base
02f0: 2c 69 6e 64 65 78 29 28 52 28 62 61 73 65 29 2c ,index)(R(base),
0300: 52 28 69 6e 64 65 78 29 29 0a 23 64 65 66 69 6e R(index)).#defin
0310: 65 20 4d 45 4d 5f 53 48 49 4e 44 45 58 28 62 61 e MEM_SHINDEX(ba
0320: 73 65 2c 69 6e 64 65 78 2c 73 69 7a 65 29 28 52 se,index,size)(R
0330: 28 62 61 73 65 29 2c 52 28 69 6e 64 65 78 29 2c (base),R(index),
0340: 73 69 7a 65 29 0a 23 64 65 66 69 6e 65 20 4d 45 size).#define ME
0350: 4d 5f 44 49 53 50 5f 53 48 49 4e 44 45 58 30 28 M_DISP_SHINDEX0(
0360: 64 69 73 70 6c 61 63 65 6d 65 6e 74 2c 69 6e 64 displacement,ind
0370: 65 78 2c 73 69 7a 65 29 64 69 73 70 6c 61 63 65 ex,size)displace
0380: 6d 65 6e 74 28 2c 52 28 69 6e 64 65 78 29 2c 73 ment(,R(index),s
0390: 69 7a 65 29 0a 23 64 65 66 69 6e 65 20 4d 45 4d ize).#define MEM
03a0: 5f 44 49 53 50 5f 53 48 49 4e 44 45 58 28 62 61 _DISP_SHINDEX(ba
03b0: 73 65 2c 64 69 73 70 6c 61 63 65 6d 65 6e 74 2c se,displacement,
03c0: 69 6e 64 65 78 2c 73 69 7a 65 29 64 69 73 70 6c index,size)displ
03d0: 61 63 65 6d 65 6e 74 28 52 28 62 61 73 65 29 2c acement(R(base),
03e0: 52 28 69 6e 64 65 78 29 2c 73 69 7a 65 29 0a 23 R(index),size).#
03f0: 64 65 66 69 6e 65 20 49 4e 44 49 52 28 76 61 6c define INDIR(val
0400: 75 65 29 2a 76 61 6c 75 65 0a 23 64 65 66 69 6e ue)*value.#defin
0410: 65 20 49 4e 53 4e 43 4f 4e 43 28 6d 6e 65 6d 6f e INSNCONC(mnemo
0420: 6e 69 63 2c 73 69 7a 65 5f 73 75 66 66 69 78 29 nic,size_suffix)
0430: 6d 6e 65 6d 6f 6e 69 63 23 23 73 69 7a 65 5f 73 mnemonic##size_s
0440: 75 66 66 69 78 0a 23 64 65 66 69 6e 65 20 49 4e uffix.#define IN
0450: 53 4e 31 28 6d 6e 65 6d 6f 6e 69 63 2c 73 69 7a SN1(mnemonic,siz
0460: 65 5f 73 75 66 66 69 78 2c 64 73 74 29 49 4e 53 e_suffix,dst)INS
0470: 4e 43 4f 4e 43 28 6d 6e 65 6d 6f 6e 69 63 2c 73 NCONC(mnemonic,s
0480: 69 7a 65 5f 73 75 66 66 69 78 29 20 64 73 74 0a ize_suffix) dst.
0490: 23 64 65 66 69 6e 65 20 49 4e 53 4e 32 28 6d 6e #define INSN2(mn
04a0: 65 6d 6f 6e 69 63 2c 73 69 7a 65 5f 73 75 66 66 emonic,size_suff
04b0: 69 78 2c 73 72 63 2c 64 73 74 29 49 4e 53 4e 43 ix,src,dst)INSNC
04c0: 4f 4e 43 28 6d 6e 65 6d 6f 6e 69 63 2c 73 69 7a ONC(mnemonic,siz
04d0: 65 5f 73 75 66 66 69 78 29 20 73 72 63 2c 64 73 e_suffix) src,ds
04e0: 74 0a 23 64 65 66 69 6e 65 20 49 4e 53 4e 32 4d t.#define INSN2M
04f0: 4f 56 58 28 6d 6e 65 6d 6f 6e 69 63 2c 73 69 7a OVX(mnemonic,siz
0500: 65 5f 73 75 66 66 69 78 2c 73 72 63 2c 64 73 74 e_suffix,src,dst
0510: 29 49 4e 53 4e 43 4f 4e 43 28 6d 6e 65 6d 6f 6e )INSNCONC(mnemon
0520: 69 63 2c 73 69 7a 65 5f 73 75 66 66 69 78 23 23 ic,size_suffix##
0530: 6c 29 20 73 72 63 2c 64 73 74 0a 23 69 66 20 64 l) src,dst.#if d
0540: 65 66 69 6e 65 64 28 42 53 44 5f 53 59 4e 54 41 efined(BSD_SYNTA
0550: 58 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 43 4f X) || defined(CO
0560: 48 45 52 45 4e 54 29 0a 23 64 65 66 69 6e 65 20 HERENT).#define
0570: 49 4e 53 4e 32 53 48 43 4c 28 6d 6e 65 6d 6f 6e INSN2SHCL(mnemon
0580: 69 63 2c 73 69 7a 65 5f 73 75 66 66 69 78 2c 73 ic,size_suffix,s
0590: 72 63 2c 64 73 74 29 49 4e 53 4e 43 4f 4e 43 28 rc,dst)INSNCONC(
05a0: 6d 6e 65 6d 6f 6e 69 63 2c 73 69 7a 65 5f 73 75 mnemonic,size_su
05b0: 66 66 69 78 29 20 52 28 63 6c 29 2c 73 72 63 2c ffix) R(cl),src,
05c0: 64 73 74 0a 23 64 65 66 69 6e 65 20 52 45 50 5a dst.#define REPZ
05d0: 20 72 65 70 65 20 3b 0a 23 65 6c 73 65 0a 23 64 repe ;.#else.#d
05e0: 65 66 69 6e 65 20 49 4e 53 4e 32 53 48 43 4c 28 efine INSN2SHCL(
05f0: 6d 6e 65 6d 6f 6e 69 63 2c 73 69 7a 65 5f 73 75 mnemonic,size_su
0600: 66 66 69 78 2c 73 72 63 2c 64 73 74 29 49 4e 53 ffix,src,dst)INS
0610: 4e 43 4f 4e 43 28 6d 6e 65 6d 6f 6e 69 63 2c 73 NCONC(mnemonic,s
0620: 69 7a 65 5f 73 75 66 66 69 78 29 20 73 72 63 2c ize_suffix) src,
0630: 64 73 74 0a 23 64 65 66 69 6e 65 20 52 45 50 5a dst.#define REPZ
0640: 20 72 65 70 7a 20 3b 0a 23 65 6e 64 69 66 0a 23 repz ;.#endif.#
0650: 64 65 66 69 6e 65 20 52 45 50 20 72 65 70 20 3b define REP rep ;
0660: 0a 23 69 66 20 64 65 66 69 6e 65 64 28 42 53 44 .#if defined(BSD
0670: 5f 53 59 4e 54 41 58 29 20 26 26 20 21 28 64 65 _SYNTAX) && !(de
0680: 66 69 6e 65 64 28 5f 5f 43 59 47 57 49 4e 33 32 fined(__CYGWIN32
0690: 5f 5f 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 5f __) || defined(_
06a0: 5f 4d 49 4e 47 57 33 32 5f 5f 29 29 0a 23 64 65 _MINGW32__)).#de
06b0: 66 69 6e 65 20 41 4c 49 47 4e 28 6c 6f 67 29 20 fine ALIGN(log)
06c0: 2e 61 6c 69 67 6e 20 6c 6f 67 2c 30 78 39 30 0a .align log,0x90.
06d0: 23 65 6e 64 69 66 0a 23 69 66 20 64 65 66 69 6e #endif.#if defin
06e0: 65 64 28 45 4c 46 5f 53 59 4e 54 41 58 29 20 7c ed(ELF_SYNTAX) |
06f0: 7c 20 64 65 66 69 6e 65 64 28 5f 5f 43 59 47 57 | defined(__CYGW
0700: 49 4e 33 32 5f 5f 29 20 7c 7c 20 64 65 66 69 6e IN32__) || defin
0710: 65 64 28 5f 5f 4d 49 4e 47 57 33 32 5f 5f 29 0a ed(__MINGW32__).
0720: 23 64 65 66 69 6e 65 20 41 4c 49 47 4e 28 6c 6f #define ALIGN(lo
0730: 67 29 20 2e 61 6c 69 67 6e 20 31 3c 3c 6c 6f 67 g) .align 1<<log
0740: 0a 23 65 6e 64 69 66 0a 23 65 6e 64 69 66 0a 23 .#endif.#endif.#
0750: 69 66 64 65 66 20 49 4e 54 45 4c 5f 53 59 4e 54 ifdef INTEL_SYNT
0760: 41 58 0a 23 64 65 66 69 6e 65 20 52 28 72 29 20 AX.#define R(r)
0770: 72 0a 23 64 65 66 69 6e 65 20 4e 55 4d 28 6e 29 r.#define NUM(n)
0780: 20 6e 0a 23 64 65 66 69 6e 65 20 41 44 44 52 28 n.#define ADDR(
0790: 61 29 20 4f 46 46 53 45 54 20 61 0a 23 64 65 66 a) OFFSET a.#def
07a0: 69 6e 65 20 58 31 20 42 59 54 45 20 50 54 52 0a ine X1 BYTE PTR.
07b0: 23 64 65 66 69 6e 65 20 58 32 20 57 4f 52 44 20 #define X2 WORD
07c0: 50 54 52 0a 23 64 65 66 69 6e 65 20 58 34 20 44 PTR.#define X4 D
07d0: 57 4f 52 44 20 50 54 52 0a 23 64 65 66 69 6e 65 WORD PTR.#define
07e0: 20 58 38 20 51 57 4f 52 44 20 50 54 52 0a 23 64 X8 QWORD PTR.#d
07f0: 65 66 69 6e 65 20 4d 45 4d 28 62 61 73 65 29 20 efine MEM(base)
0800: 5b 62 61 73 65 5d 0a 23 64 65 66 69 6e 65 20 4d [base].#define M
0810: 45 4d 5f 44 49 53 50 28 62 61 73 65 2c 64 69 73 EM_DISP(base,dis
0820: 70 6c 61 63 65 6d 65 6e 74 29 20 5b 62 61 73 65 placement) [base
0830: 2b 28 64 69 73 70 6c 61 63 65 6d 65 6e 74 29 5d +(displacement)]
0840: 0a 23 64 65 66 69 6e 65 20 4d 45 4d 5f 49 4e 44 .#define MEM_IND
0850: 45 58 28 62 61 73 65 2c 69 6e 64 65 78 29 20 5b EX(base,index) [
0860: 62 61 73 65 2b 69 6e 64 65 78 5d 0a 23 64 65 66 base+index].#def
0870: 69 6e 65 20 4d 45 4d 5f 53 48 49 4e 44 45 58 28 ine MEM_SHINDEX(
0880: 62 61 73 65 2c 69 6e 64 65 78 2c 73 69 7a 65 29 base,index,size)
0890: 20 5b 62 61 73 65 2b 69 6e 64 65 78 2a 73 69 7a [base+index*siz
08a0: 65 5d 0a 23 64 65 66 69 6e 65 20 4d 45 4d 5f 44 e].#define MEM_D
08b0: 49 53 50 5f 53 48 49 4e 44 45 58 30 28 64 69 73 ISP_SHINDEX0(dis
08c0: 70 6c 61 63 65 6d 65 6e 74 2c 69 6e 64 65 78 2c placement,index,
08d0: 73 69 7a 65 29 20 5b 28 64 69 73 70 6c 61 63 65 size) [(displace
08e0: 6d 65 6e 74 29 2b 69 6e 64 65 78 2a 73 69 7a 65 ment)+index*size
08f0: 5d 0a 23 64 65 66 69 6e 65 20 4d 45 4d 5f 44 49 ].#define MEM_DI
0900: 53 50 5f 53 48 49 4e 44 45 58 28 62 61 73 65 2c SP_SHINDEX(base,
0910: 64 69 73 70 6c 61 63 65 6d 65 6e 74 2c 69 6e 64 displacement,ind
0920: 65 78 2c 73 69 7a 65 29 20 5b 62 61 73 65 2b 28 ex,size) [base+(
0930: 64 69 73 70 6c 61 63 65 6d 65 6e 74 29 2b 69 6e displacement)+in
0940: 64 65 78 2a 73 69 7a 65 5d 0a 23 64 65 66 69 6e dex*size].#defin
0950: 65 20 49 4e 44 49 52 28 76 61 6c 75 65 29 76 61 e INDIR(value)va
0960: 6c 75 65 0a 23 64 65 66 69 6e 65 20 49 4e 53 4e lue.#define INSN
0970: 43 4f 4e 43 28 6d 6e 65 6d 6f 6e 69 63 2c 73 75 CONC(mnemonic,su
0980: 66 66 69 78 29 6d 6e 65 6d 6f 6e 69 63 23 23 73 ffix)mnemonic##s
0990: 75 66 66 69 78 0a 23 64 65 66 69 6e 65 20 49 4e uffix.#define IN
09a0: 53 4e 31 28 6d 6e 65 6d 6f 6e 69 63 2c 73 69 7a SN1(mnemonic,siz
09b0: 65 5f 73 75 66 66 69 78 2c 64 73 74 29 6d 6e 65 e_suffix,dst)mne
09c0: 6d 6f 6e 69 63 20 64 73 74 0a 23 64 65 66 69 6e monic dst.#defin
09d0: 65 20 49 4e 53 4e 32 28 6d 6e 65 6d 6f 6e 69 63 e INSN2(mnemonic
09e0: 2c 73 69 7a 65 5f 73 75 66 66 69 78 2c 73 72 63 ,size_suffix,src
09f0: 2c 64 73 74 29 6d 6e 65 6d 6f 6e 69 63 20 64 73 ,dst)mnemonic ds
0a00: 74 2c 73 72 63 0a 23 64 65 66 69 6e 65 20 49 4e t,src.#define IN
0a10: 53 4e 32 4d 4f 56 58 28 6d 6e 65 6d 6f 6e 69 63 SN2MOVX(mnemonic
0a20: 2c 73 69 7a 65 5f 73 75 66 66 69 78 2c 73 72 63 ,size_suffix,src
0a30: 2c 64 73 74 29 49 4e 53 4e 43 4f 4e 43 28 6d 6e ,dst)INSNCONC(mn
0a40: 65 6d 6f 6e 69 63 2c 78 29 20 64 73 74 2c 73 72 emonic,x) dst,sr
0a50: 63 0a 23 64 65 66 69 6e 65 20 49 4e 53 4e 32 53 c.#define INSN2S
0a60: 48 43 4c 28 6d 6e 65 6d 6f 6e 69 63 2c 73 69 7a HCL(mnemonic,siz
0a70: 65 5f 73 75 66 66 69 78 2c 73 72 63 2c 64 73 74 e_suffix,src,dst
0a80: 29 6d 6e 65 6d 6f 6e 69 63 20 64 73 74 2c 73 72 )mnemonic dst,sr
0a90: 63 2c 52 28 63 6c 29 0a 23 64 65 66 69 6e 65 20 c,R(cl).#define
0aa0: 52 45 50 5a 20 72 65 70 7a 0a 23 64 65 66 69 6e REPZ repz.#defin
0ab0: 65 20 52 45 50 20 72 65 70 0a 23 64 65 66 69 6e e REP rep.#defin
0ac0: 65 20 6d 6f 76 73 6c 20 20 6d 6f 76 73 20 52 28 e movsl movs R(
0ad0: 65 61 78 29 0a 23 64 65 66 69 6e 65 20 73 74 6f eax).#define sto
0ae0: 73 6c 20 20 73 74 6f 73 20 52 28 65 61 78 29 0a sl stos R(eax).
0af0: 23 64 65 66 69 6e 65 20 73 63 61 73 6c 20 20 73 #define scasl s
0b00: 63 61 73 20 52 28 65 61 78 29 0a 23 64 65 66 69 cas R(eax).#defi
0b10: 6e 65 20 63 6d 70 73 6c 20 20 63 6d 70 73 64 0a ne cmpsl cmpsd.
0b20: 23 69 66 64 65 66 20 5f 4d 53 43 5f 56 45 52 0a #ifdef _MSC_VER.
0b30: 0a 23 64 65 66 69 6e 65 20 41 4c 49 47 4e 28 6c .#define ALIGN(l
0b40: 6f 67 29 0a 23 65 6c 73 65 0a 23 64 65 66 69 6e og).#else.#defin
0b50: 65 20 41 4c 49 47 4e 28 6c 6f 67 29 20 2e 61 6c e ALIGN(log) .al
0b60: 69 67 6e 20 6c 6f 67 0a 23 65 6e 64 69 66 0a 23 ign log.#endif.#
0b70: 65 6e 64 69 66 0a 0a 23 69 66 64 65 66 20 5f 4d endif..#ifdef _M
0b80: 53 43 5f 56 45 52 0a 0a 23 64 65 66 69 6e 65 20 SC_VER..#define
0b90: 54 45 58 54 28 29 0a 23 65 6c 73 65 0a 23 64 65 TEXT().#else.#de
0ba0: 66 69 6e 65 20 54 45 58 54 28 29 20 2e 74 65 78 fine TEXT() .tex
0bb0: 74 0a 23 65 6e 64 69 66 0a 0a 23 69 66 64 65 66 t.#endif..#ifdef
0bc0: 20 5f 4d 53 43 5f 56 45 52 0a 23 64 65 66 69 6e _MSC_VER.#defin
0bd0: 65 20 47 4c 4f 42 4c 28 6e 61 6d 65 29 0a 23 65 e GLOBL(name).#e
0be0: 6c 73 65 0a 23 64 65 66 69 6e 65 20 47 4c 4f 42 lse.#define GLOB
0bf0: 4c 28 6e 61 6d 65 29 20 2e 67 6c 6f 62 6c 20 6e L(name) .globl n
0c00: 61 6d 65 0a 23 65 6e 64 69 66 0a 0a 0a 23 69 66 ame.#endif...#if
0c10: 64 65 66 20 5f 4d 53 43 5f 56 45 52 0a 23 64 65 def _MSC_VER.#de
0c20: 66 69 6e 65 20 44 45 43 4c 41 52 45 5f 46 55 4e fine DECLARE_FUN
0c30: 43 54 49 4f 4e 28 6e 61 6d 65 29 0a 23 65 6c 69 CTION(name).#eli
0c40: 66 20 64 65 66 69 6e 65 64 28 5f 5f 73 76 72 34 f defined(__svr4
0c50: 5f 5f 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 5f __) || defined(_
0c60: 5f 45 4c 46 5f 5f 29 20 7c 7c 20 64 65 66 69 6e _ELF__) || defin
0c70: 65 64 28 5f 5f 4e 65 74 42 53 44 5f 5f 29 20 7c ed(__NetBSD__) |
0c80: 7c 20 64 65 66 69 6e 65 64 28 5f 5f 46 72 65 65 | defined(__Free
0c90: 42 53 44 5f 5f 29 20 7c 7c 20 64 65 66 69 6e 65 BSD__) || define
0ca0: 64 28 5f 5f 4f 70 65 6e 42 53 44 5f 5f 29 20 7c d(__OpenBSD__) |
0cb0: 7c 20 64 65 66 69 6e 65 64 28 5f 5f 52 4f 53 45 | defined(__ROSE
0cc0: 5f 5f 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 5f __) || defined(_
0cd0: 53 45 51 55 45 4e 54 5f 29 20 7c 7c 20 64 65 66 SEQUENT_) || def
0ce0: 69 6e 65 64 28 44 47 55 58 29 20 7c 7c 20 64 65 ined(DGUX) || de
0cf0: 66 69 6e 65 64 28 5f 53 43 4f 5f 43 4f 46 46 29 fined(_SCO_COFF)
0d00: 20 7c 7c 20 64 65 66 69 6e 65 64 28 5f 53 43 4f || defined(_SCO
0d10: 5f 45 4c 46 29 0a 23 64 65 66 69 6e 65 20 44 45 _ELF).#define DE
0d20: 43 4c 41 52 45 5f 46 55 4e 43 54 49 4f 4e 28 6e CLARE_FUNCTION(n
0d30: 61 6d 65 29 20 2e 74 79 70 65 20 43 28 6e 61 6d ame) .type C(nam
0d40: 65 29 2c 40 66 75 6e 63 74 69 6f 6e 0a 23 65 6c e),@function.#el
0d50: 73 65 0a 23 64 65 66 69 6e 65 20 44 45 43 4c 41 se.#define DECLA
0d60: 52 45 5f 46 55 4e 43 54 49 4f 4e 28 6e 61 6d 65 RE_FUNCTION(name
0d70: 29 0a 23 65 6e 64 69 66 0a 0a 0a 23 69 66 64 65 ).#endif...#ifde
0d80: 66 20 5f 4d 53 43 5f 56 45 52 0a 0a 0a 0a 0a 23 f _MSC_VER.....#
0d90: 64 65 66 69 6e 65 20 46 55 4e 42 45 47 49 4e 28 define FUNBEGIN(
0da0: 6e 61 6d 65 29 20 5f 5f 64 65 63 6c 73 70 65 63 name) __declspec
0db0: 28 6e 61 6b 65 64 29 20 76 6f 69 64 20 6e 61 6d (naked) void nam
0dc0: 65 20 28 29 20 7b 20 5f 5f 61 73 6d 20 7b 0a 23 e () { __asm {.#
0dd0: 64 65 66 69 6e 65 20 46 55 4e 45 4e 44 28 29 20 define FUNEND()
0de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0df0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0e00: 20 20 20 20 20 7d 20 20 20 20 20 20 20 7d 0a 23 } }.#
0e10: 65 6c 73 65 0a 23 64 65 66 69 6e 65 20 46 55 4e else.#define FUN
0e20: 42 45 47 49 4e 28 6e 61 6d 65 29 20 43 28 6e 61 BEGIN(name) C(na
0e30: 6d 65 23 23 3a 29 0a 23 64 65 66 69 6e 65 20 46 me##:).#define F
0e40: 55 4e 45 4e 44 28 29 0a 23 65 6e 64 69 66 0a 0a UNEND().#endif..
0e50: 23 64 65 66 69 6e 65 20 5f 0a 0a 0a 0a 54 45 58 #define _....TEX
0e60: 54 28 29 0a 0a 0a 0a 0a 0a 0a T().......