initial commit: a mess of assembly code
[fmap.git] / x86_64_sse2_x87 / fasm / examples / x86 / include / ext / f16c.inc
blobef708d564fd3fdddf993a03e4da45cf078559b90
1 \r
2 include 'avx.inc'\r
3 \r
4 macro vcvtph2ps? dest*,src*\r
5         AVX.parse_operand @dest,dest\r
6         AVX.parse_operand @src,src\r
7         if @dest.type = 'mmreg' & (@src.type = 'mmreg' | @src.type = 'mem')\r
8                 if (@src.type = 'mmreg' & @src.size <> 16) | (@src.type = 'mem' & @src.size*2 <> @dest.size)\r
9                         err 'invalid operand size'\r
10                 end if\r
11                 AVX.store_instruction @dest.size,VEX_66_0F38_W0,13h,@src,@dest.rm\r
12         else\r
13                 err 'invalid combination of operands'\r
14         end if\r
15 end macro\r
17 macro vcvtps2ph? dest*,src*,round*\r
18         AVX.parse_operand @dest,dest\r
19         AVX.parse_operand @src,src\r
20         x86.parse_operand @aux,round\r
21         if (@dest.type = 'mmreg' | @dest.type = 'mem') & @src.type = 'mmreg' & @aux.type = 'imm'\r
22                 if (@dest.type = 'mmreg' & @dest.size <> 16) | (@dest.type = 'mem' & @dest.size*2 <> @src.size) | @aux.size and not 1\r
23                         err 'invalid operand size'\r
24                 end if\r
25                 AVX.store_instruction @src.size,VEX_66_0F3A_W0,1Dh,@dest,@src.rm,,1,@aux.imm\r
26         else\r
27                 err 'invalid combination of operands'\r
28         end if\r
29 end macro\r