Message-ID: <3714D43E.30777234@vortex.ufrgs.br> Date: Wed, 14 Apr 1999 14:45:34 -0300 From: "Luciano R. M. Silva" X-Mailer: Mozilla 4.51 [en] (Win95; I) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: 3DNow! with DJGGP/GAS Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 45 NNTP-Posting-Host: irc.ez-poa.com.br To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com 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