Changes between Version 6 and Version 7 of InlineAsmExpressions
- Timestamp:
- 03/28/09 16:10:33 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
InlineAsmExpressions
v6 v7 1 1 = Inline Assembly Expressions = 2 Inline assembly expressions are useful when the D asm statement is not yet available, or when the limitations or it being a statement are problematic. Being an expression, extended inline expressions are able to return values! 3 4 Additionally issues regarding inlining of function containing inline asm are mostly not relevant for extended inline assembly expressions. 5 Effectively, extended inline assembly expression can be used to efficiently implement new intrinsics in the compiler. 6 2 7 To use them you must import the module containing the magic declarations: 3 8 {{{ 42 47 43 48 Common output constraints: 44 * '''=*m''' = memory output45 * '''=r''' = general purpose register output49 * '''=*m''' == memory output 50 * '''=r''' == general purpose register output 46 51 47 52 Common input constraints: 48 * '''*m''' = memory input49 * '''r''' = general purpose register input50 * '''i''' = immediate value input53 * '''*m''' == memory input 54 * '''r''' == general purpose register input 55 * '''i''' == immediate value input 51 56 52 57 Common clobbers: 53 * '''~{memory}''' = clobbers memory58 * '''~{memory}''' == clobbers memory 54 59 55 60 = X86-32 = 57 62 == X86-32 specific constraints == 58 63 59 * '''a''' or '''{ax}''' or '''{eax}''' = EAX60 * '''b''' or '''{bx}''' or '''{ebx}''' = EBX61 * '''c''' or '''{cx}''' or '''{ecx}''' = ECX62 * '''d''' or '''{dx}''' or '''{edx}''' = EDX63 * '''A''' = EAX:EDX64 * '''{st}''' = ST(0)65 * '''{st(N)}''' = ST(N)64 * '''a''' or '''{ax}''' or '''{eax}''' == EAX 65 * '''b''' or '''{bx}''' or '''{ebx}''' == EBX 66 * '''c''' or '''{cx}''' or '''{ecx}''' == ECX 67 * '''d''' or '''{dx}''' or '''{edx}''' == EDX 68 * '''A''' == EAX:EDX 69 * '''{st}''' == ST(0) 70 * '''{st(N)}''' == ST(N) 66 71 67 72 == Examples ==