You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(208) |
Jun
(43) |
Jul
|
Aug
(2) |
Sep
(17) |
Oct
|
Nov
(4) |
Dec
(9) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
(11) |
Mar
(3) |
Apr
(2) |
May
|
Jun
(3) |
Jul
(29) |
Aug
(29) |
Sep
(48) |
Oct
|
Nov
|
Dec
(5) |
2004 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2005 |
Jan
(12) |
Feb
(1) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
(4) |
Oct
(3) |
Nov
(1) |
Dec
(2) |
2006 |
Jan
(1) |
Feb
(2) |
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(21) |
Nov
(25) |
Dec
(16) |
2007 |
Jan
(26) |
Feb
(26) |
Mar
(18) |
Apr
(51) |
May
(45) |
Jun
(26) |
Jul
(6) |
Aug
(85) |
Sep
(161) |
Oct
(111) |
Nov
(83) |
Dec
(18) |
2008 |
Jan
(31) |
Feb
(27) |
Mar
|
Apr
(16) |
May
(142) |
Jun
(136) |
Jul
(51) |
Aug
(21) |
Sep
(47) |
Oct
(428) |
Nov
(19) |
Dec
(6) |
2009 |
Jan
(11) |
Feb
(37) |
Mar
(17) |
Apr
(15) |
May
(13) |
Jun
(61) |
Jul
(127) |
Aug
(15) |
Sep
(22) |
Oct
(28) |
Nov
(37) |
Dec
(10) |
2010 |
Jan
(18) |
Feb
(22) |
Mar
(10) |
Apr
(41) |
May
|
Jun
(48) |
Jul
(61) |
Aug
(54) |
Sep
(34) |
Oct
(15) |
Nov
(49) |
Dec
(11) |
2011 |
Jan
|
Feb
(24) |
Mar
(10) |
Apr
(9) |
May
|
Jun
(33) |
Jul
(41) |
Aug
(20) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(86) |
Mar
(12) |
Apr
|
May
(10) |
Jun
|
Jul
(9) |
Aug
(4) |
Sep
(11) |
Oct
(3) |
Nov
(3) |
Dec
(10) |
2013 |
Jan
(1) |
Feb
(23) |
Mar
(15) |
Apr
(7) |
May
(20) |
Jun
(3) |
Jul
(15) |
Aug
|
Sep
(29) |
Oct
(16) |
Nov
(69) |
Dec
(18) |
2014 |
Jan
|
Feb
(8) |
Mar
|
Apr
|
May
(16) |
Jun
(7) |
Jul
|
Aug
(5) |
Sep
(2) |
Oct
(4) |
Nov
(25) |
Dec
(8) |
2015 |
Jan
(6) |
Feb
(6) |
Mar
|
Apr
(1) |
May
(2) |
Jun
(1) |
Jul
(7) |
Aug
|
Sep
(2) |
Oct
(1) |
Nov
(6) |
Dec
|
2016 |
Jan
(12) |
Feb
(97) |
Mar
(57) |
Apr
(52) |
May
(33) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
(3) |
Nov
(3) |
Dec
|
2017 |
Jan
(4) |
Feb
|
Mar
(23) |
Apr
(5) |
May
|
Jun
(2) |
Jul
(3) |
Aug
(2) |
Sep
|
Oct
(6) |
Nov
(3) |
Dec
(3) |
2018 |
Jan
(4) |
Feb
(11) |
Mar
|
Apr
(1) |
May
(3) |
Jun
(6) |
Jul
|
Aug
(5) |
Sep
(5) |
Oct
(36) |
Nov
(128) |
Dec
(18) |
2019 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(24) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:36:18
|
Commit-ID: ef18237372df58b2ebf497693590218375c633d2 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=ef18237372df58b2ebf497693590218375c633d2 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:33:33 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:33:33 -0800 Add missing static declaration in rdoff/rdfdump.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- rdoff/rdfdump.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rdoff/rdfdump.c b/rdoff/rdfdump.c index 0e55c67..2e977ac 100644 --- a/rdoff/rdfdump.c +++ b/rdoff/rdfdump.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -49,7 +49,7 @@ FILE *infile; -void print_header(int32_t length, int rdf_version) +static void print_header(int32_t length, int rdf_version) { char buf[129], t, l, s, flags; uint8_t reclen; |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:31
|
Commit-ID: c9f04470794f9085ae4bd18a40c48e14202ad420 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=c9f04470794f9085ae4bd18a40c48e14202ad420 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:10:14 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing static declarations in rdoff/ldrdf.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- rdoff/ldrdf.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rdoff/ldrdf.c b/rdoff/ldrdf.c index 7c61d4c..7cb542c 100644 --- a/rdoff/ldrdf.c +++ b/rdoff/ldrdf.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -165,7 +165,7 @@ int errorcount = 0; /* determines main program exit status */ * * sets up segments 0, 1, and 2, the initial code data and bss segments */ -void initsegments() +static void initsegments(void) { nsegs = 3; outputseg[0].type = 1; @@ -190,7 +190,7 @@ void initsegments() * each segment it contains (including determining destination segments and * relocation factors for segments that are kept). */ -void loadmodule(const char *filename) +static void loadmodule(const char *filename) { if (options.verbose) printf("loading `%s'\n", filename); @@ -426,7 +426,7 @@ void processmodule(const char *filename, struct modulenode *mod) /* * Return 1 if a given module is in the list, 0 otherwise. */ -int lookformodule(const char *name) +static int lookformodule(const char *name) { struct modulenode *curr = modules; @@ -560,7 +560,7 @@ int symtab_get(const char *symbol, int *segment, int32_t *offset) * checks that a library can be opened and is in the correct format, * then adds it to the linked list of libraries. */ -void add_library(const char *name) +static void add_library(const char *name) { if (rdl_verify(name)) { rdl_perror("ldrdf", name); @@ -599,7 +599,7 @@ void add_library(const char *name) * returns 1 if any extra library modules are included, indicating that * another pass through the library list should be made (possibly). */ -int search_libraries() +static int search_libraries(void) { struct librarynode *cur; rdffile f; @@ -706,7 +706,7 @@ int search_libraries() * all the modules into a single output module, and then writes this to a * file. */ -void write_output(const char *filename) +static void write_output(const char *filename) { FILE *f; rdf_headerbuf *rdfheader; @@ -1153,7 +1153,7 @@ void write_output(const char *filename) * Main program */ -void usage() +static void usage(void) { printf("usage:\n" " ldrdf [options] object modules ... [-llibrary ...]\n" |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:30
|
Commit-ID: 4de7a764d5d38f8a62360179c0a99a179a98c08a Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=4de7a764d5d38f8a62360179c0a99a179a98c08a Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:13:49 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Run "make alldeps" to add missing header file dependencies Signed-off-by: H. Peter Anvin <hp...@zy...> --- Makefile.in | 11 ++++++----- Mkfiles/msvc.mak | 12 ++++++------ Mkfiles/netware.mak | 14 +++++++------- Mkfiles/openwcom.mak | 11 ++++++----- Mkfiles/owlinux.mak | 12 ++++++------ 5 files changed, 31 insertions(+), 29 deletions(-) diff --git a/Makefile.in b/Makefile.in index 8c102ce..ed5f89e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -304,7 +304,7 @@ alldeps: perlreq assemble.$(O): assemble.c assemble.h compiler.h config.h directiv.h disp8.h \ iflag.h iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h \ preproc.h regs.h tables.h tokens.h -crc64.$(O): crc64.c compiler.h config.h nasmlib.h +crc64.$(O): crc64.c compiler.h config.h hashtbl.h nasmlib.h directiv.$(O): directiv.c compiler.h config.h directiv.h hashtbl.h insnsi.h \ nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h disasm.$(O): disasm.c compiler.h config.h directiv.h disasm.h disp8.h \ @@ -333,7 +333,7 @@ insnsd.$(O): insnsd.c compiler.h config.h directiv.h iflag.h iflaggen.h \ tables.h tokens.h insnsn.$(O): insnsn.c compiler.h config.h insnsi.h tables.h labels.$(O): labels.c compiler.h config.h directiv.h hashtbl.h insnsi.h \ - nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h + labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h lib/snprintf.$(O): lib/snprintf.c compiler.h config.h nasmlib.h lib/strlcpy.$(O): lib/strlcpy.c compiler.h config.h lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h config.h nasmlib.h @@ -353,7 +353,8 @@ ndisasm.$(O): ndisasm.c compiler.h config.h directiv.h disasm.h iflag.h \ iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \ regs.h sync.h tables.h tokens.h output/nulldbg.$(O): output/nulldbg.c compiler.h config.h directiv.h \ - insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h + insnsi.h nasm.h nasmlib.h opflags.h output/outlib.h pptok.h preproc.h \ + regs.h tables.h output/nullout.$(O): output/nullout.c compiler.h config.h directiv.h \ insnsi.h nasm.h nasmlib.h opflags.h output/outlib.h pptok.h preproc.h \ regs.h tables.h @@ -374,7 +375,7 @@ output/outdbg.$(O): output/outdbg.c compiler.h config.h directiv.h insnsi.h \ tables.h output/outelf.$(O): output/outelf.c compiler.h config.h directiv.h insnsi.h \ nasm.h nasmlib.h opflags.h output/dwarf.h output/elf.h output/outelf.h \ - output/outform.h pptok.h preproc.h regs.h tables.h + output/outform.h pptok.h preproc.h rbtree.h regs.h saa.h tables.h output/outelf32.$(O): output/outelf32.c compiler.h config.h directiv.h \ eval.h insnsi.h nasm.h nasmlib.h opflags.h output/dwarf.h output/elf.h \ output/outelf.h output/outform.h output/outlib.h output/stabs.h pptok.h \ @@ -435,6 +436,6 @@ strfunc.$(O): strfunc.c compiler.h config.h directiv.h insnsi.h nasm.h \ sync.$(O): sync.c compiler.h config.h nasmlib.h sync.h tokhash.$(O): tokhash.c compiler.h config.h directiv.h hashtbl.h iflag.h \ iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \ - regs.h tables.h tokens.h + regs.h stdscan.h tables.h tokens.h ver.$(O): ver.c compiler.h config.h directiv.h insnsi.h nasm.h nasmlib.h \ opflags.h pptok.h preproc.h regs.h tables.h version.h diff --git a/Mkfiles/msvc.mak b/Mkfiles/msvc.mak index 30c950c..b743412 100644 --- a/Mkfiles/msvc.mak +++ b/Mkfiles/msvc.mak @@ -225,7 +225,7 @@ everything: all doc rdf assemble.$(O): assemble.c assemble.h compiler.h directiv.h disp8.h iflag.h \ iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \ regs.h tables.h tokens.h -crc64.$(O): crc64.c compiler.h nasmlib.h +crc64.$(O): crc64.c compiler.h hashtbl.h nasmlib.h directiv.$(O): directiv.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \ nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h disasm.$(O): disasm.c compiler.h directiv.h disasm.h disp8.h iflag.h \ @@ -253,8 +253,8 @@ insnsd.$(O): insnsd.c compiler.h directiv.h iflag.h iflaggen.h insns.h \ insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \ tokens.h insnsn.$(O): insnsn.c compiler.h insnsi.h tables.h -labels.$(O): labels.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \ - nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h +labels.$(O): labels.c compiler.h directiv.h hashtbl.h insnsi.h labels.h \ + nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h lib/snprintf.$(O): lib/snprintf.c compiler.h nasmlib.h lib/strlcpy.$(O): lib/strlcpy.c compiler.h lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h nasmlib.h @@ -273,7 +273,7 @@ ndisasm.$(O): ndisasm.c compiler.h directiv.h disasm.h iflag.h iflaggen.h \ insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h sync.h \ tables.h tokens.h output/nulldbg.$(O): output/nulldbg.c compiler.h directiv.h insnsi.h nasm.h \ - nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h + nasmlib.h opflags.h output/outlib.h pptok.h preproc.h regs.h tables.h output/nullout.$(O): output/nullout.c compiler.h directiv.h insnsi.h nasm.h \ nasmlib.h opflags.h output/outlib.h pptok.h preproc.h regs.h tables.h output/outaout.$(O): output/outaout.c compiler.h directiv.h eval.h insnsi.h \ @@ -292,7 +292,7 @@ output/outdbg.$(O): output/outdbg.c compiler.h directiv.h insnsi.h nasm.h \ nasmlib.h opflags.h output/outform.h pptok.h preproc.h regs.h tables.h output/outelf.$(O): output/outelf.c compiler.h directiv.h insnsi.h nasm.h \ nasmlib.h opflags.h output/dwarf.h output/elf.h output/outelf.h \ - output/outform.h pptok.h preproc.h regs.h tables.h + output/outform.h pptok.h preproc.h rbtree.h regs.h saa.h tables.h output/outelf32.$(O): output/outelf32.c compiler.h directiv.h eval.h \ insnsi.h nasm.h nasmlib.h opflags.h output/dwarf.h output/elf.h \ output/outelf.h output/outform.h output/outlib.h output/stabs.h pptok.h \ @@ -350,6 +350,6 @@ strfunc.$(O): strfunc.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h \ sync.$(O): sync.c compiler.h nasmlib.h sync.h tokhash.$(O): tokhash.c compiler.h directiv.h hashtbl.h iflag.h iflaggen.h \ insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \ - tables.h tokens.h + stdscan.h tables.h tokens.h ver.$(O): ver.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h opflags.h \ pptok.h preproc.h regs.h tables.h version.h diff --git a/Mkfiles/netware.mak b/Mkfiles/netware.mak index 256dab4..0bc23e5 100644 --- a/Mkfiles/netware.mak +++ b/Mkfiles/netware.mak @@ -134,7 +134,7 @@ $(OBJDIR)/version.mak: $(PROOT)/version $(PROOT)/version.pl $(OBJDIR) assemble.o: assemble.c assemble.h compiler.h config.h directiv.h disp8.h \ iflag.h iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h \ preproc.h regs.h tables.h tokens.h -crc64.o: crc64.c compiler.h config.h nasmlib.h +crc64.o: crc64.c compiler.h config.h hashtbl.h nasmlib.h directiv.o: directiv.c compiler.h config.h directiv.h hashtbl.h insnsi.h \ nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h disasm.o: disasm.c compiler.h config.h directiv.h disasm.h disp8.h iflag.h \ @@ -162,8 +162,8 @@ insnsd.o: insnsd.c compiler.h config.h directiv.h iflag.h iflaggen.h insns.h \ insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \ tokens.h insnsn.o: insnsn.c compiler.h config.h insnsi.h tables.h -labels.o: labels.c compiler.h config.h directiv.h hashtbl.h insnsi.h nasm.h \ - nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h +labels.o: labels.c compiler.h config.h directiv.h hashtbl.h insnsi.h \ + labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h snprintf.o: snprintf.c compiler.h config.h nasmlib.h strlcpy.o: strlcpy.c compiler.h config.h vsnprintf.o: vsnprintf.c compiler.h config.h nasmlib.h @@ -182,7 +182,7 @@ ndisasm.o: ndisasm.c compiler.h config.h directiv.h disasm.h iflag.h \ iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \ regs.h sync.h tables.h tokens.h nulldbg.o: nulldbg.c compiler.h config.h directiv.h insnsi.h nasm.h \ - nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h + nasmlib.h opflags.h outlib.h pptok.h preproc.h regs.h tables.h nullout.o: nullout.c compiler.h config.h directiv.h insnsi.h nasm.h \ nasmlib.h opflags.h outlib.h pptok.h preproc.h regs.h tables.h outaout.o: outaout.c compiler.h config.h directiv.h eval.h insnsi.h nasm.h \ @@ -200,8 +200,8 @@ outcoff.o: outcoff.c compiler.h config.h directiv.h eval.h insnsi.h nasm.h \ outdbg.o: outdbg.c compiler.h config.h directiv.h insnsi.h nasm.h nasmlib.h \ opflags.h outform.h pptok.h preproc.h regs.h tables.h outelf.o: outelf.c compiler.h config.h directiv.h insnsi.h nasm.h nasmlib.h \ - opflags.h dwarf.h elf.h outelf.h outform.h pptok.h preproc.h regs.h \ - tables.h + opflags.h dwarf.h elf.h outelf.h outform.h pptok.h preproc.h rbtree.h \ + regs.h saa.h tables.h outelf32.o: outelf32.c compiler.h config.h directiv.h eval.h insnsi.h nasm.h \ nasmlib.h opflags.h dwarf.h elf.h outelf.h outform.h outlib.h stabs.h \ pptok.h preproc.h raa.h rbtree.h regs.h saa.h stdscan.h tables.h @@ -255,6 +255,6 @@ strfunc.o: strfunc.c compiler.h config.h directiv.h insnsi.h nasm.h \ sync.o: sync.c compiler.h config.h nasmlib.h sync.h tokhash.o: tokhash.c compiler.h config.h directiv.h hashtbl.h iflag.h \ iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \ - regs.h tables.h tokens.h + regs.h stdscan.h tables.h tokens.h ver.o: ver.c compiler.h config.h directiv.h insnsi.h nasm.h nasmlib.h \ opflags.h pptok.h preproc.h regs.h tables.h version.h diff --git a/Mkfiles/openwcom.mak b/Mkfiles/openwcom.mak index 7732be0..2d85eba 100644 --- a/Mkfiles/openwcom.mak +++ b/Mkfiles/openwcom.mak @@ -271,7 +271,7 @@ alldeps: perlreq .SYMBOLIC assemble.$(O): assemble.c assemble.h compiler.h config.h directiv.h disp8.h & iflag.h iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h & preproc.h regs.h tables.h tokens.h -crc64.$(O): crc64.c compiler.h config.h nasmlib.h +crc64.$(O): crc64.c compiler.h config.h hashtbl.h nasmlib.h directiv.$(O): directiv.c compiler.h config.h directiv.h hashtbl.h insnsi.h & nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h disasm.$(O): disasm.c compiler.h config.h directiv.h disasm.h disp8.h & @@ -300,7 +300,7 @@ insnsd.$(O): insnsd.c compiler.h config.h directiv.h iflag.h iflaggen.h & tables.h tokens.h insnsn.$(O): insnsn.c compiler.h config.h insnsi.h tables.h labels.$(O): labels.c compiler.h config.h directiv.h hashtbl.h insnsi.h & - nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h + labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h lib/snprintf.$(O): lib/snprintf.c compiler.h config.h nasmlib.h lib/strlcpy.$(O): lib/strlcpy.c compiler.h config.h lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h config.h nasmlib.h @@ -320,7 +320,8 @@ ndisasm.$(O): ndisasm.c compiler.h config.h directiv.h disasm.h iflag.h & iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h & regs.h sync.h tables.h tokens.h output/nulldbg.$(O): output/nulldbg.c compiler.h config.h directiv.h & - insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h + insnsi.h nasm.h nasmlib.h opflags.h output/outlib.h pptok.h preproc.h & + regs.h tables.h output/nullout.$(O): output/nullout.c compiler.h config.h directiv.h & insnsi.h nasm.h nasmlib.h opflags.h output/outlib.h pptok.h preproc.h & regs.h tables.h @@ -341,7 +342,7 @@ output/outdbg.$(O): output/outdbg.c compiler.h config.h directiv.h insnsi.h & tables.h output/outelf.$(O): output/outelf.c compiler.h config.h directiv.h insnsi.h & nasm.h nasmlib.h opflags.h output/dwarf.h output/elf.h output/outelf.h & - output/outform.h pptok.h preproc.h regs.h tables.h + output/outform.h pptok.h preproc.h rbtree.h regs.h saa.h tables.h output/outelf32.$(O): output/outelf32.c compiler.h config.h directiv.h & eval.h insnsi.h nasm.h nasmlib.h opflags.h output/dwarf.h output/elf.h & output/outelf.h output/outform.h output/outlib.h output/stabs.h pptok.h & @@ -402,6 +403,6 @@ strfunc.$(O): strfunc.c compiler.h config.h directiv.h insnsi.h nasm.h & sync.$(O): sync.c compiler.h config.h nasmlib.h sync.h tokhash.$(O): tokhash.c compiler.h config.h directiv.h hashtbl.h iflag.h & iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h & - regs.h tables.h tokens.h + regs.h stdscan.h tables.h tokens.h ver.$(O): ver.c compiler.h config.h directiv.h insnsi.h nasm.h nasmlib.h & opflags.h pptok.h preproc.h regs.h tables.h version.h diff --git a/Mkfiles/owlinux.mak b/Mkfiles/owlinux.mak index a9137c3..85ad1b8 100644 --- a/Mkfiles/owlinux.mak +++ b/Mkfiles/owlinux.mak @@ -240,7 +240,7 @@ everything: all doc rdf assemble.$(O): assemble.c assemble.h compiler.h directiv.h disp8.h iflag.h \ iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \ regs.h tables.h tokens.h -crc64.$(O): crc64.c compiler.h nasmlib.h +crc64.$(O): crc64.c compiler.h hashtbl.h nasmlib.h directiv.$(O): directiv.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \ nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h disasm.$(O): disasm.c compiler.h directiv.h disasm.h disp8.h iflag.h \ @@ -268,8 +268,8 @@ insnsd.$(O): insnsd.c compiler.h directiv.h iflag.h iflaggen.h insns.h \ insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \ tokens.h insnsn.$(O): insnsn.c compiler.h insnsi.h tables.h -labels.$(O): labels.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \ - nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h +labels.$(O): labels.c compiler.h directiv.h hashtbl.h insnsi.h labels.h \ + nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h lib/snprintf.$(O): lib/snprintf.c compiler.h nasmlib.h lib/strlcpy.$(O): lib/strlcpy.c compiler.h lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h nasmlib.h @@ -288,7 +288,7 @@ ndisasm.$(O): ndisasm.c compiler.h directiv.h disasm.h iflag.h iflaggen.h \ insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h sync.h \ tables.h tokens.h output/nulldbg.$(O): output/nulldbg.c compiler.h directiv.h insnsi.h nasm.h \ - nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h + nasmlib.h opflags.h output/outlib.h pptok.h preproc.h regs.h tables.h output/nullout.$(O): output/nullout.c compiler.h directiv.h insnsi.h nasm.h \ nasmlib.h opflags.h output/outlib.h pptok.h preproc.h regs.h tables.h output/outaout.$(O): output/outaout.c compiler.h directiv.h eval.h insnsi.h \ @@ -307,7 +307,7 @@ output/outdbg.$(O): output/outdbg.c compiler.h directiv.h insnsi.h nasm.h \ nasmlib.h opflags.h output/outform.h pptok.h preproc.h regs.h tables.h output/outelf.$(O): output/outelf.c compiler.h directiv.h insnsi.h nasm.h \ nasmlib.h opflags.h output/dwarf.h output/elf.h output/outelf.h \ - output/outform.h pptok.h preproc.h regs.h tables.h + output/outform.h pptok.h preproc.h rbtree.h regs.h saa.h tables.h output/outelf32.$(O): output/outelf32.c compiler.h directiv.h eval.h \ insnsi.h nasm.h nasmlib.h opflags.h output/dwarf.h output/elf.h \ output/outelf.h output/outform.h output/outlib.h output/stabs.h pptok.h \ @@ -365,6 +365,6 @@ strfunc.$(O): strfunc.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h \ sync.$(O): sync.c compiler.h nasmlib.h sync.h tokhash.$(O): tokhash.c compiler.h directiv.h hashtbl.h iflag.h iflaggen.h \ insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \ - tables.h tokens.h + stdscan.h tables.h tokens.h ver.$(O): ver.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h opflags.h \ pptok.h preproc.h regs.h tables.h version.h |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:28
|
Commit-ID: 236f7949e44434f19a3f72fa4650362f612da735 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=236f7949e44434f19a3f72fa4650362f612da735 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:14:14 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 configure.in: promote some C warnings to errors Promote some C warnings to errors, especially ones relating to missing prototypes. Signed-off-by: H. Peter Anvin <hp...@zy...> --- configure.in | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/configure.in b/configure.in index 8571973..97e5c88 100644 --- a/configure.in +++ b/configure.in @@ -65,6 +65,17 @@ PA_ADD_CFLAGS([-W]) PA_ADD_CFLAGS([-Wall]) PA_ADD_CFLAGS([-std=c99]) PA_ADD_CFLAGS([-pedantic]) +PA_ADD_CFLAGS([-Werror=implicit]) +PA_ADD_CFLAGS([-Werror=missing-braces]) +PA_ADD_CFLAGS([-Werror=return-type]) +PA_ADD_CFLAGS([-Werror=trigraphs]) +PA_ADD_CFLAGS([-Werror=trigraphs]) +PA_ADD_CFLAGS([-Werror=pointer-arith]) +PA_ADD_CFLAGS([-Werror=strict-prototypes]) +PA_ADD_CFLAGS([-Werror=missing-prototypes]) +PA_ADD_CFLAGS([-Werror=missing-declarations]) +PA_ADD_CFLAGS([-Werror=comment]) +PA_ADD_CFLAGS([-Werror=vla]) dnl Look for programs... AC_CHECK_PROGS(NROFF, nroff, false) |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:27
|
Commit-ID: 2bbe917ede194f89caca7ed9c1ed00a950c7b9c0 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=2bbe917ede194f89caca7ed9c1ed00a950c7b9c0 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:10:53 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing prototype in tokhash.c (from tokhash.pl) Signed-off-by: H. Peter Anvin <hp...@zy...> --- tokhash.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tokhash.pl b/tokhash.pl index 60bd258..509520b 100755 --- a/tokhash.pl +++ b/tokhash.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl ## -------------------------------------------------------------------------- ## -## Copyright 1996-2009 The NASM Authors - All Rights Reserved +## Copyright 1996-2014 The NASM Authors - All Rights Reserved ## See the file AUTHORS included with the NASM distribution for ## the specific copyright holders. ## @@ -211,6 +211,7 @@ if ($output eq 'h') { print "#include \"nasm.h\"\n"; print "#include \"hashtbl.h\"\n"; print "#include \"insns.h\"\n"; + print "#include \"stdscan.h\"\n"; print "\n"; # These somewhat odd sizes and ordering thereof are due to the |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:25
|
Commit-ID: c664583b099be33ff544c2edd77d54ca70462746 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=c664583b099be33ff544c2edd77d54ca70462746 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:07:10 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing header file in labels.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- labels.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/labels.c b/labels.c index 98408b4..e14fe47 100644 --- a/labels.c +++ b/labels.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -45,6 +45,7 @@ #include "nasm.h" #include "nasmlib.h" #include "hashtbl.h" +#include "labels.h" /* * A local label is one that begins with exactly one period. Things |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:25
|
Commit-ID: d4184a0e0faa4e070fe93911c3942c9ab8ee7b50 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=d4184a0e0faa4e070fe93911c3942c9ab8ee7b50 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:09:44 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing static declarations in output/outobj.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- output/outobj.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/output/outobj.c b/output/outobj.c index 225ea4f..6b173eb 100644 --- a/output/outobj.c +++ b/output/outobj.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2013 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -2404,7 +2404,7 @@ static void obj_fwrite(ObjRecord * orp) extern macros_t obj_stdmac[]; -void dbgbi_init(void) +static void dbgbi_init(void) { fnhead = NULL; fntail = &fnhead; |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:25
|
Commit-ID: aa433d738cd13178db926362d13a2560c7b1bf75 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=aa433d738cd13178db926362d13a2560c7b1bf75 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:08:06 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing static declaration in output/outcoff.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- output/outcoff.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/output/outcoff.c b/output/outcoff.c index 5af063b..d813f5d 100644 --- a/output/outcoff.c +++ b/output/outcoff.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2013 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -737,7 +737,7 @@ typedef struct tagString { static STRING *Exports = NULL; static struct Section *directive_sec; -void AddExport(char *name) +static void AddExport(char *name) { STRING *rvp = Exports, *newS; |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:24
|
Commit-ID: 443b8e9b5f97c1d2bb34430207e50fd19cb4aa40 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=443b8e9b5f97c1d2bb34430207e50fd19cb4aa40 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:08:41 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing static declaration in output/outieee.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- output/outieee.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/outieee.c b/output/outieee.c index 5377ec6..56060db 100644 --- a/output/outieee.c +++ b/output/outieee.c @@ -1299,7 +1299,7 @@ static void ieee_unqualified_name(char *dest, char *source) } else strcpy(dest, source); } -void dbgls_init(void) +static void dbgls_init(void) { int tempint; |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:24
|
Commit-ID: c0c67c67c865c71f6da2c8a796d7c6702988895a Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=c0c67c67c865c71f6da2c8a796d7c6702988895a Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:07:43 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing header file in output/nulldbg.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- output/nulldbg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/output/nulldbg.c b/output/nulldbg.c index c7bace1..581a1c5 100644 --- a/output/nulldbg.c +++ b/output/nulldbg.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -33,6 +33,7 @@ #include "nasm.h" #include "nasmlib.h" +#include "output/outlib.h" void null_debug_init(void) { |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:24
|
Commit-ID: a725d0afd0e713dc29c64a61b283dd317f0ec199 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=a725d0afd0e713dc29c64a61b283dd317f0ec199 Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:06:55 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing header file in crc64.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- crc64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crc64.c b/crc64.c index d93ea0c..338e0be 100644 --- a/crc64.c +++ b/crc64.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -33,6 +33,7 @@ #include "compiler.h" #include "nasmlib.h" +#include "hashtbl.h" static const uint64_t crc64_tab[256] = { UINT64_C(0x0000000000000000), UINT64_C(0x7ad870c830358979), |
From: nasm-bot f. H. P. A. <hp...@zy...> - 2014-11-25 20:18:24
|
Commit-ID: 895ac7e53ff57e8863679c92fa3cfa10c69213bc Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=895ac7e53ff57e8863679c92fa3cfa10c69213bc Author: H. Peter Anvin <hp...@zy...> AuthorDate: Tue, 25 Nov 2014 12:09:19 -0800 Committer: H. Peter Anvin <hp...@zy...> CommitDate: Tue, 25 Nov 2014 12:14:52 -0800 Add missing static declaration in output/outdbg.c Signed-off-by: H. Peter Anvin <hp...@zy...> --- output/outdbg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/outdbg.c b/output/outdbg.c index bf14558..77dcd7f 100644 --- a/output/outdbg.c +++ b/output/outdbg.c @@ -206,7 +206,7 @@ static int dbg_set_info(enum geninfo type, char **val) char *types[] = { "unknown", "label", "byte", "word", "dword", "float", "qword", "tbyte" }; -void dbgdbg_init(void) +static void dbgdbg_init(void) { fprintf(ofile, " With debug info\n"); } |
From: nasm-bot f. J. K. <jam...@li...> - 2014-11-25 17:51:32
|
Commit-ID: 46d606e1242c4b1bf0de75727d58cf05d61d2f05 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=46d606e1242c4b1bf0de75727d58cf05d61d2f05 Author: Jim Kukunas <jam...@li...> AuthorDate: Thu, 20 Nov 2014 16:39:16 -0800 Committer: Jim Kukunas <jam...@li...> CommitDate: Tue, 25 Nov 2014 09:43:11 -0800 msvc.mak: Add support for generating PDBs for debugging Adds a new Makefile variable DEBUG that controls whether a symbol file (.PDB) is created for the executables, e. g., nmake -f Mkfiles\msvc.mak DEBUG=1 Signed-off-by: Jim Kukunas <jam...@li...> --- Mkfiles/msvc.mak | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Mkfiles/msvc.mak b/Mkfiles/msvc.mak index f1839a2..30c950c 100644 --- a/Mkfiles/msvc.mak +++ b/Mkfiles/msvc.mak @@ -14,12 +14,20 @@ exec_prefix = $(prefix) bindir = $(prefix)/bin mandir = $(prefix)/man +!IF "$(DEBUG)" == "1" +CFLAGS = /Od /Zi +LDFLAGS = /DEBUG +!ELSE +CFLAGS = /O2 /Ox /Oy +!ENDIF + CC = cl -CFLAGS = /O2 /Ox /Oy /W2 +LD = link +CFLAGS = $(CFLAGS) /W2 BUILD_CFLAGS = $(CFLAGS) /I$(srcdir)/inttypes INTERNAL_CFLAGS = /I$(srcdir) /I. /DHAVE__SNPRINTF /DHAVE__VSNPRINTF ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS) -LDFLAGS = +LDFLAGS = $(LDFLAGS) /SUBSYSTEM:CONSOLE LIBS = PERL = perl -I$(srcdir)/perllib @@ -64,10 +72,10 @@ all: nasm$(X) ndisasm$(X) rem cd rdoff && $(MAKE) all nasm$(X): $(NASM) - $(CC) $(LDFLAGS) /Fenasm$(X) $(NASM) $(LIBS) + $(LD) $(LDFLAGS) /OUT:nasm$(X) $(NASM) $(LIBS) ndisasm$(X): $(NDISASM) - $(CC) $(LDFLAGS) /Fendisasm$(X) $(NDISASM) $(LIBS) + $(LD) $(LDFLAGS) /OUT:ndisasm$(X) $(NDISASM) $(LIBS) # These source files are automagically generated from a single # instruction-table file by a Perl script. They're distributed, |
From: nasm-bot f. J. K. <jam...@li...> - 2014-11-25 17:51:29
|
Commit-ID: db7d8685c4262c8f57b6c94894509c9a0dc67a9b Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=db7d8685c4262c8f57b6c94894509c9a0dc67a9b Author: Jim Kukunas <jam...@li...> AuthorDate: Mon, 24 Nov 2014 14:21:43 -0800 Committer: Jim Kukunas <jam...@li...> CommitDate: Tue, 25 Nov 2014 09:44:00 -0800 nasmlib: Fix typo in fwriteint32_t() Signed-off-by: Jim Kukunas <jam...@li...> --- nasmlib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nasmlib.c b/nasmlib.c index b16d1f3..ecd6d8d 100644 --- a/nasmlib.c +++ b/nasmlib.c @@ -424,7 +424,7 @@ void fwriteint32_t(uint32_t data, FILE * fp) { char buffer[4], *p = buffer; WRITELONG(p, data); - nasm_write(buffer, 1, 4, fp); + nasm_write(buffer, 4, fp); } void fwriteint64_t(uint64_t data, FILE * fp) |
From: nasm-bot f. C. G. <gor...@gm...> - 2014-11-24 20:20:32
|
Commit-ID: a45febd767642dafc017a3210f357c7a2139e475 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=a45febd767642dafc017a3210f357c7a2139e475 Author: Cyrill Gorcunov <gor...@gm...> AuthorDate: Sun, 23 Nov 2014 18:26:54 +0300 Committer: Cyrill Gorcunov <gor...@gm...> CommitDate: Sun, 23 Nov 2014 18:26:54 +0300 quote: Fix returning out of string pointer In case if string is a single grave accent we return the pointer to uninitialized space. http://bugzilla.nasm.us/show_bug.cgi?id=3392292 Signed-off-by: Cyrill Gorcunov <gor...@gm...> --- quote.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/quote.c b/quote.c index fe1c97d..b1e9dba 100644 --- a/quote.c +++ b/quote.c @@ -441,8 +441,10 @@ char *nasm_skip_string(char *str) return p; } else if (bq == '`') { /* `...` string */ - p = str+1; state = st_start; + p = str+1; + if (!*p) + return p; while ((c = *p++)) { switch (state) { |
From: nasm-bot f. C. G. <gor...@gm...> - 2014-11-22 15:24:31
|
Commit-ID: 5c0b082c9289d78577168ad7eaf13b56c58deb5c Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=5c0b082c9289d78577168ad7eaf13b56c58deb5c Author: Cyrill Gorcunov <gor...@gm...> AuthorDate: Sat, 22 Nov 2014 18:20:29 +0300 Committer: Cyrill Gorcunov <gor...@gm...> CommitDate: Sat, 22 Nov 2014 18:20:29 +0300 parser: Check for eval error before memory reference parsing If there is an error in evaluate() happened then @value is NULL so that we better fail with error report instead of trying processing it. http://bugzilla.nasm.us/show_bug.cgi?id=3392290 Signed-off-by: Cyrill Gorcunov <gor...@gm...> --- parser.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/parser.c b/parser.c index 123da48..423d785 100644 --- a/parser.c +++ b/parser.c @@ -900,6 +900,8 @@ is_expression: value = evaluate(stdscan, NULL, &tokval, &op->opflags, critical, nasm_error, &hints); i = tokval.t_type; + if (!value) + goto fail; if (parse_mref(&o2, value)) goto fail; |
From: nasm-bot f. J. K. <jam...@li...> - 2014-11-10 19:54:34
|
Commit-ID: e184c0b0cb8c886428975a406f20893696651ede Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=e184c0b0cb8c886428975a406f20893696651ede Author: Jim Kukunas <jam...@li...> AuthorDate: Mon, 10 Nov 2014 10:59:26 -0800 Committer: Jim Kukunas <jam...@li...> CommitDate: Mon, 10 Nov 2014 11:45:10 -0800 rdoff: don't check fwritezero() return value. Since e76a6260556d76b756ef56cdd4ca5b41e61259bc, the return type of fwritezero() is void. Signed-off-by: Jim Kukunas <jam...@li...> --- rdoff/rdf2bin.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rdoff/rdf2bin.c b/rdoff/rdf2bin.c index 72e5104..1e33075 100644 --- a/rdoff/rdf2bin.c +++ b/rdoff/rdf2bin.c @@ -86,8 +86,7 @@ static int output_bin(FILE *f, void *data, uint32_t bytes, uint32_t where) } pad = (where-origin) - offset; - if (fwritezero(pad, f) != pad) - return -1; + fwritezero(pad, f); offset += pad; if (fwrite(data, 1, bytes, f) != bytes) |
From: nasm-bot f. H. P. A. <hp...@li...> - 2014-10-21 19:54:27
|
Commit-ID: e76a6260556d76b756ef56cdd4ca5b41e61259bc Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=e76a6260556d76b756ef56cdd4ca5b41e61259bc Author: H. Peter Anvin <hp...@li...> AuthorDate: Tue, 21 Oct 2014 12:50:47 -0700 Committer: H. Peter Anvin <hp...@li...> CommitDate: Tue, 21 Oct 2014 12:50:47 -0700 Replace unchecked fwrite() calls Instead of having unchecked fwrite() calls, introduce nasm_write() which does error checking (and fatal errors if the write fails). Signed-off-by: H. Peter Anvin <hp...@li...> --- nasmlib.c | 40 ++++++++++++++++++++-------------------- nasmlib.h | 7 ++++++- output/outas86.c | 2 +- output/outbin.c | 18 ++++++------------ output/outcoff.c | 10 +++++----- output/outelf32.c | 4 ++-- output/outelf64.c | 4 ++-- output/outelfx32.c | 4 ++-- output/outmac32.c | 12 ++++++------ output/outmac64.c | 20 ++++++++++---------- output/outobj.c | 2 +- output/outrdf2.c | 2 +- saa.c | 2 +- 13 files changed, 63 insertions(+), 64 deletions(-) diff --git a/nasmlib.c b/nasmlib.c index 4588ff3..b16d1f3 100644 --- a/nasmlib.c +++ b/nasmlib.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2013 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -41,6 +41,7 @@ #include <stdlib.h> #include <string.h> #include <ctype.h> +#include <errno.h> #include <inttypes.h> #include "nasm.h" @@ -143,6 +144,13 @@ no_return nasm_assert_failed(const char *file, int line, const char *msg) exit(1); } +void nasm_write(const void *ptr, size_t size, FILE *f) +{ + size_t n = fwrite(ptr, 1, size, f); + if (n != size) + nasm_error(ERR_FATAL, "unable to write output: %s", strerror(errno)); +} + #ifndef nasm_stricmp int nasm_stricmp(const char *s1, const char *s2) { @@ -385,22 +393,22 @@ int32_t seg_alloc(void) void fwriteint16_t(uint16_t data, FILE * fp) { - fwrite(&data, 1, 2, fp); + nasm_write(&data, 2, fp); } void fwriteint32_t(uint32_t data, FILE * fp) { - fwrite(&data, 1, 4, fp); + nasm_write(&data, 4, fp); } void fwriteint64_t(uint64_t data, FILE * fp) { - fwrite(&data, 1, 8, fp); + nasm_write(&data, 8, fp); } void fwriteaddr(uint64_t data, int size, FILE * fp) { - fwrite(&data, 1, size, fp); + nasm_write(&data, size, fp); } #else /* not WORDS_LITTLEENDIAN */ @@ -409,50 +417,42 @@ void fwriteint16_t(uint16_t data, FILE * fp) { char buffer[2], *p = buffer; WRITESHORT(p, data); - fwrite(buffer, 1, 2, fp); + nasm_write(buffer, 2, fp); } void fwriteint32_t(uint32_t data, FILE * fp) { char buffer[4], *p = buffer; WRITELONG(p, data); - fwrite(buffer, 1, 4, fp); + nasm_write(buffer, 1, 4, fp); } void fwriteint64_t(uint64_t data, FILE * fp) { char buffer[8], *p = buffer; WRITEDLONG(p, data); - fwrite(buffer, 1, 8, fp); + nasm_write(buffer, 8, fp); } void fwriteaddr(uint64_t data, int size, FILE * fp) { char buffer[8], *p = buffer; WRITEADDR(p, data, size); - fwrite(buffer, 1, size, fp); + nasm_write(buffer, size, fp); } #endif -size_t fwritezero(size_t bytes, FILE *fp) +void fwritezero(size_t bytes, FILE *fp) { - size_t count = 0; size_t blksize; - size_t rv; while (bytes) { blksize = (bytes < ZERO_BUF_SIZE) ? bytes : ZERO_BUF_SIZE; - rv = fwrite(zero_buffer, 1, blksize, fp); - if (!rv) - break; - - count += rv; - bytes -= rv; + nasm_write(zero_buffer, blksize, fp); + bytes -= blksize; } - - return count; } void standard_extension(char *inname, char *outname, char *extension) diff --git a/nasmlib.h b/nasmlib.h index 8f6c885..fb2bb08 100644 --- a/nasmlib.h +++ b/nasmlib.h @@ -143,6 +143,11 @@ char *nasm_strdup(const char *); char *nasm_strndup(const char *, size_t); /* + * Wrapper around fwrite() which fatal-errors on output failure. + */ +void nasm_write(const void *, size_t, FILE *); + +/* * NASM assert failure */ no_return nasm_assert_failed(const char *, int, const char *); @@ -399,7 +404,7 @@ const char *prefix_name(int); #define ZERO_BUF_SIZE 4096 extern const uint8_t zero_buffer[ZERO_BUF_SIZE]; -size_t fwritezero(size_t bytes, FILE *fp); +void fwritezero(size_t bytes, FILE *fp); static inline bool overflow_general(int64_t value, int bytes) { diff --git a/output/outas86.c b/output/outas86.c index 7af8d78..95675ef 100644 --- a/output/outas86.c +++ b/output/outas86.c @@ -545,7 +545,7 @@ static void as86_write_section(struct Section *sect, int index) int32_t tmplen = (length > 64 ? 64 : length); fputc(0x40 | (tmplen & 0x3F), ofile); saa_rnbytes(sect->data, buf, tmplen); - fwrite(buf, 1, tmplen, ofile); + nasm_write(buf, tmplen, ofile); length -= tmplen; } while (length > 0); break; diff --git a/output/outbin.c b/output/outbin.c index c600e55..01eae1c 100644 --- a/output/outbin.c +++ b/output/outbin.c @@ -1468,8 +1468,8 @@ static void do_output_bin(void) } /* Generate Intel hex file output */ -static int write_ith_record(unsigned int len, uint16_t addr, - uint8_t type, void *data) +static void write_ith_record(unsigned int len, uint16_t addr, + uint8_t type, void *data) { char buf[1+2+4+2+255*2+2+2]; char *p = buf; @@ -1488,10 +1488,7 @@ static int write_ith_record(unsigned int len, uint16_t addr, p += sprintf(p, "%02X", dptr[i]); p += sprintf(p, "%02X\n", csum); - if (fwrite(buf, 1, p-buf, ofile) != (size_t)(p-buf)) - return -1; - - return 0; + nasm_write(buf, p-buf, ofile); } static void do_output_ith(void) @@ -1542,8 +1539,8 @@ static void do_output_ith(void) } /* Generate Motorola S-records */ -static int write_srecord(unsigned int len, unsigned int alen, - uint32_t addr, uint8_t type, void *data) +static void write_srecord(unsigned int len, unsigned int alen, + uint32_t addr, uint8_t type, void *data) { char buf[2+2+8+255*2+2+2]; char *p = buf; @@ -1576,10 +1573,7 @@ static int write_srecord(unsigned int len, unsigned int alen, p += sprintf(p, "%02X", dptr[i]); p += sprintf(p, "%02X\n", csum); - if (fwrite(buf, 1, p-buf, ofile) != (size_t)(p-buf)) - return -1; - - return 0; + nasm_write(buf, p-buf, ofile); } static void do_output_srec(void) diff --git a/output/outcoff.c b/output/outcoff.c index 3949028..5af063b 100644 --- a/output/outcoff.c +++ b/output/outcoff.c @@ -998,7 +998,7 @@ static void coff_section_header(char *name, int32_t namepos, int32_t vsize, if (namepos == -1) { strncpy(padname, name, 8); - fwrite(padname, 8, 1, ofile); + nasm_write(padname, 8, ofile); } else { /* * If name is longer than 8 bytes, write '/' followed @@ -1020,7 +1020,7 @@ static void coff_section_header(char *name, int32_t namepos, int32_t vsize, padname[6] = '0' + (namepos / 10); namepos = namepos % 10; padname[7] = '0' + (namepos); - fwrite(padname, 8, 1, ofile); + nasm_write(padname, 8, ofile); } fwriteint32_t(0, ofile); /* Virtual size field - set to 0 or vsize */ @@ -1073,7 +1073,7 @@ static void coff_symbol(char *name, int32_t strpos, int32_t value, if (name) { strncpy(padname, name, 8); - fwrite(padname, 8, 1, ofile); + nasm_write(padname, 8, ofile); } else { fwriteint32_t(0, ofile); fwriteint32_t(strpos, ofile); @@ -1097,7 +1097,7 @@ static void coff_write_symbols(void) */ coff_symbol(".file", 0L, 0L, -2, 0, 0x67, 1); strncpy(filename, coff_infile, 18); - fwrite(filename, 18, 1, ofile); + nasm_write(filename, 18, ofile); /* * The section records, with their auxiliaries. @@ -1108,7 +1108,7 @@ static void coff_write_symbols(void) coff_symbol(sects[i]->name, 0L, 0L, i + 1, 0, 3, 1); fwriteint32_t(sects[i]->len, ofile); fwriteint16_t(sects[i]->nrelocs,ofile); - fwrite(filename, 12, 1, ofile); + nasm_write(filename, 12, ofile); } /* diff --git a/output/outelf32.c b/output/outelf32.c index af0547a..b55853c 100644 --- a/output/outelf32.c +++ b/output/outelf32.c @@ -935,7 +935,7 @@ static void elf_write(void) /* * Output the ELF header. */ - fwrite("\177ELF\1\1\1", 7, 1, ofile); + nasm_write("\177ELF\1\1\1", 7, ofile); fputc(elf_osabi, ofile); fputc(elf_abiver, ofile); fwritezero(7, ofile); @@ -1286,7 +1286,7 @@ static void elf_write_sections(void) if (elf_sects[i].is_saa) saa_fpwrite(elf_sects[i].data, ofile); else - fwrite(elf_sects[i].data, len, 1, ofile); + nasm_write(elf_sects[i].data, len, ofile); fwritezero(align, ofile); } } diff --git a/output/outelf64.c b/output/outelf64.c index 0e6b6bc..241e345 100644 --- a/output/outelf64.c +++ b/output/outelf64.c @@ -1025,7 +1025,7 @@ static void elf_write(void) /* * Output the ELF header. */ - fwrite("\177ELF\2\1\1", 7, 1, ofile); + nasm_write("\177ELF\2\1\1", 7, ofile); fputc(elf_osabi, ofile); fputc(elf_abiver, ofile); fwritezero(7, ofile); @@ -1374,7 +1374,7 @@ static void elf_write_sections(void) if (elf_sects[i].is_saa) saa_fpwrite(elf_sects[i].data, ofile); else - fwrite(elf_sects[i].data, len, 1, ofile); + nasm_write(elf_sects[i].data, len, ofile); fwritezero(align, ofile); } } diff --git a/output/outelfx32.c b/output/outelfx32.c index 6b352a2..a9b6957 100644 --- a/output/outelfx32.c +++ b/output/outelfx32.c @@ -983,7 +983,7 @@ static void elf_write(void) /* * Output the ELF header. */ - fwrite("\177ELF\1\1\1", 7, 1, ofile); + nasm_write("\177ELF\1\1\1", 7, ofile); fputc(elf_osabi, ofile); fputc(elf_abiver, ofile); fwritezero(7, ofile); @@ -1334,7 +1334,7 @@ static void elf_write_sections(void) if (elf_sects[i].is_saa) saa_fpwrite(elf_sects[i].data, ofile); else - fwrite(elf_sects[i].data, len, 1, ofile); + nasm_write(elf_sects[i].data, len, ofile); fwritezero(align, ofile); } } diff --git a/output/outmac32.c b/output/outmac32.c index c2c91b4..616211e 100644 --- a/output/outmac32.c +++ b/output/outmac32.c @@ -883,8 +883,8 @@ static uint32_t macho_write_segment (uint32_t offset) /* emit section headers */ for (s = sects; s != NULL; s = s->next) { - fwrite(s->sectname, sizeof(s->sectname), 1, ofile); - fwrite(s->segname, sizeof(s->segname), 1, ofile); + nasm_write(s->sectname, sizeof(s->sectname), ofile); + nasm_write(s->segname, sizeof(s->segname), ofile); fwriteint32_t(s->addr, ofile); fwriteint32_t(s->size, ofile); @@ -1050,8 +1050,8 @@ static void macho_write_symtab (void) for (i = 0; i < nextdefsym; i++) { sym = extdefsyms[i]; fwriteint32_t(sym->strx, ofile); - fwrite(&sym->type, 1, 1, ofile); /* symbol type */ - fwrite(&sym->sect, 1, 1, ofile); /* section */ + nasm_write(&sym->type, 1, ofile); /* symbol type */ + nasm_write(&sym->sect, 1, ofile); /* section */ fwriteint16_t(sym->desc, ofile); /* description */ /* Fix up the symbol value now that we know the final section @@ -1068,8 +1068,8 @@ static void macho_write_symtab (void) for (i = 0; i < nundefsym; i++) { sym = undefsyms[i]; fwriteint32_t(sym->strx, ofile); - fwrite(&sym->type, 1, 1, ofile); /* symbol type */ - fwrite(&sym->sect, 1, 1, ofile); /* section */ + nasm_write(&sym->type, 1, ofile); /* symbol type */ + nasm_write(&sym->sect, 1, ofile); /* section */ fwriteint16_t(sym->desc, ofile); /* description */ /* Fix up the symbol value now that we know the final section diff --git a/output/outmac64.c b/output/outmac64.c index abad84a..44dcf0c 100644 --- a/output/outmac64.c +++ b/output/outmac64.c @@ -1005,7 +1005,7 @@ static void macho_write_header (void) fwriteint32_t(head_ncmds64, ofile); /* number of load commands */ fwriteint32_t(head_sizeofcmds64, ofile); /* size of load commands */ fwriteint32_t(0, ofile); /* no flags */ - fwriteint32_t(0, ofile); /* reserved for future use */ + fwriteint32_t(0, ofile); /* reserved for future use */ } /* Write out the segment load command at offset. */ @@ -1036,8 +1036,8 @@ static uint32_t macho_write_segment (uint64_t offset) /* emit section headers */ for (s = sects; s != NULL; s = s->next) { - fwrite(s->sectname, sizeof(s->sectname), 1, ofile); - fwrite(s->segname, sizeof(s->segname), 1, ofile); + nasm_write(s->sectname, sizeof(s->sectname), ofile); + nasm_write(s->segname, sizeof(s->segname), ofile); fwriteint64_t(s->addr, ofile); fwriteint64_t(s->size, ofile); @@ -1202,9 +1202,9 @@ static void macho_write_symtab (void) for (sym = syms; sym != NULL; sym = sym->next) { if ((sym->type & N_EXT) == 0) { fwriteint32_t(sym->strx, ofile); /* string table entry number */ - fwrite(&sym->type, 1, 1, ofile); /* symbol type */ - fwrite(&sym->sect, 1, 1, ofile); /* section */ - fwriteint16_t(sym->desc, ofile); /* description */ + nasm_write(&sym->type, 1, ofile); /* symbol type */ + nasm_write(&sym->sect, 1, ofile); /* section */ + fwriteint16_t(sym->desc, ofile); /* description */ /* Fix up the symbol value now that we know the final section sizes. */ @@ -1224,8 +1224,8 @@ static void macho_write_symtab (void) for (i = 0; i < nextdefsym; i++) { sym = extdefsyms[i]; fwriteint32_t(sym->strx, ofile); - fwrite(&sym->type, 1, 1, ofile); /* symbol type */ - fwrite(&sym->sect, 1, 1, ofile); /* section */ + nasm_write(&sym->type, 1, ofile); /* symbol type */ + nasm_write(&sym->sect, 1, ofile); /* section */ fwriteint16_t(sym->desc, ofile); /* description */ /* Fix up the symbol value now that we know the final section @@ -1242,8 +1242,8 @@ static void macho_write_symtab (void) for (i = 0; i < nundefsym; i++) { sym = undefsyms[i]; fwriteint32_t(sym->strx, ofile); - fwrite(&sym->type, 1, 1, ofile); /* symbol type */ - fwrite(&sym->sect, 1, 1, ofile); /* section */ + nasm_write(&sym->type, 1, ofile); /* symbol type */ + nasm_write(&sym->sect, 1, ofile); /* section */ fwriteint16_t(sym->desc, ofile); /* description */ // Fix up the symbol value now that we know the final section sizes. diff --git a/output/outobj.c b/output/outobj.c index 7fa29b2..225ea4f 100644 --- a/output/outobj.c +++ b/output/outobj.c @@ -2396,7 +2396,7 @@ static void obj_fwrite(ObjRecord * orp) len = orp->committed + 1; cksum += (len & 0xFF) + ((len >> 8) & 0xFF); fwriteint16_t(len, ofile); - fwrite(orp->buf, 1, len - 1, ofile); + nasm_write(orp->buf, len-1, ofile); for (ptr = orp->buf; --len; ptr++) cksum += *ptr; fputc((-cksum) & 0xFF, ofile); diff --git a/output/outrdf2.c b/output/outrdf2.c index c7aeb28..fdac5ee 100644 --- a/output/outrdf2.c +++ b/output/outrdf2.c @@ -670,7 +670,7 @@ static void rdf2_cleanup(int debuginfo) /* should write imported & exported symbol declarations to header here */ /* generate the output file... */ - fwrite(RDOFF2Id, 6, 1, ofile); /* file type magic number */ + nasm_write(RDOFF2Id, 6, ofile); /* file type magic number */ if (bsslength != 0) { /* reserve BSS */ bs.type = RDFREC_BSS; diff --git a/saa.c b/saa.c index 6719584..a0350c1 100644 --- a/saa.c +++ b/saa.c @@ -278,7 +278,7 @@ void saa_fpwrite(struct SAA *s, FILE * fp) saa_rewind(s); while (len = s->datalen, (data = saa_rbytes(s, &len)) != NULL) - fwrite(data, 1, len, fp); + nasm_write(data, len, fp); } void saa_write8(struct SAA *s, uint8_t v) |
From: nasm-bot f. M. C. <mar...@in...> - 2014-10-17 22:24:37
|
Commit-ID: dcaef4b09502aae7bd347df05d02a7e3dc52900a Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=dcaef4b09502aae7bd347df05d02a7e3dc52900a Author: Mark Charney <mar...@in...> AuthorDate: Thu, 9 Oct 2014 13:45:17 -0400 Committer: Jim Kukunas <jam...@li...> CommitDate: Thu, 16 Oct 2014 16:31:31 -0700 Sync to public Intel EAS version 021. * http://www.intel.com/software/isa * Signed-off-by: Mark Charney <mar...@in...> --- assemble.c | 34 +- insns-iflags.pl | 5 + insns.dat | 2247 +++++++++++++++++++++++++++++++++++++++---------------- nasm.h | 10 +- parser.c | 2 +- tokens.dat | 2 + 6 files changed, 1649 insertions(+), 651 deletions(-) diff --git a/assemble.c b/assemble.c index 38add4f..4976c46 100644 --- a/assemble.c +++ b/assemble.c @@ -2106,6 +2106,31 @@ done: return merr; } +static uint8_t get_broadcast_num(opflags_t opflags, opflags_t brsize) +{ + opflags_t opsize = opflags & SIZE_MASK; + uint8_t brcast_num; + + /* + * Due to discontinuity between BITS64 and BITS128 (BITS80), + * this cannot be a simple arithmetic calculation. + */ + if (brsize > BITS64) + errfunc(ERR_FATAL, + "size of broadcasting element is greater than 64 bits"); + + switch (opsize) { + case BITS64: + brcast_num = BITS64 / brsize; + break; + default: + brcast_num = (opsize / BITS128) * (BITS64 / brsize) * 2; + break; + } + + return brcast_num; +} + static enum match_result matches(const struct itemplate *itemp, insn *instruction, int bits) { @@ -2255,8 +2280,7 @@ static enum match_result matches(const struct itemplate *itemp, if (deco_brsize) { template_opsize = (deco_brsize == BR_BITS32 ? BITS32 : BITS64); /* calculate the proper number : {1to<brcast_num>} */ - brcast_num = (itemp->opd[i] & SIZE_MASK) / BITS128 * - BITS64 / template_opsize * 2; + brcast_num = get_broadcast_num(itemp->opd[i], template_opsize); } else { template_opsize = 0; } @@ -2279,12 +2303,12 @@ static enum match_result matches(const struct itemplate *itemp, } } else if (is_broadcast && (brcast_num != - (8U << ((deco & BRNUM_MASK) >> BRNUM_SHIFT)))) { + (2U << ((deco & BRNUM_MASK) >> BRNUM_SHIFT)))) { /* * broadcasting opsize matches but the number of repeated memory * element does not match. - * if 64b double precision float is broadcasted to zmm (512b), - * broadcasting decorator must be {1to8}. + * if 64b double precision float is broadcasted to ymm (256b), + * broadcasting decorator must be {1to4}. */ return MERR_BRNUMMISMATCH; } diff --git a/insns-iflags.pl b/insns-iflags.pl index cd8f8f1..1cd7a4c 100644 --- a/insns-iflags.pl +++ b/insns-iflags.pl @@ -131,6 +131,11 @@ my %insns_flag_bit = ( "MPX" => [ 68 ,"MPX"], "SHA" => [ 69 ,"SHA"], "PREFETCHWT1" => [ 70 ,"PREFETCHWT1"], + "AVX512VL" => [ 71, "AVX-512 Vector Length Orthogonality"], + "AVX512DQ" => [ 72, "AVX-512 Dword and Qword"], + "AVX512BW" => [ 73, "AVX-512 Byte and Word"], + "AVX512IFMA" => [ 74, "AVX-512 IFMA instructions"], + "AVX512VBMI" => [ 75, "AVX-512 VBMI instructions"], "VEX" => [ 94, "VEX or XOP encoded instruction"], "EVEX" => [ 95, "EVEX encoded instruction"], diff --git a/insns.dat b/insns.dat index e5622ec..4191075 100644 --- a/insns.dat +++ b/insns.dat @@ -3473,639 +3473,6 @@ TZMSK reg64,rm64 [vm: xop.ndd.lz.m9.w1 01 /4] LONG,FUTURE,TBM T1MSKC reg32,rm32 [vm: xop.ndd.lz.m9.w0 01 /7] FUTURE,TBM T1MSKC reg64,rm64 [vm: xop.ndd.lz.m9.w1 01 /7] LONG,FUTURE,TBM -;# Intel AVX-512 instructions -; -; based on pub number 319433-015 dated July 2013 -; -VADDPD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f.w1 58 /r ] AVX512,FUTURE -VADDPS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.0f.w0 58 /r ] AVX512,FUTURE -VADDSD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.f2.0f.w1 58 /r ] AVX512,FUTURE -VADDSS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.f3.0f.w0 58 /r ] AVX512,FUTURE -VALIGND zmmreg|mask|z,zmmreg,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 03 /r ib ] AVX512,FUTURE -VALIGNQ zmmreg|mask|z,zmmreg,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 03 /r ib ] AVX512,FUTURE -VBLENDMPD zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 65 /r ] AVX512,FUTURE -VBLENDMPS zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 65 /r ] AVX512,FUTURE -VBROADCASTF32X4 zmmreg|mask|z,mem128 [rm:t4: evex.512.66.0f38.w0 1a /r ] AVX512,FUTURE -VBROADCASTF64X4 zmmreg|mask|z,mem256 [rm:t4: evex.512.66.0f38.w1 1b /r ] AVX512,FUTURE -VBROADCASTI32X4 zmmreg|mask|z,mem128 [rm:t4: evex.512.66.0f38.w0 5a /r ] AVX512,FUTURE -VBROADCASTI64X4 zmmreg|mask|z,mem256 [rm:t4: evex.512.66.0f38.w1 5b /r ] AVX512,FUTURE -VBROADCASTSD zmmreg|mask|z,mem64 [rm:t1s: evex.512.66.0f38.w1 19 /r ] AVX512,FUTURE -VBROADCASTSD zmmreg|mask|z,xmmreg [rm: evex.512.66.0f38.w1 19 /r ] AVX512,FUTURE -VBROADCASTSS zmmreg|mask|z,xmmreg [rm: evex.512.66.0f38.w0 18 /r ] AVX512,FUTURE -VBROADCASTSS zmmreg|mask|z,mem32 [rm:t1s: evex.512.66.0f38.w0 18 /r ] AVX512,FUTURE -VCMPEQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 00 ] AVX512,FUTURE -VCMPLTPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 01 ] AVX512,FUTURE -VCMPLEPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 02 ] AVX512,FUTURE -VCMPUNORDPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 03 ] AVX512,FUTURE -VCMPNEQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 04 ] AVX512,FUTURE -VCMPNLTPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 05 ] AVX512,FUTURE -VCMPNLEPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 06 ] AVX512,FUTURE -VCMPORDPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 07 ] AVX512,FUTURE -VCMPEQ_UQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 08 ] AVX512,FUTURE -VCMPNGEPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 09 ] AVX512,FUTURE -VCMPNGTPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 0a ] AVX512,FUTURE -VCMPFALSEPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 0b ] AVX512,FUTURE -VCMPNEQ_OQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 0c ] AVX512,FUTURE -VCMPGEPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 0d ] AVX512,FUTURE -VCMPGTPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 0e ] AVX512,FUTURE -VCMPTRUEPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 0f ] AVX512,FUTURE -VCMPEQ_OSPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 10 ] AVX512,FUTURE -VCMPLT_OQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 11 ] AVX512,FUTURE -VCMPLE_OQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 12 ] AVX512,FUTURE -VCMPUNORD_SPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 13 ] AVX512,FUTURE -VCMPNEQ_USPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 14 ] AVX512,FUTURE -VCMPNLT_UQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 15 ] AVX512,FUTURE -VCMPNLE_UQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 16 ] AVX512,FUTURE -VCMPORD_SPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 17 ] AVX512,FUTURE -VCMPEQ_USPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 18 ] AVX512,FUTURE -VCMPNGE_UQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 19 ] AVX512,FUTURE -VCMPNGT_UQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 1a ] AVX512,FUTURE -VCMPFALSE_OSPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 1b ] AVX512,FUTURE -VCMPNEQ_OSPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 1c ] AVX512,FUTURE -VCMPGE_OQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 1d ] AVX512,FUTURE -VCMPGT_OQPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 1e ] AVX512,FUTURE -VCMPTRUE_USPD kreg|mask,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 c2 /r 1f ] AVX512,FUTURE -VCMPPD kreg|mask,zmmreg,zmmrm512|b64|sae,imm8 [rvmi:fv: evex.nds.512.66.0f.w1 c2 /r ib ] AVX512,FUTURE -VCMPEQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 00 ] AVX512,FUTURE -VCMPLTPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 01 ] AVX512,FUTURE -VCMPLEPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 02 ] AVX512,FUTURE -VCMPUNORDPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 03 ] AVX512,FUTURE -VCMPNEQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 04 ] AVX512,FUTURE -VCMPNLTPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 05 ] AVX512,FUTURE -VCMPNLEPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 06 ] AVX512,FUTURE -VCMPORDPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 07 ] AVX512,FUTURE -VCMPEQ_UQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 08 ] AVX512,FUTURE -VCMPNGEPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 09 ] AVX512,FUTURE -VCMPNGTPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 0a ] AVX512,FUTURE -VCMPFALSEPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 0b ] AVX512,FUTURE -VCMPNEQ_OQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 0c ] AVX512,FUTURE -VCMPGEPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 0d ] AVX512,FUTURE -VCMPGTPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 0e ] AVX512,FUTURE -VCMPTRUEPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 0f ] AVX512,FUTURE -VCMPEQ_OSPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 10 ] AVX512,FUTURE -VCMPLT_OQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 11 ] AVX512,FUTURE -VCMPLE_OQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 12 ] AVX512,FUTURE -VCMPUNORD_SPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 13 ] AVX512,FUTURE -VCMPNEQ_USPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 14 ] AVX512,FUTURE -VCMPNLT_UQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 15 ] AVX512,FUTURE -VCMPNLE_UQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 16 ] AVX512,FUTURE -VCMPORD_SPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 17 ] AVX512,FUTURE -VCMPEQ_USPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 18 ] AVX512,FUTURE -VCMPNGE_UQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 19 ] AVX512,FUTURE -VCMPNGT_UQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 1a ] AVX512,FUTURE -VCMPFALSE_OSPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 1b ] AVX512,FUTURE -VCMPNEQ_OSPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 1c ] AVX512,FUTURE -VCMPGE_OQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 1d ] AVX512,FUTURE -VCMPGT_OQPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 1e ] AVX512,FUTURE -VCMPTRUE_USPS kreg|mask,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 c2 /r 1f ] AVX512,FUTURE -VCMPPS kreg|mask,zmmreg,zmmrm512|b32|sae,imm8 [rvmi:fv: evex.nds.512.0f.w0 c2 /r ib ] AVX512,FUTURE -VCMPEQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 00 ] AVX512,FUTURE -VCMPLTSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 01 ] AVX512,FUTURE -VCMPLESD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 02 ] AVX512,FUTURE -VCMPUNORDSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 03 ] AVX512,FUTURE -VCMPNEQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 04 ] AVX512,FUTURE -VCMPNLTSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 05 ] AVX512,FUTURE -VCMPNLESD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 06 ] AVX512,FUTURE -VCMPORDSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 07 ] AVX512,FUTURE -VCMPEQ_UQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 08 ] AVX512,FUTURE -VCMPNGESD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 09 ] AVX512,FUTURE -VCMPNGTSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 0a ] AVX512,FUTURE -VCMPFALSESD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 0b ] AVX512,FUTURE -VCMPNEQ_OQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 0c ] AVX512,FUTURE -VCMPGESD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 0d ] AVX512,FUTURE -VCMPGTSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 0e ] AVX512,FUTURE -VCMPTRUESD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 0f ] AVX512,FUTURE -VCMPEQ_OSSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 10 ] AVX512,FUTURE -VCMPLT_OQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 11 ] AVX512,FUTURE -VCMPLE_OQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 12 ] AVX512,FUTURE -VCMPUNORD_SSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 13 ] AVX512,FUTURE -VCMPNEQ_USSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 14 ] AVX512,FUTURE -VCMPNLT_UQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 15 ] AVX512,FUTURE -VCMPNLE_UQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 16 ] AVX512,FUTURE -VCMPORD_SSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 17 ] AVX512,FUTURE -VCMPEQ_USSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 18 ] AVX512,FUTURE -VCMPNGE_UQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 19 ] AVX512,FUTURE -VCMPNGT_UQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 1a ] AVX512,FUTURE -VCMPFALSE_OSSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 1b ] AVX512,FUTURE -VCMPNEQ_OSSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 1c ] AVX512,FUTURE -VCMPGE_OQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 1d ] AVX512,FUTURE -VCMPGT_OQSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 1e ] AVX512,FUTURE -VCMPTRUE_USSD kreg|mask,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 c2 /r 1f ] AVX512,FUTURE -VCMPSD kreg|mask,xmmreg,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.lig.f2.0f.w1 c2 /r ib ] AVX512,FUTURE -VCMPEQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 00 ] AVX512,FUTURE -VCMPLTSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 01 ] AVX512,FUTURE -VCMPLESS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 02 ] AVX512,FUTURE -VCMPUNORDSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 03 ] AVX512,FUTURE -VCMPNEQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 04 ] AVX512,FUTURE -VCMPNLTSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 05 ] AVX512,FUTURE -VCMPNLESS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 06 ] AVX512,FUTURE -VCMPORDSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 07 ] AVX512,FUTURE -VCMPEQ_UQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 08 ] AVX512,FUTURE -VCMPNGESS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 09 ] AVX512,FUTURE -VCMPNGTSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 0a ] AVX512,FUTURE -VCMPFALSESS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 0b ] AVX512,FUTURE -VCMPNEQ_OQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 0c ] AVX512,FUTURE -VCMPGESS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 0d ] AVX512,FUTURE -VCMPGTSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 0e ] AVX512,FUTURE -VCMPTRUESS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 0f ] AVX512,FUTURE -VCMPEQ_OSSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 10 ] AVX512,FUTURE -VCMPLT_OQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 11 ] AVX512,FUTURE -VCMPLE_OQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 12 ] AVX512,FUTURE -VCMPUNORD_SSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 13 ] AVX512,FUTURE -VCMPNEQ_USSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 14 ] AVX512,FUTURE -VCMPNLT_UQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 15 ] AVX512,FUTURE -VCMPNLE_UQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 16 ] AVX512,FUTURE -VCMPORD_SSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 17 ] AVX512,FUTURE -VCMPEQ_USSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 18 ] AVX512,FUTURE -VCMPNGE_UQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 19 ] AVX512,FUTURE -VCMPNGT_UQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 1a ] AVX512,FUTURE -VCMPFALSE_OSSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 1b ] AVX512,FUTURE -VCMPNEQ_OSSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 1c ] AVX512,FUTURE -VCMPGE_OQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 1d ] AVX512,FUTURE -VCMPGT_OQSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 1e ] AVX512,FUTURE -VCMPTRUE_USSS kreg|mask,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 c2 /r 1f ] AVX512,FUTURE -VCMPSS kreg|mask,xmmreg,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.lig.f3.0f.w0 c2 /r ib ] AVX512,FUTURE -VCOMISD xmmreg,xmmrm64|sae [rm:t1s: evex.lig.66.0f.w1 2f /r ] AVX512,FUTURE -VCOMISS xmmreg,xmmrm32|sae [rm:t1s: evex.lig.0f.w0 2f /r ] AVX512,FUTURE -VCOMPRESSPD mem512|mask,zmmreg [mr:t1s: evex.512.66.0f38.w1 8a /r ] AVX512,FUTURE -VCOMPRESSPD zmmreg|mask|z,zmmreg [mr: evex.512.66.0f38.w1 8a /r ] AVX512,FUTURE -VCOMPRESSPS mem512|mask,zmmreg [mr:t1s: evex.512.66.0f38.w0 8a /r ] AVX512,FUTURE -VCOMPRESSPS zmmreg|mask|z,zmmreg [mr: evex.512.66.0f38.w0 8a /r ] AVX512,FUTURE -VCVTDQ2PD zmmreg|mask|z,ymmrm256|b32|er [rm:hv: evex.512.f3.0f.w0 e6 /r ] AVX512,FUTURE -VCVTDQ2PS zmmreg|mask|z,zmmrm512|b32|er [rm:fv: evex.512.0f.w0 5b /r ] AVX512,FUTURE -VCVTPD2DQ ymmreg|mask|z,zmmrm512|b64|er [rm:fv: evex.512.f2.0f.w1 e6 /r ] AVX512,FUTURE -VCVTPD2PS ymmreg|mask|z,zmmrm512|b64|er [rm:fv: evex.512.66.0f.w1 5a /r ] AVX512,FUTURE -VCVTPD2UDQ ymmreg|mask|z,zmmrm512|b64|er [rm:fv: evex.512.0f.w1 79 /r ] AVX512,FUTURE -VCVTPH2PS zmmreg|mask|z,ymmrm256|sae [rm:hvm: evex.512.66.0f38.w0 13 /r ] AVX512,FUTURE -VCVTPS2DQ zmmreg|mask|z,zmmrm512|b32|er [rm:fv: evex.512.66.0f.w0 5b /r ] AVX512,FUTURE -VCVTPS2PD zmmreg|mask|z,ymmrm256|b32|sae [rm:hv: evex.512.0f.w0 5a /r ] AVX512,FUTURE -VCVTPS2PH ymmreg|mask|z,zmmreg|sae,imm8 [mri:hvm: evex.512.66.0f3a.w0 1d /r ib ] AVX512,FUTURE -VCVTPS2PH mem256|mask,zmmreg|sae,imm8 [mri:hvm: evex.512.66.0f3a.w0 1d /r ib ] AVX512,FUTURE -VCVTPS2UDQ zmmreg|mask|z,zmmrm512|b32|er [rm:fv: evex.512.0f.w0 79 /r ] AVX512,FUTURE -VCVTSD2SI reg64,xmmrm64|er [rm:t1f64: evex.lig.f2.0f.w1 2d /r ] AVX512,FUTURE -VCVTSD2SI reg32,xmmrm64|er [rm:t1f64: evex.lig.f2.0f.w0 2d /r ] AVX512,FUTURE -VCVTSD2SS xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.f2.0f.w1 5a /r ] AVX512,FUTURE -VCVTSD2USI reg64,xmmrm64|er [rm:t1f64: evex.lig.f2.0f.w1 79 /r ] AVX512,FUTURE -VCVTSD2USI reg32,xmmrm64|er [rm:t1f64: evex.lig.f2.0f.w0 79 /r ] AVX512,FUTURE -VCVTSI2SD xmmreg,xmmreg|er,rm64 [rvm:t1s: evex.nds.lig.f2.0f.w1 2a /r ] AVX512,FUTURE -VCVTSI2SD xmmreg,xmmreg|er,rm32 [rvm:t1s: evex.nds.lig.f2.0f.w0 2a /r ] AVX512,FUTURE -VCVTSI2SS xmmreg,xmmreg|er,rm32 [rvm:t1s: evex.nds.lig.f3.0f.w0 2a /r ] AVX512,FUTURE -VCVTSI2SS xmmreg,xmmreg|er,rm64 [rvm:t1s: evex.nds.lig.f3.0f.w1 2a /r ] AVX512,FUTURE -VCVTSS2SD xmmreg|mask|z,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 5a /r ] AVX512,FUTURE -VCVTSS2SI reg32,xmmrm32|er [rm:t1f32: evex.lig.f3.0f.w0 2d /r ] AVX512,FUTURE -VCVTSS2SI reg64,xmmrm32|er [rm:t1f32: evex.lig.f3.0f.w1 2d /r ] AVX512,FUTURE -VCVTSS2USI reg32,xmmrm32|er [rm:t1f32: evex.lig.f3.0f.w0 79 /r ] AVX512,FUTURE -VCVTSS2USI reg64,xmmrm32|er [rm:t1f32: evex.lig.f3.0f.w1 79 /r ] AVX512,FUTURE -VCVTTPD2DQ ymmreg|mask|z,zmmrm512|b64|sae [rm:fv: evex.512.66.0f.w1 e6 /r ] AVX512,FUTURE -VCVTTPD2UDQ ymmreg|mask|z,zmmrm512|b64|sae [rm:fv: evex.512.0f.w1 78 /r ] AVX512,FUTURE -VCVTTPS2DQ zmmreg|mask|z,zmmrm512|b32|sae [rm:fv: evex.512.f3.0f.w0 5b /r ] AVX512,FUTURE -VCVTTPS2UDQ zmmreg|mask|z,zmmrm512|b32|sae [rm:fv: evex.512.0f.w0 78 /r ] AVX512,FUTURE -VCVTTSD2SI reg64,xmmrm64|sae [rm:t1f64: evex.lig.f2.0f.w1 2c /r ] AVX512,FUTURE -VCVTTSD2SI reg32,xmmrm64|sae [rm:t1f64: evex.lig.f2.0f.w0 2c /r ] AVX512,FUTURE -VCVTTSD2USI reg32,xmmrm64|sae [rm:t1f64: evex.lig.f2.0f.w0 78 /r ] AVX512,FUTURE -VCVTTSD2USI reg64,xmmrm64|sae [rm:t1f64: evex.lig.f2.0f.w1 78 /r ] AVX512,FUTURE -VCVTTSS2SI reg64,xmmrm32|sae [rm:t1f32: evex.lig.f3.0f.w1 2c /r ] AVX512,FUTURE -VCVTTSS2SI reg32,xmmrm32|sae [rm:t1f32: evex.lig.f3.0f.w0 2c /r ] AVX512,FUTURE -VCVTTSS2USI reg32,xmmrm32|sae [rm:t1f32: evex.lig.f3.0f.w0 78 /r ] AVX512,FUTURE -VCVTTSS2USI reg64,xmmrm32|sae [rm:t1f32: evex.lig.f3.0f.w1 78 /r ] AVX512,FUTURE -VCVTUDQ2PD zmmreg|mask|z,ymmrm256|b32|er [rm:hv: evex.512.f3.0f.w0 7a /r ] AVX512,FUTURE -VCVTUDQ2PS zmmreg|mask|z,zmmrm512|b32|er [rm:fv: evex.512.f2.0f.w0 7a /r ] AVX512,FUTURE -VCVTUSI2SD xmmreg,xmmreg|er,rm32 [rvm:t1s: evex.nds.lig.f2.0f.w0 7b /r ] AVX512,FUTURE -VCVTUSI2SD xmmreg,xmmreg|er,rm64 [rvm:t1s: evex.nds.lig.f2.0f.w1 7b /r ] AVX512,FUTURE -VCVTUSI2SS xmmreg,xmmreg|er,rm64 [rvm:t1s: evex.nds.lig.f3.0f.w1 7b /r ] AVX512,FUTURE -VCVTUSI2SS xmmreg,xmmreg|er,rm32 [rvm:t1s: evex.nds.lig.f3.0f.w0 7b /r ] AVX512,FUTURE -VDIVPD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f.w1 5e /r ] AVX512,FUTURE -VDIVPS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.0f.w0 5e /r ] AVX512,FUTURE -VDIVSD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.f2.0f.w1 5e /r ] AVX512,FUTURE -VDIVSS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.f3.0f.w0 5e /r ] AVX512,FUTURE -VEXPANDPD zmmreg|mask|z,mem512 [rm:t1s: evex.512.66.0f38.w1 88 /r ] AVX512,FUTURE -VEXPANDPD zmmreg|mask|z,zmmreg [rm:t1s: evex.512.66.0f38.w1 88 /r ] AVX512,FUTURE -VEXPANDPS zmmreg|mask|z,mem512 [rm:t1s: evex.512.66.0f38.w0 88 /r ] AVX512,FUTURE -VEXPANDPS zmmreg|mask|z,zmmreg [rm:t1s: evex.512.66.0f38.w0 88 /r ] AVX512,FUTURE -VEXTRACTF32X4 mem128|mask,zmmreg,imm8 [mri:t4: evex.512.66.0f3a.w0 19 /r ib ] AVX512,FUTURE -VEXTRACTF32X4 xmmreg|mask|z,zmmreg,imm8 [mri:t4: evex.512.66.0f3a.w0 19 /r ib ] AVX512,FUTURE -VEXTRACTF64X4 mem256|mask,zmmreg,imm8 [mri:t4: evex.512.66.0f3a.w1 1b /r ib ] AVX512,FUTURE -VEXTRACTF64X4 ymmreg|mask|z,zmmreg,imm8 [mri: evex.512.66.0f3a.w1 1b /r ib ] AVX512,FUTURE -VEXTRACTI32X4 mem128|mask,zmmreg,imm8 [mri:t4: evex.512.66.0f3a.w0 39 /r ib ] AVX512,FUTURE -VEXTRACTI32X4 xmmreg|mask|z,zmmreg,imm8 [mri: evex.512.66.0f3a.w0 39 /r ib ] AVX512,FUTURE -VEXTRACTI64X4 ymmreg|mask|z,zmmreg,imm8 [mri: evex.512.66.0f3a.w1 3b /r ib ] AVX512,FUTURE -VEXTRACTI64X4 mem256|mask,zmmreg,imm8 [mri:t4: evex.512.66.0f3a.w1 3b /r ib ] AVX512,FUTURE -VEXTRACTPS rm64,xmmreg,imm8 [mri:t1s: evex.128.66.0f3a.w1 17 /r ib ] AVX512,FUTURE -VEXTRACTPS rm32,xmmreg,imm8 [mri:t1s: evex.128.66.0f3a.wig 17 /r ib ] AVX512,FUTURE -VFIXUPIMMPD zmmreg|mask|z,zmmreg,zmmrm512|b64|sae,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 54 /r ib ] AVX512,FUTURE -VFIXUPIMMPS zmmreg|mask|z,zmmreg,zmmrm512|b32|sae,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 54 /r ib ] AVX512,FUTURE -VFIXUPIMMSD xmmreg|mask|z,xmmreg,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.lig.66.0f3a.w1 55 /r ib ] AVX512,FUTURE -VFIXUPIMMSS xmmreg|mask|z,xmmreg,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.lig.66.0f3a.w0 55 /r ib ] AVX512,FUTURE -VFMADD132PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 98 /r ] AVX512,FUTURE -VFMADD132PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 98 /r ] AVX512,FUTURE -VFMADD132SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 99 /r ] AVX512,FUTURE -VFMADD132SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 99 /r ] AVX512,FUTURE -VFMADD213PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 a8 /r ] AVX512,FUTURE -VFMADD213PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 a8 /r ] AVX512,FUTURE -VFMADD213SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 a9 /r ] AVX512,FUTURE -VFMADD213SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 a9 /r ] AVX512,FUTURE -VFMADD231PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 b8 /r ] AVX512,FUTURE -VFMADD231PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 b8 /r ] AVX512,FUTURE -VFMADD231SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 b9 /r ] AVX512,FUTURE -VFMADD231SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 b9 /r ] AVX512,FUTURE -VFMADDSUB132PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 96 /r ] AVX512,FUTURE -VFMADDSUB132PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 96 /r ] AVX512,FUTURE -VFMADDSUB213PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 a6 /r ] AVX512,FUTURE -VFMADDSUB213PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 a6 /r ] AVX512,FUTURE -VFMADDSUB231PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 b6 /r ] AVX512,FUTURE -VFMADDSUB231PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 b6 /r ] AVX512,FUTURE -VFMSUB132PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 9a /r ] AVX512,FUTURE -VFMSUB132PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 9a /r ] AVX512,FUTURE -VFMSUB132SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 9b /r ] AVX512,FUTURE -VFMSUB132SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 9b /r ] AVX512,FUTURE -VFMSUB213PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 aa /r ] AVX512,FUTURE -VFMSUB213PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 aa /r ] AVX512,FUTURE -VFMSUB213SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 ab /r ] AVX512,FUTURE -VFMSUB213SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 ab /r ] AVX512,FUTURE -VFMSUB231PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 ba /r ] AVX512,FUTURE -VFMSUB231PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 ba /r ] AVX512,FUTURE -VFMSUB231SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 bb /r ] AVX512,FUTURE -VFMSUB231SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 bb /r ] AVX512,FUTURE -VFMSUBADD132PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 97 /r ] AVX512,FUTURE -VFMSUBADD132PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 97 /r ] AVX512,FUTURE -VFMSUBADD213PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 a7 /r ] AVX512,FUTURE -VFMSUBADD213PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 a7 /r ] AVX512,FUTURE -VFMSUBADD231PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 b7 /r ] AVX512,FUTURE -VFMSUBADD231PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 b7 /r ] AVX512,FUTURE -VFNMADD132PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 9c /r ] AVX512,FUTURE -VFNMADD132PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 9c /r ] AVX512,FUTURE -VFNMADD132SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 9d /r ] AVX512,FUTURE -VFNMADD132SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 9d /r ] AVX512,FUTURE -VFNMADD213PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 ac /r ] AVX512,FUTURE -VFNMADD213PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 ac /r ] AVX512,FUTURE -VFNMADD213SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 ad /r ] AVX512,FUTURE -VFNMADD213SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 ad /r ] AVX512,FUTURE -VFNMADD231PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 bc /r ] AVX512,FUTURE -VFNMADD231PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 bc /r ] AVX512,FUTURE -VFNMADD231SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 bd /r ] AVX512,FUTURE -VFNMADD231SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 bd /r ] AVX512,FUTURE -VFNMSUB132PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 9e /r ] AVX512,FUTURE -VFNMSUB132PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 9e /r ] AVX512,FUTURE -VFNMSUB132SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 9f /r ] AVX512,FUTURE -VFNMSUB132SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 9f /r ] AVX512,FUTURE -VFNMSUB213PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 ae /r ] AVX512,FUTURE -VFNMSUB213PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 ae /r ] AVX512,FUTURE -VFNMSUB213SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 af /r ] AVX512,FUTURE -VFNMSUB213SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 af /r ] AVX512,FUTURE -VFNMSUB231PD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 be /r ] AVX512,FUTURE -VFNMSUB231PS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 be /r ] AVX512,FUTURE -VFNMSUB231SD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.66.0f38.w1 bf /r ] AVX512,FUTURE -VFNMSUB231SS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.66.0f38.w0 bf /r ] AVX512,FUTURE -VGATHERDPD zmmreg|mask,ymem64 [rm:t1s: vsiby evex.512.66.0f38.w1 92 /r ] AVX512,FUTURE -VGATHERDPS zmmreg|mask,zmem32 [rm:t1s: vsibz evex.512.66.0f38.w0 92 /r ] AVX512,FUTURE -VGATHERQPD zmmreg|mask,zmem64 [rm:t1s: vsibz evex.512.66.0f38.w1 93 /r ] AVX512,FUTURE -VGATHERQPS ymmreg|mask,zmem32 [rm:t1s: vsibz evex.512.66.0f38.w0 93 /r ] AVX512,FUTURE -VGETEXPPD zmmreg|mask|z,zmmrm512|b64|sae [rm:fv: evex.512.66.0f38.w1 42 /r ] AVX512,FUTURE -VGETEXPPS zmmreg|mask|z,zmmrm512|b32|sae [rm:fv: evex.512.66.0f38.w0 42 /r ] AVX512,FUTURE -VGETEXPSD xmmreg|mask|z,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.66.0f38.w1 43 /r ] AVX512,FUTURE -VGETEXPSS xmmreg|mask|z,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.66.0f38.w0 43 /r ] AVX512,FUTURE -VGETMANTPD zmmreg|mask|z,zmmrm512|b64|sae,imm8 [rmi:fv: evex.512.66.0f3a.w1 26 /r ib ] AVX512,FUTURE -VGETMANTPS zmmreg|mask|z,zmmrm512|b32|sae,imm8 [rmi:fv: evex.512.66.0f3a.w0 26 /r ib ] AVX512,FUTURE -VGETMANTSD xmmreg|mask|z,xmmreg,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.lig.66.0f3a.w1 27 /r ib ] AVX512,FUTURE -VGETMANTSS xmmreg|mask|z,xmmreg,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.lig.66.0f3a.w0 27 /r ib ] AVX512,FUTURE -VINSERTF32X4 zmmreg|mask|z,zmmreg,xmmrm128,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w0 18 /r ib ] AVX512,FUTURE -VINSERTF64X4 zmmreg|mask|z,zmmreg,ymmrm256,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w1 1a /r ib ] AVX512,FUTURE -VINSERTI32X4 zmmreg|mask|z,zmmreg,xmmrm128,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w0 38 /r ib ] AVX512,FUTURE -VINSERTI64X4 zmmreg|mask|z,zmmreg,ymmrm256,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w1 3a /r ib ] AVX512,FUTURE -VINSERTPS xmmreg,xmmreg,xmmrm32,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w0 21 /r ib ] AVX512,FUTURE -VMAXPD zmmreg|mask|z,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 5f /r ] AVX512,FUTURE -VMAXPS zmmreg|mask|z,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 5f /r ] AVX512,FUTURE -VMAXSD xmmreg|mask|z,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 5f /r ] AVX512,FUTURE -VMAXSS xmmreg|mask|z,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 5f /r ] AVX512,FUTURE -VMINPD zmmreg|mask|z,zmmreg,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 5d /r ] AVX512,FUTURE -VMINPS zmmreg|mask|z,zmmreg,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 5d /r ] AVX512,FUTURE -VMINSD xmmreg|mask|z,xmmreg,xmmrm64|sae [rvm:t1s: evex.nds.lig.f2.0f.w1 5d /r ] AVX512,FUTURE -VMINSS xmmreg|mask|z,xmmreg,xmmrm32|sae [rvm:t1s: evex.nds.lig.f3.0f.w0 5d /r ] AVX512,FUTURE -VMOVAPD zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.66.0f.w1 28 /r ] AVX512,FUTURE -VMOVAPD mem512|mask,zmmreg [mr:fvm: evex.512.66.0f.w1 29 /r ] AVX512,FUTURE -VMOVAPD zmmreg|mask|z,zmmreg [mr: evex.512.66.0f.w1 29 /r ] AVX512,FUTURE -VMOVAPS zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.0f.w0 28 /r ] AVX512,FUTURE -VMOVAPS zmmreg|mask|z,zmmreg [mr: evex.512.0f.w0 29 /r ] AVX512,FUTURE -VMOVAPS mem512|mask,zmmreg [mr:fvm: evex.512.0f.w0 29 /r ] AVX512,FUTURE -VMOVD xmmreg,rm32 [rm:t1s: evex.128.66.0f.w0 6e /r ] AVX512,FUTURE -VMOVD rm32,xmmreg [mr:t1s: evex.128.66.0f.w0 7e /r ] AVX512,FUTURE -VMOVDDUP zmmreg|mask|z,zmmrm512 [rm:dup: evex.512.f2.0f.w1 12 /r ] AVX512,FUTURE -VMOVDQA32 zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.66.0f.w0 6f /r ] AVX512,FUTURE -VMOVDQA32 mem512|mask,zmmreg [mr:fvm: evex.512.66.0f.w0 7f /r ] AVX512,FUTURE -VMOVDQA32 zmmreg|mask|z,zmmreg [mr: evex.512.66.0f.w0 7f /r ] AVX512,FUTURE -VMOVDQA64 zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.66.0f.w1 6f /r ] AVX512,FUTURE -VMOVDQA64 zmmreg|mask|z,zmmreg [mr: evex.512.66.0f.w1 7f /r ] AVX512,FUTURE -VMOVDQA64 mem512|mask,zmmreg [mr:fvm: evex.512.66.0f.w1 7f /r ] AVX512,FUTURE -VMOVDQU32 zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.f3.0f.w0 6f /r ] AVX512,FUTURE -VMOVDQU32 mem512|mask,zmmreg [mr:fvm: evex.512.f3.0f.w0 7f /r ] AVX512,FUTURE -VMOVDQU32 zmmreg|mask|z,zmmreg [mr: evex.512.f3.0f.w0 7f /r ] AVX512,FUTURE -VMOVDQU64 zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.f3.0f.w1 6f /r ] AVX512,FUTURE -VMOVDQU64 mem512|mask,zmmreg [mr:fvm: evex.512.f3.0f.w1 7f /r ] AVX512,FUTURE -VMOVDQU64 zmmreg|mask|z,zmmreg [mr: evex.512.f3.0f.w1 7f /r ] AVX512,FUTURE -VMOVHLPS xmmreg,xmmreg,xmmreg [rvm: evex.nds.128.0f.w0 12 /r ] AVX512,FUTURE -VMOVHPD xmmreg,xmmreg,mem64 [rvm:t1s: evex.nds.128.66.0f.w1 16 /r ] AVX512,FUTURE -VMOVHPD mem64,xmmreg [mr:t1s: evex.128.66.0f.w1 17 /r ] AVX512,FUTURE -VMOVHPS xmmreg,xmmreg,mem64 [rvm:t2: evex.nds.128.0f.w0 16 /r ] AVX512,FUTURE -VMOVHPS mem64,xmmreg [mr:t2: evex.128.0f.w0 17 /r ] AVX512,FUTURE -VMOVLHPS xmmreg,xmmreg,xmmreg [rvm: evex.nds.128.0f.w0 16 /r ] AVX512,FUTURE -VMOVLPD xmmreg,xmmreg,mem64 [rvm:t1s: evex.nds.128.66.0f.w1 12 /r ] AVX512,FUTURE -VMOVLPD mem64,xmmreg [mr:t1s: evex.128.66.0f.w1 13 /r ] AVX512,FUTURE -VMOVLPS xmmreg,xmmreg,mem64 [rvm:t2: evex.nds.128.0f.w0 12 /r ] AVX512,FUTURE -VMOVLPS mem64,xmmreg [mr:t2: evex.128.0f.w0 13 /r ] AVX512,FUTURE -VMOVNTDQ mem512,zmmreg [mr:fvm: evex.512.66.0f.w0 e7 /r ] AVX512,FUTURE -VMOVNTDQA zmmreg,mem512 [rm:fvm: evex.512.66.0f38.w0 2a /r ] AVX512,FUTURE -VMOVNTPD mem512,zmmreg [mr:fvm: evex.512.66.0f.w1 2b /r ] AVX512,FUTURE -VMOVNTPS mem512,zmmreg [mr:fvm: evex.512.0f.w0 2b /r ] AVX512,FUTURE -VMOVQ xmmreg,rm64 [rm:t1s: evex.128.66.0f.w1 6e /r ] AVX512,FUTURE -VMOVQ rm64,xmmreg [mr:t1s: evex.128.66.0f.w1 7e /r ] AVX512,FUTURE -VMOVQ xmmreg,xmmrm64 [rm:t1s: evex.128.f3.0f.w1 7e /r ] AVX512,FUTURE -VMOVQ xmmrm64,xmmreg [mr:t1s: evex.128.66.0f.w1 d6 /r ] AVX512,FUTURE -VMOVSD xmmreg|mask|z,xmmreg,xmmreg [rvm: evex.nds.lig.f2.0f.w1 10 /r ] AVX512,FUTURE -VMOVSD xmmreg|mask|z,mem64 [rm:t1s: evex.lig.f2.0f.w1 10 /r ] AVX512,FUTURE -VMOVSD mem64|mask,xmmreg [mr:t1s: evex.lig.f2.0f.w1 11 /r ] AVX512,FUTURE -VMOVSD xmmreg|mask|z,xmmreg,xmmreg [mvr: evex.nds.lig.f2.0f.w1 11 /r ] AVX512,FUTURE -VMOVSHDUP zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.f3.0f.w0 16 /r ] AVX512,FUTURE -VMOVSLDUP zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.f3.0f.w0 12 /r ] AVX512,FUTURE -VMOVSS xmmreg|mask|z,mem32 [rm:t1s: evex.lig.f3.0f.w0 10 /r ] AVX512,FUTURE -VMOVSS xmmreg|mask|z,xmmreg,xmmreg [rvm: evex.nds.lig.f3.0f.w0 10 /r ] AVX512,FUTURE -VMOVSS mem32|mask,xmmreg [mr:t1s: evex.lig.f3.0f.w0 11 /r ] AVX512,FUTURE -VMOVSS xmmreg|mask|z,xmmreg,xmmreg [mvr: evex.nds.lig.f3.0f.w0 11 /r ] AVX512,FUTURE -VMOVUPD zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.66.0f.w1 10 /r ] AVX512,FUTURE -VMOVUPD mem512|mask,zmmreg [mr:fvm: evex.512.66.0f.w1 11 /r ] AVX512,FUTURE -VMOVUPD zmmreg|mask|z,zmmreg [mr: evex.512.66.0f.w1 11 /r ] AVX512,FUTURE -VMOVUPS zmmreg|mask|z,zmmrm512 [rm:fvm: evex.512.0f.w0 10 /r ] AVX512,FUTURE -VMOVUPS zmmreg|mask|z,zmmreg [mr: evex.512.0f.w0 11 /r ] AVX512,FUTURE -VMOVUPS mem512|mask,zmmreg [mr:fvm: evex.512.0f.w0 11 /r ] AVX512,FUTURE -VMULPD zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f.w1 59 /r ] AVX512,FUTURE -VMULPS zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.0f.w0 59 /r ] AVX512,FUTURE -VMULSD xmmreg|mask|z,xmmreg,xmmrm64|er [rvm:t1s: evex.nds.lig.f2.0f.w1 59 /r ] AVX512,FUTURE -VMULSS xmmreg|mask|z,xmmreg,xmmrm32|er [rvm:t1s: evex.nds.lig.f3.0f.w0 59 /r ] AVX512,FUTURE -VPABSD zmmreg|mask|z,zmmrm512|b32 [rm:fv: evex.512.66.0f38.w0 1e /r ] AVX512,FUTURE -VPABSQ zmmreg|mask|z,zmmrm512|b64 [rm:fv: evex.512.66.0f38.w1 1f /r ] AVX512,FUTURE -VPADDD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f.w0 fe /r ] AVX512,FUTURE -VPADDQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f.w1 d4 /r ] AVX512,FUTURE -VPANDD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f.w0 db /r ] AVX512,FUTURE -VPANDND zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f.w0 df /r ] AVX512,FUTURE -VPANDNQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f.w1 df /r ] AVX512,FUTURE -VPANDQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f.w1 db /r ] AVX512,FUTURE -VPBLENDMD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 64 /r ] AVX512,FUTURE -VPBLENDMQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 64 /r ] AVX512,FUTURE -VPBROADCASTD zmmreg|mask|z,xmmreg [rm: evex.512.66.0f38.w0 58 /r ] AVX512,FUTURE -VPBROADCASTD zmmreg|mask|z,mem32 [rm:t1s: evex.512.66.0f38.w0 58 /r ] AVX512,FUTURE -VPBROADCASTD zmmreg|mask|z,reg32 [rm: evex.512.66.0f38.w0 7c /r ] AVX512,FUTURE -VPBROADCASTQ zmmreg|mask|z,xmmreg [rm: evex.512.66.0f38.w1 59 /r ] AVX512,FUTURE -VPBROADCASTQ zmmreg|mask|z,mem64 [rm:t1s: evex.512.66.0f38.w1 59 /r ] AVX512,FUTURE -VPBROADCASTQ zmmreg|mask|z,reg64 [rm: evex.512.66.0f38.w1 7c /r ] AVX512,FUTURE -VPCMPLTD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1f /r 01 ] AVX512,FUTURE -VPCMPLED kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1f /r 02 ] AVX512,FUTURE -VPCMPNEQD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1f /r 04 ] AVX512,FUTURE -VPCMPNLTD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1f /r 05 ] AVX512,FUTURE -VPCMPNLED kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1f /r 06 ] AVX512,FUTURE -VPCMPD kreg|mask,zmmreg,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 1f /r ib ] AVX512,FUTURE -VPCMPEQD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f.w0 76 /r ] AVX512,FUTURE -VPCMPEQQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 29 /r ] AVX512,FUTURE -VPCMPGTD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f.w0 66 /r ] AVX512,FUTURE -VPCMPGTQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 37 /r ] AVX512,FUTURE -VPCMPLTQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1f /r 01 ] AVX512,FUTURE -VPCMPLEQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1f /r 02 ] AVX512,FUTURE -VPCMPNEQQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1f /r 04 ] AVX512,FUTURE -VPCMPNLTQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1f /r 05 ] AVX512,FUTURE -VPCMPNLEQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1f /r 06 ] AVX512,FUTURE -VPCMPQ kreg|mask,zmmreg,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 1f /r ib ] AVX512,FUTURE -VPCMPEQUD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1e /r 00 ] AVX512,FUTURE -VPCMPLTUD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1e /r 01 ] AVX512,FUTURE -VPCMPLEUD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1e /r 02 ] AVX512,FUTURE -VPCMPNEQUD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1e /r 04 ] AVX512,FUTURE -VPCMPNLTUD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1e /r 05 ] AVX512,FUTURE -VPCMPNLEUD kreg|mask,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f3a.w0 1e /r 06 ] AVX512,FUTURE -VPCMPUD kreg|mask,zmmreg,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 1e /r ib ] AVX512,FUTURE -VPCMPEQUQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1e /r 00 ] AVX512,FUTURE -VPCMPLTUQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1e /r 01 ] AVX512,FUTURE -VPCMPLEUQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1e /r 02 ] AVX512,FUTURE -VPCMPNEQUQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1e /r 04 ] AVX512,FUTURE -VPCMPNLTUQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1e /r 05 ] AVX512,FUTURE -VPCMPNLEUQ kreg|mask,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f3a.w1 1e /r 06 ] AVX512,FUTURE -VPCMPUQ kreg|mask,zmmreg,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 1e /r ib ] AVX512,FUTURE -VPCOMPRESSD zmmreg|mask|z,zmmreg [mr: evex.512.66.0f38.w0 8b /r ] AVX512,FUTURE -VPCOMPRESSD mem512|mask,zmmreg [mr:t1s: evex.512.66.0f38.w0 8b /r ] AVX512,FUTURE -VPCOMPRESSQ zmmreg|mask|z,zmmreg [mr: evex.512.66.0f38.w1 8b /r ] AVX512,FUTURE -VPCOMPRESSQ mem512|mask,zmmreg [mr:t1s: evex.512.66.0f38.w1 8b /r ] AVX512,FUTURE -VPERMD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 36 /r ] AVX512,FUTURE -VPERMI2D zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 76 /r ] AVX512,FUTURE -VPERMI2PD zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 77 /r ] AVX512,FUTURE -VPERMI2PS zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 77 /r ] AVX512,FUTURE -VPERMI2Q zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 76 /r ] AVX512,FUTURE -VPERMILPD zmmreg|mask|z,zmmrm512|b64,imm8 [rmi:fv: evex.512.66.0f3a.w1 05 /r ib ] AVX512,FUTURE -VPERMILPD zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 0d /r ] AVX512,FUTURE -VPERMILPS zmmreg|mask|z,zmmrm512|b32,imm8 [rmi:fv: evex.512.66.0f3a.w0 04 /r ib ] AVX512,FUTURE -VPERMILPS zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 0c /r ] AVX512,FUTURE -VPERMPD zmmreg|mask|z,zmmrm512|b64,imm8 [rmi:fv: evex.512.66.0f3a.w1 01 /r ib ] AVX512,FUTURE -VPERMPD zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 16 /r ] AVX512,FUTURE -VPERMPS zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 16 /r ] AVX512,FUTURE -VPERMQ zmmreg|mask|z,zmmrm512|b64,imm8 [rmi:fv: evex.512.66.0f3a.w1 00 /r ib ] AVX512,FUTURE -VPERMQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 36 /r ] AVX512,FUTURE -VPERMT2D zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 7e /r ] AVX512,FUTURE -VPERMT2PD zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 7f /r ] AVX512,FUTURE -VPERMT2PS zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 7f /r ] AVX512,FUTURE -VPERMT2Q zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 7e /r ] AVX512,FUTURE -VPEXPANDD zmmreg|mask|z,zmmreg [rm:t1s: evex.512.66.0f38.w0 89 /r ] AVX512,FUTURE -VPEXPANDD zmmreg|mask|z,mem512 [rm:t1s: evex.512.66.0f38.w0 89 /r ] AVX512,FUTURE -VPEXPANDQ zmmreg|mask|z,mem512 [rm:t1s: evex.512.66.0f38.w1 89 /r ] AVX512,FUTURE -VPEXPANDQ zmmreg|mask|z,zmmreg [rm:t1s: evex.512.66.0f38.w1 89 /r ] AVX512,FUTURE -VPGATHERDD zmmreg|mask,zmem32 [rm:t1s: vsibz evex.512.66.0f38.w0 90 /r ] AVX512,FUTURE -VPGATHERDQ zmmreg|mask,ymem64 [rm:t1s: vsiby evex.512.66.0f38.w1 90 /r ] AVX512,FUTURE -VPGATHERQD ymmreg|mask,zmem32 [rm:t1s: vsibz evex.512.66.0f38.w0 91 /r ] AVX512,FUTURE -VPGATHERQQ zmmreg|mask,zmem64 [rm:t1s: vsibz evex.512.66.0f38.w1 91 /r ] AVX512,FUTURE -VPMAXSD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 3d /r ] AVX512,FUTURE -VPMAXSQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 3d /r ] AVX512,FUTURE -VPMAXUD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 3f /r ] AVX512,FUTURE -VPMAXUQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 3f /r ] AVX512,FUTURE -VPMINSD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 39 /r ] AVX512,FUTURE -VPMINSQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 39 /r ] AVX512,FUTURE -VPMINUD zmmreg|mask|z,zmmreg,zmmrm512|b32 [rvm:fv: evex.nds.512.66.0f38.w0 3b /r ] AVX512,FUTURE -VPMINUQ zmmreg|mask|z,zmmreg,zmmrm512|b64 [rvm:fv: evex.nds.512.66.0f38.w1 3b /r ] AVX512,FUTURE -VPMOVDB xmmreg|mask|z,zmmreg [mr: evex.512.f3.0f38.w0 31 /r ] AVX512,FUTURE -VPMOVDB mem128|... [truncated message content] |
From: nasm-bot f. J. K. <jam...@li...> - 2014-10-17 22:24:27
|
Commit-ID: e3e4f7c8fb5df82e6c4a737953b9c67fd5bd71ac Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=e3e4f7c8fb5df82e6c4a737953b9c67fd5bd71ac Author: Jim Kukunas <jam...@li...> AuthorDate: Fri, 17 Oct 2014 14:51:36 -0700 Committer: Jim Kukunas <jam...@li...> CommitDate: Fri, 17 Oct 2014 15:07:41 -0700 doc: Document -MF/-MD and updated AVX512 instructions Document changes for 2.11.06 Signed-off-by: Jim Kukunas <jam...@li...> --- doc/changes.src | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/changes.src b/doc/changes.src index ec4de21..b83738f 100644 --- a/doc/changes.src +++ b/doc/changes.src @@ -7,6 +7,15 @@ The NASM 2 series supports x86-64, and is the production version of NASM since 2007. +\S{cl-2.11.06} Version 2.11.06 + +\b Update AVX512 instructions based on the Extension Reference (319433-021 Sept +2014). + +\b Fix the behavior of \c{-MF} and \c{-MD} options (Bugzilla 3392280) + +\b Updated Win32 Makefile to fix issue with build + \S{cl-2.11.05} Version 2.11.05 \b Add \c{--v} as an alias for \c{-v} (see \k{opt-v}), for |
From: nasm-bot f. J. K. <jam...@li...> - 2014-10-17 22:24:26
|
Commit-ID: 505de5dc57788afb50f5c6bb65e39fd45f954e05 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=505de5dc57788afb50f5c6bb65e39fd45f954e05 Author: Jim Kukunas <jam...@li...> AuthorDate: Fri, 17 Oct 2014 15:19:41 -0700 Committer: Jim Kukunas <jam...@li...> CommitDate: Fri, 17 Oct 2014 15:19:41 -0700 NASM 2.11.06 --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index a5f3e2d..5abdbf8 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.11.05 +2.11.06 |
From: nasm-bot f. C. G. <gor...@gm...> - 2014-09-27 16:06:30
|
Commit-ID: 8a076f426013415296a4fb5841d5932053de8ada Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=8a076f426013415296a4fb5841d5932053de8ada Author: Cyrill Gorcunov <gor...@gm...> AuthorDate: Mon, 15 Sep 2014 01:43:22 +0400 Committer: Cyrill Gorcunov <gor...@gm...> CommitDate: Sun, 21 Sep 2014 13:05:03 +0400 output: elf -- Use common elf_ structures Signed-off-by: Cyrill Gorcunov <gor...@gm...> --- output/outelf32.c | 86 +++++++++++++++------------------------------------ output/outelf64.c | 90 ++++++++++++++++-------------------------------------- output/outelfx32.c | 89 ++++++++++++++++------------------------------------- 3 files changed, 77 insertions(+), 188 deletions(-) diff --git a/output/outelf32.c b/output/outelf32.c index 462e5bc..af0547a 100644 --- a/output/outelf32.c +++ b/output/outelf32.c @@ -61,44 +61,8 @@ #ifdef OF_ELF32 -/* - * Relocation types. - */ -struct Reloc { - struct Reloc *next; - int32_t address; /* relative to _start_ of section */ - int32_t symbol; /* symbol index */ - int type; /* type of relocation */ -}; - -struct Symbol { - struct rbtree symv; /* symbol value and symbol rbtree */ - int32_t strpos; /* string table position of name */ - int32_t section; /* section ID of the symbol */ - int type; /* symbol type */ - int other; /* symbol visibility */ - int32_t size; /* size of symbol */ - int32_t globnum; /* symbol table offset if global */ - struct Symbol *nextfwd; /* list of unresolved-size symbols */ - char *name; /* used temporarily if in above list */ -}; - -struct Section { - struct SAA *data; - uint32_t len, size, nrelocs; - int32_t index; - int type; /* SHT_PROGBITS or SHT_NOBITS */ - uint32_t align; /* alignment: power of two */ - uint32_t flags; /* section flags */ - char *name; - struct SAA *rel; - int32_t rellen; - struct Reloc *head, **tail; - struct rbtree *gsyms; /* global symbols in section */ -}; - #define SECT_DELTA 32 -static struct Section **sects; +static struct elf_section **sects; static int nsects, sectlen; #define SHSTR_DELTA 256 @@ -115,7 +79,7 @@ static struct RAA *bsym; static struct SAA *strs; static uint32_t strslen; -static struct Symbol *fwds; +static struct elf_symbol *fwds; static char elf_module[FILENAME_MAX]; @@ -130,13 +94,13 @@ static int elf_nsect, nsections; static int32_t elf_foffs; static void elf_write(void); -static void elf_sect_write(struct Section *, const uint8_t *, +static void elf_sect_write(struct elf_section *, const uint8_t *, uint32_t); static void elf_section_header(int, int, int, void *, bool, int32_t, int, int, int, int); static void elf_write_sections(void); static struct SAA *elf_build_symtab(int32_t *, int32_t *); -static struct SAA *elf_build_reltab(int32_t *, struct Reloc *); +static struct SAA *elf_build_reltab(uint64_t *, struct elf_reloc *); static void add_sectname(char *, char *); struct erel { @@ -191,7 +155,7 @@ static int32_t dwarf_infosym, dwarf_abbrevsym, dwarf_linesym; static struct dfmt df_dwarf; static struct dfmt df_stabs; -static struct Symbol *lastsym; +static struct elf_symbol *lastsym; /* common debugging routines */ static void debug32_typevalue(int32_t); @@ -226,7 +190,7 @@ static void elf_init(void) { sects = NULL; nsects = sectlen = 0; - syms = saa_init((int32_t)sizeof(struct Symbol)); + syms = saa_init((int32_t)sizeof(struct elf_symbol)); nlocals = nglobs = ndebugs = 0; bsym = raa_init(); strs = saa_init(1L); @@ -257,7 +221,7 @@ static void elf_init(void) static void elf_cleanup(int debuginfo) { - struct Reloc *r; + struct elf_reloc *r; int i; (void)debuginfo; @@ -295,7 +259,7 @@ static void add_sectname(char *firsthalf, char *secondhalf) static int elf_make_section(char *name, int type, int flags, int align) { - struct Section *s; + struct elf_section *s; s = nasm_zalloc(sizeof(*s)); @@ -383,7 +347,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, int is_global, char *special) { int pos = strslen; - struct Symbol *sym; + struct elf_symbol *sym; bool special_used = false; #if defined(DEBUG) && DEBUG>2 @@ -405,7 +369,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, } if (is_global == 3) { - struct Symbol **s; + struct elf_symbol **s; /* * Fix up a forward-reference symbol size from the first * pass. @@ -595,11 +559,11 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, nasm_error(ERR_NONFATAL, "no special symbol features supported here"); } -static void elf_add_reloc(struct Section *sect, int32_t segment, int type) +static void elf_add_reloc(struct elf_section *sect, int32_t segment, int type) { - struct Reloc *r; + struct elf_reloc *r; - r = *sect->tail = nasm_zalloc(sizeof(struct Reloc)); + r = *sect->tail = nasm_zalloc(sizeof(struct elf_reloc)); sect->tail = &r->next; r->address = sect->len; @@ -638,13 +602,13 @@ static void elf_add_reloc(struct Section *sect, int32_t segment, int type) * Inefficiency: we search, currently, using a linked list which * isn't even necessarily sorted. */ -static int32_t elf_add_gsym_reloc(struct Section *sect, +static int32_t elf_add_gsym_reloc(struct elf_section *sect, int32_t segment, uint32_t offset, int type, bool exact) { - struct Reloc *r; - struct Section *s; - struct Symbol *sym; + struct elf_reloc *r; + struct elf_section *s; + struct elf_symbol *sym; struct rbtree *srb; int i; @@ -677,9 +641,9 @@ static int32_t elf_add_gsym_reloc(struct Section *sect, " for this reference"); return 0; } - sym = container_of(srb, struct Symbol, symv); + sym = container_of(srb, struct elf_symbol, symv); - r = *sect->tail = nasm_malloc(sizeof(struct Reloc)); + r = *sect->tail = nasm_malloc(sizeof(struct elf_reloc)); sect->tail = &r->next; r->next = NULL; @@ -696,7 +660,7 @@ static void elf_out(int32_t segto, const void *data, enum out_type type, uint64_t size, int32_t segment, int32_t wrt) { - struct Section *s; + struct elf_section *s; int32_t addr; uint8_t mydata[8], *p; int reltype, bytes; @@ -1001,7 +965,7 @@ static void elf_write(void) for (i = 0; i < nsects; i++) if (sects[i]->head) sects[i]->rel = elf_build_reltab(§s[i]->rellen, - sects[i]->head); + sects[i]->head); /* * Now output the section header table. @@ -1132,7 +1096,7 @@ static void elf_write(void) static struct SAA *elf_build_symtab(int32_t *len, int32_t *local) { struct SAA *s = saa_init(1L); - struct Symbol *sym; + struct elf_symbol *sym; uint8_t entry[16], *p; int i; @@ -1251,7 +1215,7 @@ static struct SAA *elf_build_symtab(int32_t *len, int32_t *local) return s; } -static struct SAA *elf_build_reltab(int32_t *len, struct Reloc *r) +static struct SAA *elf_build_reltab(uint64_t *len, struct elf_reloc *r) { struct SAA *s; uint8_t *p, entry[8]; @@ -1327,7 +1291,7 @@ static void elf_write_sections(void) } } -static void elf_sect_write(struct Section *sect, +static void elf_sect_write(struct elf_section *sect, const uint8_t *data, uint32_t len) { saa_wbytes(sect->data, data, len); @@ -1336,7 +1300,7 @@ static void elf_sect_write(struct Section *sect, static void elf_sectalign(int32_t seg, unsigned int value) { - struct Section *s = NULL; + struct elf_section *s = NULL; int i; for (i = 0; i < nsects; i++) { diff --git a/output/outelf64.c b/output/outelf64.c index 537d3a5..0e6b6bc 100644 --- a/output/outelf64.c +++ b/output/outelf64.c @@ -60,46 +60,8 @@ #ifdef OF_ELF64 -/* - * Relocation types. - */ -struct Reloc { - struct Reloc *next; - int64_t address; /* relative to _start_ of section */ - int64_t symbol; /* symbol index */ - int64_t offset; /* symbol addend */ - int type; /* type of relocation */ -}; - -struct Symbol { - struct rbtree symv; /* symbol value and rbtree of globals */ - int32_t strpos; /* string table position of name */ - int32_t section; /* section ID of the symbol */ - int type; /* symbol type */ - int other; /* symbol visibility */ - int32_t size; /* size of symbol */ - int32_t globnum; /* symbol table offset if global */ - struct Symbol *nextfwd; /* list of unresolved-size symbols */ - char *name; /* used temporarily if in above list */ -}; - -struct Section { - struct SAA *data; - uint64_t len, size; - uint32_t nrelocs; - int32_t index; /* index into sects array */ - int type; /* SHT_PROGBITS or SHT_NOBITS */ - uint64_t align; /* alignment: power of two */ - uint64_t flags; /* section flags */ - char *name; - struct SAA *rel; - uint64_t rellen; - struct Reloc *head, **tail; - struct rbtree *gsyms; /* global symbols in section */ -}; - #define SECT_DELTA 32 -static struct Section **sects; +static struct elf_section **sects; static int nsects, sectlen; #define SHSTR_DELTA 256 @@ -116,7 +78,7 @@ static struct RAA *bsym; static struct SAA *strs; static uint32_t strslen; -static struct Symbol *fwds; +static struct elf_symbol *fwds; static char elf_module[FILENAME_MAX]; @@ -131,13 +93,13 @@ static int elf_nsect, nsections; static int64_t elf_foffs; static void elf_write(void); -static void elf_sect_write(struct Section *, const void *, size_t); -static void elf_sect_writeaddr(struct Section *, int64_t, size_t); +static void elf_sect_write(struct elf_section *, const void *, size_t); +static void elf_sect_writeaddr(struct elf_section *, int64_t, size_t); static void elf_section_header(int, int, uint64_t, void *, bool, uint64_t, int, int, int, int); static void elf_write_sections(void); static struct SAA *elf_build_symtab(int32_t *, int32_t *); -static struct SAA *elf_build_reltab(uint64_t *, struct Reloc *); +static struct SAA *elf_build_reltab(uint64_t *, struct elf_reloc *); static void add_sectname(char *, char *); struct erel { @@ -195,7 +157,7 @@ static int64_t dwarf_infosym, dwarf_abbrevsym, dwarf_linesym; static struct dfmt df_dwarf; static struct dfmt df_stabs; -static struct Symbol *lastsym; +static struct elf_symbol *lastsym; /* common debugging routines */ static void debug64_typevalue(int32_t); @@ -232,7 +194,7 @@ static void elf_init(void) maxbits = 64; sects = NULL; nsects = sectlen = 0; - syms = saa_init((int32_t)sizeof(struct Symbol)); + syms = saa_init((int32_t)sizeof(struct elf_symbol)); nlocals = nglobs = ndebugs = 0; bsym = raa_init(); strs = saa_init(1L); @@ -264,7 +226,7 @@ static void elf_init(void) static void elf_cleanup(int debuginfo) { - struct Reloc *r; + struct elf_reloc *r; int i; (void)debuginfo; @@ -303,7 +265,7 @@ static void add_sectname(char *firsthalf, char *secondhalf) static int elf_make_section(char *name, int type, int flags, int align) { - struct Section *s; + struct elf_section *s; s = nasm_zalloc(sizeof(*s)); @@ -391,7 +353,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, int is_global, char *special) { int pos = strslen; - struct Symbol *sym; + struct elf_symbol *sym; bool special_used = false; #if defined(DEBUG) && DEBUG>2 @@ -413,7 +375,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, } if (is_global == 3) { - struct Symbol **s; + struct elf_symbol **s; /* * Fix up a forward-reference symbol size from the first * pass. @@ -603,12 +565,12 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, nasm_error(ERR_NONFATAL, "no special symbol features supported here"); } -static void elf_add_reloc(struct Section *sect, int32_t segment, +static void elf_add_reloc(struct elf_section *sect, int32_t segment, int64_t offset, int type) { - struct Reloc *r; + struct elf_reloc *r; - r = *sect->tail = nasm_zalloc(sizeof(struct Reloc)); + r = *sect->tail = nasm_zalloc(sizeof(struct elf_reloc)); sect->tail = &r->next; r->address = sect->len; @@ -649,13 +611,13 @@ static void elf_add_reloc(struct Section *sect, int32_t segment, * Inefficiency: we search, currently, using a linked list which * isn't even necessarily sorted. */ -static void elf_add_gsym_reloc(struct Section *sect, +static void elf_add_gsym_reloc(struct elf_section *sect, int32_t segment, uint64_t offset, int64_t pcrel, int type, bool exact) { - struct Reloc *r; - struct Section *s; - struct Symbol *sym; + struct elf_reloc *r; + struct elf_section *s; + struct elf_symbol *sym; struct rbtree *srb; int i; @@ -687,9 +649,9 @@ static void elf_add_gsym_reloc(struct Section *sect, " for this reference"); return; } - sym = container_of(srb, struct Symbol, symv); + sym = container_of(srb, struct elf_symbol, symv); - r = *sect->tail = nasm_malloc(sizeof(struct Reloc)); + r = *sect->tail = nasm_malloc(sizeof(struct elf_reloc)); sect->tail = &r->next; r->next = NULL; @@ -705,7 +667,7 @@ static void elf_out(int32_t segto, const void *data, enum out_type type, uint64_t size, int32_t segment, int32_t wrt) { - struct Section *s; + struct elf_section *s; int64_t addr; int reltype, bytes; int i; @@ -1220,7 +1182,7 @@ static void elf_write(void) static struct SAA *elf_build_symtab(int32_t *len, int32_t *local) { struct SAA *s = saa_init(1L); - struct Symbol *sym; + struct elf_symbol *sym; uint8_t entry[24], *p; int i; @@ -1339,7 +1301,7 @@ static struct SAA *elf_build_symtab(int32_t *len, int32_t *local) return s; } -static struct SAA *elf_build_reltab(uint64_t *len, struct Reloc *r) +static struct SAA *elf_build_reltab(uint64_t *len, struct elf_reloc *r) { struct SAA *s; uint8_t *p, entry[24]; @@ -1417,13 +1379,13 @@ static void elf_write_sections(void) } } -static void elf_sect_write(struct Section *sect, const void *data, size_t len) +static void elf_sect_write(struct elf_section *sect, const void *data, size_t len) { saa_wbytes(sect->data, data, len); sect->len += len; } -static void elf_sect_writeaddr(struct Section *sect, int64_t data, size_t len) +static void elf_sect_writeaddr(struct elf_section *sect, int64_t data, size_t len) { saa_writeaddr(sect->data, data, len); sect->len += len; @@ -1431,7 +1393,7 @@ static void elf_sect_writeaddr(struct Section *sect, int64_t data, size_t len) static void elf_sectalign(int32_t seg, unsigned int value) { - struct Section *s = NULL; + struct elf_section *s = NULL; int i; for (i = 0; i < nsects; i++) { diff --git a/output/outelfx32.c b/output/outelfx32.c index ccb022d..6b352a2 100644 --- a/output/outelfx32.c +++ b/output/outelfx32.c @@ -60,45 +60,8 @@ #ifdef OF_ELFX32 -/* - * Relocation types. - */ -struct Reloc { - struct Reloc *next; - int32_t address; /* relative to _start_ of section */ - int32_t symbol; /* symbol index */ - int32_t offset; /* symbol addend */ - int type; /* type of relocation */ -}; - -struct Symbol { - struct rbtree symv; /* symbol value and rbtree of globals */ - int32_t strpos; /* string table position of name */ - int32_t section; /* section ID of the symbol */ - int type; /* symbol type */ - int other; /* symbol visibility */ - int32_t size; /* size of symbol */ - int32_t globnum; /* symbol table offset if global */ - struct Symbol *nextfwd; /* list of unresolved-size symbols */ - char *name; /* used temporarily if in above list */ -}; - -struct Section { - struct SAA *data; - uint32_t len, size, nrelocs; - int32_t index; /* index into sects array */ - int type; /* SHT_PROGBITS or SHT_NOBITS */ - uint32_t align; /* alignment: power of two */ - uint32_t flags; /* section flags */ - char *name; - struct SAA *rel; - uint32_t rellen; - struct Reloc *head, **tail; - struct rbtree *gsyms; /* global symbols in section */ -}; - #define SECT_DELTA 32 -static struct Section **sects; +static struct elf_section **sects; static int nsects, sectlen; #define SHSTR_DELTA 256 @@ -115,7 +78,7 @@ static struct RAA *bsym; static struct SAA *strs; static uint32_t strslen; -static struct Symbol *fwds; +static struct elf_symbol *fwds; static char elf_module[FILENAME_MAX]; @@ -130,13 +93,13 @@ static int elf_nsect, nsections; static int32_t elf_foffs; static void elf_write(void); -static void elf_sect_write(struct Section *, const void *, size_t); -static void elf_sect_writeaddr(struct Section *, int32_t, size_t); +static void elf_sect_write(struct elf_section *, const void *, size_t); +static void elf_sect_writeaddr(struct elf_section *, int32_t, size_t); static void elf_section_header(int, int, uint32_t, void *, bool, uint32_t, int, int, int, int); static void elf_write_sections(void); static struct SAA *elf_build_symtab(int32_t *, int32_t *); -static struct SAA *elf_build_reltab(uint32_t *, struct Reloc *); +static struct SAA *elf_build_reltab(uint64_t *, struct elf_reloc *); static void add_sectname(char *, char *); struct erel { @@ -193,7 +156,7 @@ static int32_t dwarf_infosym, dwarf_abbrevsym, dwarf_linesym; static struct dfmt df_dwarf; static struct dfmt df_stabs; -static struct Symbol *lastsym; +static struct elf_symbol *lastsym; /* common debugging routines */ static void debugx32_typevalue(int32_t); @@ -230,7 +193,7 @@ static void elf_init(void) maxbits = 64; sects = NULL; nsects = sectlen = 0; - syms = saa_init((int32_t)sizeof(struct Symbol)); + syms = saa_init((int32_t)sizeof(struct elf_symbol)); nlocals = nglobs = ndebugs = 0; bsym = raa_init(); strs = saa_init(1L); @@ -262,7 +225,7 @@ static void elf_init(void) static void elf_cleanup(int debuginfo) { - struct Reloc *r; + struct elf_reloc *r; int i; (void)debuginfo; @@ -301,7 +264,7 @@ static void add_sectname(char *firsthalf, char *secondhalf) static int elf_make_section(char *name, int type, int flags, int align) { - struct Section *s; + struct elf_section *s; s = nasm_zalloc(sizeof(*s)); @@ -389,7 +352,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, int is_global, char *special) { int pos = strslen; - struct Symbol *sym; + struct elf_symbol *sym; bool special_used = false; #if defined(DEBUG) && DEBUG>2 @@ -411,7 +374,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, } if (is_global == 3) { - struct Symbol **s; + struct elf_symbol **s; /* * Fix up a forward-reference symbol size from the first * pass. @@ -601,12 +564,12 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, nasm_error(ERR_NONFATAL, "no special symbol features supported here"); } -static void elf_add_reloc(struct Section *sect, int32_t segment, +static void elf_add_reloc(struct elf_section *sect, int32_t segment, int32_t offset, int type) { - struct Reloc *r; + struct elf_reloc *r; - r = *sect->tail = nasm_zalloc(sizeof(struct Reloc)); + r = *sect->tail = nasm_zalloc(sizeof(struct elf_reloc)); sect->tail = &r->next; r->address = sect->len; @@ -647,13 +610,13 @@ static void elf_add_reloc(struct Section *sect, int32_t segment, * Inefficiency: we search, currently, using a linked list which * isn't even necessarily sorted. */ -static void elf_add_gsym_reloc(struct Section *sect, +static void elf_add_gsym_reloc(struct elf_section *sect, int32_t segment, uint32_t offset, int32_t pcrel, int type, bool exact) { - struct Reloc *r; - struct Section *s; - struct Symbol *sym; + struct elf_reloc *r; + struct elf_section *s; + struct elf_symbol *sym; struct rbtree *srb; int i; @@ -685,9 +648,9 @@ static void elf_add_gsym_reloc(struct Section *sect, " for this reference"); return; } - sym = container_of(srb, struct Symbol, symv); + sym = container_of(srb, struct elf_symbol, symv); - r = *sect->tail = nasm_malloc(sizeof(struct Reloc)); + r = *sect->tail = nasm_malloc(sizeof(struct elf_reloc)); sect->tail = &r->next; r->next = NULL; @@ -703,7 +666,7 @@ static void elf_out(int32_t segto, const void *data, enum out_type type, uint64_t size, int32_t segment, int32_t wrt) { - struct Section *s; + struct elf_section *s; int32_t addr; int reltype, bytes; int i; @@ -1180,7 +1143,7 @@ static void elf_write(void) static struct SAA *elf_build_symtab(int32_t *len, int32_t *local) { struct SAA *s = saa_init(1L); - struct Symbol *sym; + struct elf_symbol *sym; uint8_t entry[24], *p; int i; @@ -1299,7 +1262,7 @@ static struct SAA *elf_build_symtab(int32_t *len, int32_t *local) return s; } -static struct SAA *elf_build_reltab(uint32_t *len, struct Reloc *r) +static struct SAA *elf_build_reltab(uint64_t *len, struct elf_reloc *r) { struct SAA *s; uint8_t *p, entry[12]; @@ -1376,12 +1339,12 @@ static void elf_write_sections(void) } } -static void elf_sect_write(struct Section *sect, const void *data, size_t len) +static void elf_sect_write(struct elf_section *sect, const void *data, size_t len) { saa_wbytes(sect->data, data, len); sect->len += len; } -static void elf_sect_writeaddr(struct Section *sect, int32_t data, size_t len) +static void elf_sect_writeaddr(struct elf_section *sect, int32_t data, size_t len) { saa_writeaddr(sect->data, data, len); sect->len += len; @@ -1389,7 +1352,7 @@ static void elf_sect_writeaddr(struct Section *sect, int32_t data, size_t len) static void elf_sectalign(int32_t seg, unsigned int value) { - struct Section *s = NULL; + struct elf_section *s = NULL; int i; for (i = 0; i < nsects; i++) { |
From: nasm-bot f. C. G. <gor...@gm...> - 2014-09-27 16:06:30
|
Commit-ID: c24568b0b0e5ca91e6326bbba5d02c90458fde86 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=c24568b0b0e5ca91e6326bbba5d02c90458fde86 Author: Cyrill Gorcunov <gor...@gm...> AuthorDate: Mon, 15 Sep 2014 01:36:12 +0400 Committer: Cyrill Gorcunov <gor...@gm...> CommitDate: Sun, 21 Sep 2014 13:03:26 +0400 output: elf -- Move common structures into outelf.h header All Elf formats we're supporting at the moment have are using same structures, move them into a header and name then with elf_ prefix. This makes a few fields to carry 64 bit integers while in former Elf32|x formats they can be 32 bit wide, but I think it's acceptable tradeoff. Signed-off-by: Cyrill Gorcunov <gor...@gm...> --- output/outelf.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/output/outelf.h b/output/outelf.h index 6267721..4d6db5d 100644 --- a/output/outelf.h +++ b/output/outelf.h @@ -38,6 +38,8 @@ #define OUTPUT_OUTELF_H #include "output/elf.h" +#include "rbtree.h" +#include "saa.h" /* symbol binding */ #define SYM_GLOBAL ELF32_ST_MKBIND(STB_GLOBAL) @@ -118,4 +120,41 @@ void elf_section_attrib(char *name, char *attr, int pass, WRITELONG(p, n_value); \ } while (0) +struct elf_reloc { + struct elf_reloc *next; + int64_t address; /* relative to _start_ of section */ + int64_t symbol; /* symbol index */ + int64_t offset; /* symbol addend */ + int type; /* type of relocation */ +}; + +struct elf_symbol { + struct rbtree symv; /* symbol value and symbol rbtree */ + int32_t strpos; /* string table position of name */ + int32_t section; /* section ID of the symbol */ + int type; /* symbol type */ + int other; /* symbol visibility */ + int32_t size; /* size of symbol */ + int32_t globnum; /* symbol table offset if global */ + struct elf_symbol *nextfwd; /* list of unresolved-size symbols */ + char *name; /* used temporarily if in above list */ +}; + +struct elf_section { + struct SAA *data; + uint64_t len; + uint64_t size; + uint64_t nrelocs; + int32_t index; + int type; /* SHT_PROGBITS or SHT_NOBITS */ + uint64_t align; /* alignment: power of two */ + uint64_t flags; /* section flags */ + char *name; + struct SAA *rel; + uint64_t rellen; + struct elf_reloc *head; + struct elf_reloc **tail; + struct rbtree *gsyms; /* global symbols in section */ +}; + #endif /* OUTPUT_OUTELF_H */ |
From: nasm-bot f. C. G. <gor...@gm...> - 2014-08-29 17:21:37
|
Commit-ID: 500dd5461cbce5e645039ac7472a3c7e772af726 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=500dd5461cbce5e645039ac7472a3c7e772af726 Author: Cyrill Gorcunov <gor...@gm...> AuthorDate: Fri, 29 Aug 2014 20:30:57 +0400 Committer: Cyrill Gorcunov <gor...@gm...> CommitDate: Fri, 29 Aug 2014 20:30:57 +0400 output: elf -- Move elf_directive into single instance For all Elf32/32x/64 this routine is the same. So lets merge it into one instance. Signed-off-by: Cyrill Gorcunov <gor...@gm...> --- output/outelf.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ output/outelf.h | 4 ++++ output/outelf32.c | 43 ------------------------------------------- output/outelf64.c | 43 ------------------------------------------- output/outelfx32.c | 43 ------------------------------------------- 5 files changed, 50 insertions(+), 129 deletions(-) diff --git a/output/outelf.c b/output/outelf.c index 19fc99f..a8e2347 100644 --- a/output/outelf.c +++ b/output/outelf.c @@ -50,6 +50,9 @@ #if defined(OF_ELF32) || defined(OF_ELF64) || defined(OF_ELFX32) +uint8_t elf_osabi = 0; /* Default OSABI = 0 (System V or Linux) */ +uint8_t elf_abiver = 0; /* Current ABI version */ + const struct elf_known_section elf_known_sections[] = { { ".text", SHT_PROGBITS, SHF_ALLOC|SHF_EXECINSTR, 16 }, { ".rodata", SHT_PROGBITS, SHF_ALLOC, 4 }, @@ -125,4 +128,47 @@ void elf_section_attrib(char *name, char *attr, int pass, } } +int elf_directive(enum directives directive, char *value, int pass) +{ + int64_t n; + bool err; + char *p; + + switch (directive) { + case D_OSABI: + if (pass == 2) + return 1; /* ignore in pass 2 */ + + n = readnum(value, &err); + if (err) { + nasm_error(ERR_NONFATAL, "`osabi' directive requires a parameter"); + return 1; + } + + if (n < 0 || n > 255) { + nasm_error(ERR_NONFATAL, "valid osabi numbers are 0 to 255"); + return 1; + } + + elf_osabi = n; + elf_abiver = 0; + + p = strchr(value,','); + if (!p) + return 1; + + n = readnum(p + 1, &err); + if (err || n < 0 || n > 255) { + nasm_error(ERR_NONFATAL, "invalid ABI version number (valid: 0 to 255)"); + return 1; + } + + elf_abiver = n; + return 1; + + default: + return 0; + } +} + #endif /* defined(OF_ELF32) || defined(OF_ELF64) || defined(OF_ELFX32) */ diff --git a/output/outelf.h b/output/outelf.h index fbf23fb..6267721 100644 --- a/output/outelf.h +++ b/output/outelf.h @@ -101,6 +101,10 @@ struct stabentry { #define sec_debug_frame (nsections-2) #define sec_debug_loc (nsections-1) +extern uint8_t elf_osabi; +extern uint8_t elf_abiver; + +int elf_directive(enum directives directive, char *value, int pass); void elf_section_attrib(char *name, char *attr, int pass, uint32_t *flags_and, uint32_t *flags_or, uint64_t *align, int *type); diff --git a/output/outelf32.c b/output/outelf32.c index 83aedb0..462e5bc 100644 --- a/output/outelf32.c +++ b/output/outelf32.c @@ -119,9 +119,6 @@ static struct Symbol *fwds; static char elf_module[FILENAME_MAX]; -static uint8_t elf_osabi = 0; /* Default OSABI = 0 (System V or Linux) */ -static uint8_t elf_abiver = 0; /* Current ABI version */ - extern struct ofmt of_elf32; static struct ELF_SECTDATA { @@ -1360,46 +1357,6 @@ static int32_t elf_segbase(int32_t segment) return segment; } -static int elf_directive(enum directives directive, char *value, int pass) -{ - bool err; - int64_t n; - char *p; - - switch (directive) { - case D_OSABI: - if (pass == 2) - return 1; /* ignore in pass 2 */ - - n = readnum(value, &err); - if (err) { - nasm_error(ERR_NONFATAL, "`osabi' directive requires a parameter"); - return 1; - } - if (n < 0 || n > 255) { - nasm_error(ERR_NONFATAL, "valid osabi numbers are 0 to 255"); - return 1; - } - elf_osabi = n; - elf_abiver = 0; - - if ((p = strchr(value,',')) == NULL) - return 1; - - n = readnum(p+1, &err); - if (err || n < 0 || n > 255) { - nasm_error(ERR_NONFATAL, "invalid ABI version number (valid: 0 to 255)"); - return 1; - } - - elf_abiver = n; - return 1; - - default: - return 0; - } -} - static void elf_filename(char *inname, char *outname) { strcpy(elf_module, inname); diff --git a/output/outelf64.c b/output/outelf64.c index 40d5f1e..537d3a5 100644 --- a/output/outelf64.c +++ b/output/outelf64.c @@ -120,9 +120,6 @@ static struct Symbol *fwds; static char elf_module[FILENAME_MAX]; -static uint8_t elf_osabi = 0; /* Default OSABI = 0 (System V or Linux) */ -static uint8_t elf_abiver = 0; /* Current ABI version */ - extern struct ofmt of_elf64; static struct ELF_SECTDATA { @@ -1455,46 +1452,6 @@ static int32_t elf_segbase(int32_t segment) return segment; } -static int elf_directive(enum directives directive, char *value, int pass) -{ - bool err; - int64_t n; - char *p; - - switch (directive) { - case D_OSABI: - if (pass == 2) - return 1; /* ignore in pass 2 */ - - n = readnum(value, &err); - if (err) { - nasm_error(ERR_NONFATAL, "`osabi' directive requires a parameter"); - return 1; - } - if (n < 0 || n > 255) { - nasm_error(ERR_NONFATAL, "valid osabi numbers are 0 to 255"); - return 1; - } - elf_osabi = n; - elf_abiver = 0; - - if ((p = strchr(value,',')) == NULL) - return 1; - - n = readnum(p+1, &err); - if (err || n < 0 || n > 255) { - nasm_error(ERR_NONFATAL, "invalid ABI version number (valid: 0 to 255)"); - return 1; - } - - elf_abiver = n; - return 1; - - default: - return 0; - } -} - static void elf_filename(char *inname, char *outname) { strcpy(elf_module, inname); diff --git a/output/outelfx32.c b/output/outelfx32.c index 1f1ed4d..ccb022d 100644 --- a/output/outelfx32.c +++ b/output/outelfx32.c @@ -119,9 +119,6 @@ static struct Symbol *fwds; static char elf_module[FILENAME_MAX]; -static uint8_t elf_osabi = 0; /* Default OSABI = 0 (System V or Linux) */ -static uint8_t elf_abiver = 0; /* Current ABI version */ - extern struct ofmt of_elfx32; static struct ELF_SECTDATA { @@ -1413,46 +1410,6 @@ static int32_t elf_segbase(int32_t segment) return segment; } -static int elf_directive(enum directives directive, char *value, int pass) -{ - bool err; - int64_t n; - char *p; - - switch (directive) { - case D_OSABI: - if (pass == 2) - return 1; /* ignore in pass 2 */ - - n = readnum(value, &err); - if (err) { - nasm_error(ERR_NONFATAL, "`osabi' directive requires a parameter"); - return 1; - } - if (n < 0 || n > 255) { - nasm_error(ERR_NONFATAL, "valid osabi numbers are 0 to 255"); - return 1; - } - elf_osabi = n; - elf_abiver = 0; - - if ((p = strchr(value,',')) == NULL) - return 1; - - n = readnum(p+1, &err); - if (err || n < 0 || n > 255) { - nasm_error(ERR_NONFATAL, "invalid ABI version number (valid: 0 to 255)"); - return 1; - } - - elf_abiver = n; - return 1; - - default: - return 0; - } -} - static void elf_filename(char *inname, char *outname) { strcpy(elf_module, inname); |
From: nasm-bot f. C. G. <gor...@gm...> - 2014-08-29 17:21:29
|
Commit-ID: 9b76c802ae6f7e85c1e0b1b15696149297ae243d Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=9b76c802ae6f7e85c1e0b1b15696149297ae243d Author: Cyrill Gorcunov <gor...@gm...> AuthorDate: Fri, 29 Aug 2014 20:24:24 +0400 Committer: Cyrill Gorcunov <gor...@gm...> CommitDate: Fri, 29 Aug 2014 20:24:24 +0400 output: elf -- Rename section_attrib to elf_section_attrib Global section_attrib name is too general. Signed-off-by: Cyrill Gorcunov <gor...@gm...> --- output/outelf.c | 6 +++--- output/outelf.h | 6 +++--- output/outelf32.c | 4 ++-- output/outelf64.c | 4 ++-- output/outelfx32.c | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/output/outelf.c b/output/outelf.c index 61ae1fc..19fc99f 100644 --- a/output/outelf.c +++ b/output/outelf.c @@ -65,9 +65,9 @@ const struct elf_known_section elf_known_sections[] = { }; /* parse section attributes */ -void section_attrib(char *name, char *attr, int pass, - uint32_t *flags_and, uint32_t *flags_or, - uint64_t *align, int *type) +void elf_section_attrib(char *name, char *attr, int pass, + uint32_t *flags_and, uint32_t *flags_or, + uint64_t *align, int *type) { char *opt, *val, *next; diff --git a/output/outelf.h b/output/outelf.h index 8ab76b0..fbf23fb 100644 --- a/output/outelf.h +++ b/output/outelf.h @@ -101,9 +101,9 @@ struct stabentry { #define sec_debug_frame (nsections-2) #define sec_debug_loc (nsections-1) -void section_attrib(char *name, char *attr, int pass, - uint32_t *flags_and, uint32_t *flags_or, - uint64_t *align, int *type); +void elf_section_attrib(char *name, char *attr, int pass, + uint32_t *flags_and, uint32_t *flags_or, + uint64_t *align, int *type); #define WRITE_STAB(p,n_strx,n_type,n_other,n_desc,n_value) \ do { \ diff --git a/output/outelf32.c b/output/outelf32.c index 413270b..83aedb0 100644 --- a/output/outelf32.c +++ b/output/outelf32.c @@ -343,8 +343,8 @@ static int32_t elf_section_names(char *name, int pass, int *bits) *p++ = '\0'; flags_and = flags_or = type = align = 0; - section_attrib(name, p, pass, &flags_and, - &flags_or, &align, &type); + elf_section_attrib(name, p, pass, &flags_and, + &flags_or, &align, &type); if (!strcmp(name, ".shstrtab") || !strcmp(name, ".symtab") || diff --git a/output/outelf64.c b/output/outelf64.c index 9f93fc8..40d5f1e 100644 --- a/output/outelf64.c +++ b/output/outelf64.c @@ -351,8 +351,8 @@ static int32_t elf_section_names(char *name, int pass, int *bits) *p++ = '\0'; flags_and = flags_or = type = align = 0; - section_attrib(name, p, pass, &flags_and, - &flags_or, &align, &type); + elf_section_attrib(name, p, pass, &flags_and, + &flags_or, &align, &type); if (!strcmp(name, ".shstrtab") || !strcmp(name, ".symtab") || diff --git a/output/outelfx32.c b/output/outelfx32.c index bbedc48..1f1ed4d 100644 --- a/output/outelfx32.c +++ b/output/outelfx32.c @@ -349,8 +349,8 @@ static int32_t elf_section_names(char *name, int pass, int *bits) *p++ = '\0'; flags_and = flags_or = type = align = 0; - section_attrib(name, p, pass, &flags_and, - &flags_or, &align, &type); + elf_section_attrib(name, p, pass, &flags_and, + &flags_or, &align, &type); if (!strcmp(name, ".shstrtab") || !strcmp(name, ".symtab") || |