From: "Max Erhard" Newsgroups: comp.os.msdos.djgpp References: <3714D43E DOT 30777234 AT vortex DOT ufrgs DOT br> Subject: Re: 3DNow! with DJGGP/GAS X-Newsreader: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Message-ID: <9F7R2.160$sE1.400@newsr2.u-net.net> NNTP-Posting-Host: 195.102.197.104 X-Complaints-To: news AT u-net DOT net X-Trace: newsr2.u-net.net 924124869 195.102.197.104 (Wed, 14 Apr 1999 22:21:09 BST) NNTP-Posting-Date: Wed, 14 Apr 1999 22:21:09 BST Organization: (Posted via) U-NET Internet Ltd. X-Real-Host: onafgrnq.h-arg.pbz Date: Wed, 14 Apr 1999 22:25:20 +0100 Lines: 50 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com what about using NASM instead ? Luciano R. M. Silva wrote in message <3714D43E DOT 30777234 AT vortex DOT ufrgs DOT br>... >Is there any version of GAS that supports 3DNow! opcodes... > >I started trying to add 3DNow! support to it but I dind't really >understood well the format of I386.h in the way I could implement 3DNow! >opcodes, which have two prefix bytes 0F0F then ModR/M byte and the real >opcode byte in the end... > >That was my first guess (before a discovered that the opcode byte (after >the 0xf0f0) must be really on the end) > >/* 3DNow! instructions */ > >{"femms", 0, 0x0f0e, _, NoModrm, { 0, 0, 0 } }, >{"pavgusb", 2, 0x0f0fbf, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pf2id", 2, 0x0f0f1d, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfacc", 2, 0x0f0fae, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfadd", 2, 0x0f0f9e, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfcmpeq", 2, 0x0f0fb0, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfcmpge", 2, 0x0f0f90, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfcmpgt", 2, 0x0f0fa0, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfmax", 2, 0x0f0fa4, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfmin", 2, 0x0f0f94, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfmul", 2, 0x0f0fb4, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfrcp", 2, 0x0f0f96, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfrcpit1", 2, 0x0f0fa6, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfrcpit2", 2, 0x0f0fb6, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfrsqit1", 2, 0x0f0fa7, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfrsqrt", 2, 0x0f0f97, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfsub", 2, 0x0f0f9a, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pfsubr", 2, 0x0f0faa, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pi2fd", 2, 0x0f0f0d, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"pmulhrw", 2, 0x0f0fb7, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } }, >{"prefetch", 1, 0x0f0d, 0, Modrm, { Mem, 0, 0 } }, >{"prefetchw", 1, 0x0f0d, 1, Modrm, { Mem, 0, 0 } }, > >As the new GAS from binu2.8.1 already supports MMX (and it's registers) >it's all almost done. >I can't want to make programs with DJGPP supporting 3DNow! >optimizations... >BTW even if a wrong table I couldn't even recompile GAS because of the >'sh' commands and other things I didn't understand in the makefiles. >Can anyone help me ? > >Thanks >