mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-07-24 10:25:42 -04:00
Merge branch 'nasm-2.09.xx'
Conflicts: doc/changes.src version Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
commit
a09fe1ebfb
@ -19,7 +19,15 @@ since 2007.
|
|||||||
To force a specific form, use the \c{STRICT} keyword, see \k{strict}.
|
To force a specific form, use the \c{STRICT} keyword, see \k{strict}.
|
||||||
|
|
||||||
|
|
||||||
\S{cl-2.09.05} Version 2.09.06
|
\S{cl-2.09.07} Version 2.09.07
|
||||||
|
|
||||||
|
\b Fix attempts to close same file several times
|
||||||
|
when \c{-a} option is used.
|
||||||
|
|
||||||
|
\b Fixes for VEXTRACTF128, VMASKMOVPS encoding.
|
||||||
|
|
||||||
|
|
||||||
|
\S{cl-2.09.06} Version 2.09.06
|
||||||
|
|
||||||
\b Fix missed section attribute initialization in \c{bin} output target.
|
\b Fix missed section attribute initialization in \c{bin} output target.
|
||||||
|
|
||||||
|
@ -2323,7 +2323,7 @@ VDIVSS xmmreg,xmmreg*,xmmrm32 [rvm: vex.nds.lig.f3.0f 5e /r] AVX,SANDYBRIDGE
|
|||||||
VDPPD xmmreg,xmmreg*,xmmrm128,imm8 [rvmi: vex.nds.128.66.0f3a 41 /r ib] AVX,SANDYBRIDGE
|
VDPPD xmmreg,xmmreg*,xmmrm128,imm8 [rvmi: vex.nds.128.66.0f3a 41 /r ib] AVX,SANDYBRIDGE
|
||||||
VDPPS xmmreg,xmmreg*,xmmrm128,imm8 [rvmi: vex.nds.128.66.0f3a 40 /r ib] AVX,SANDYBRIDGE
|
VDPPS xmmreg,xmmreg*,xmmrm128,imm8 [rvmi: vex.nds.128.66.0f3a 40 /r ib] AVX,SANDYBRIDGE
|
||||||
VDPPS ymmreg,ymmreg*,ymmrm256,imm8 [rvmi: vex.nds.256.66.0f3a 40 /r ib] AVX,SANDYBRIDGE
|
VDPPS ymmreg,ymmreg*,ymmrm256,imm8 [rvmi: vex.nds.256.66.0f3a 40 /r ib] AVX,SANDYBRIDGE
|
||||||
VEXTRACTF128 xmmrm128,xmmreg,imm8 [mri: vex.256.66.0f3a.w0 19 /r ib] AVX,SANDYBRIDGE
|
VEXTRACTF128 xmmrm128,ymmreg,imm8 [mri: vex.256.66.0f3a.w0 19 /r ib] AVX,SANDYBRIDGE
|
||||||
VEXTRACTPS rm32,xmmreg,imm8 [mri: vex.128.66.0f3a 17 /r ib] AVX,SANDYBRIDGE
|
VEXTRACTPS rm32,xmmreg,imm8 [mri: vex.128.66.0f3a 17 /r ib] AVX,SANDYBRIDGE
|
||||||
VHADDPD xmmreg,xmmreg*,xmmrm128 [rvm: vex.nds.128.66.0f 7c /r] AVX,SANDYBRIDGE
|
VHADDPD xmmreg,xmmreg*,xmmrm128 [rvm: vex.nds.128.66.0f 7c /r] AVX,SANDYBRIDGE
|
||||||
VHADDPD ymmreg,ymmreg*,ymmrm256 [rvm: vex.nds.256.66.0f 7c /r] AVX,SANDYBRIDGE
|
VHADDPD ymmreg,ymmreg*,ymmrm256 [rvm: vex.nds.256.66.0f 7c /r] AVX,SANDYBRIDGE
|
||||||
@ -2343,7 +2343,7 @@ VMASKMOVDQU xmmreg,xmmreg [rm: vex.128.66.0f f7 /r] AVX,SANDYBRIDGE
|
|||||||
VMASKMOVPS xmmreg,xmmreg,mem128 [rvm: vex.nds.128.66.0f38.w0 2c /r] AVX,SANDYBRIDGE
|
VMASKMOVPS xmmreg,xmmreg,mem128 [rvm: vex.nds.128.66.0f38.w0 2c /r] AVX,SANDYBRIDGE
|
||||||
VMASKMOVPS ymmreg,ymmreg,mem256 [rvm: vex.nds.256.66.0f38.w0 2c /r] AVX,SANDYBRIDGE
|
VMASKMOVPS ymmreg,ymmreg,mem256 [rvm: vex.nds.256.66.0f38.w0 2c /r] AVX,SANDYBRIDGE
|
||||||
VMASKMOVPS mem128,xmmreg,xmmreg [mvr: vex.nds.128.66.0f38.w0 2e /r] AVX,SANDYBRIDGE,SO
|
VMASKMOVPS mem128,xmmreg,xmmreg [mvr: vex.nds.128.66.0f38.w0 2e /r] AVX,SANDYBRIDGE,SO
|
||||||
VMASKMOVPS mem256,xmmreg,xmmreg [mvr: vex.nds.256.66.0f38.w0 2e /r] AVX,SANDYBRIDGE,SY
|
VMASKMOVPS mem256,ymmreg,ymmreg [mvr: vex.nds.256.66.0f38.w0 2e /r] AVX,SANDYBRIDGE,SY
|
||||||
VMASKMOVPD xmmreg,xmmreg,mem128 [rvm: vex.nds.128.66.0f38.w0 2d /r] AVX,SANDYBRIDGE
|
VMASKMOVPD xmmreg,xmmreg,mem128 [rvm: vex.nds.128.66.0f38.w0 2d /r] AVX,SANDYBRIDGE
|
||||||
VMASKMOVPD ymmreg,ymmreg,mem256 [rvm: vex.nds.256.66.0f38.w0 2d /r] AVX,SANDYBRIDGE
|
VMASKMOVPD ymmreg,ymmreg,mem256 [rvm: vex.nds.256.66.0f38.w0 2d /r] AVX,SANDYBRIDGE
|
||||||
VMASKMOVPD mem128,xmmreg,xmmreg [mvr: vex.nds.128.66.0f38.w0 2f /r] AVX,SANDYBRIDGE
|
VMASKMOVPD mem128,xmmreg,xmmreg [mvr: vex.nds.128.66.0f38.w0 2f /r] AVX,SANDYBRIDGE
|
||||||
|
5
nasm.c
5
nasm.c
@ -2069,7 +2069,10 @@ static char *no_pp_getline(void)
|
|||||||
static void no_pp_cleanup(int pass)
|
static void no_pp_cleanup(int pass)
|
||||||
{
|
{
|
||||||
(void)pass; /* placate GCC */
|
(void)pass; /* placate GCC */
|
||||||
fclose(no_pp_fp);
|
if (no_pp_fp) {
|
||||||
|
fclose(no_pp_fp);
|
||||||
|
no_pp_fp = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t get_cpu(char *value)
|
static uint32_t get_cpu(char *value)
|
||||||
|
@ -5224,7 +5224,7 @@ static char *pp_getline(void)
|
|||||||
/* only set line and file name if there's a next node */
|
/* only set line and file name if there's a next node */
|
||||||
if (i->next) {
|
if (i->next) {
|
||||||
src_set_linnum(i->lineno);
|
src_set_linnum(i->lineno);
|
||||||
nasm_free(src_set_fname(i->fname));
|
nasm_free(src_set_fname(nasm_strdup(i->fname)));
|
||||||
}
|
}
|
||||||
if ((i->next == NULL) && (finals != NULL)) {
|
if ((i->next == NULL) && (finals != NULL)) {
|
||||||
in_final = true;
|
in_final = true;
|
||||||
|
7
test/br3189064.asm
Normal file
7
test/br3189064.asm
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
;Testname=unoptimized; Arguments=-O0 -fbin -obr3189064.bin; Files=stdout stderr br3189064.bin
|
||||||
|
;Testname=optimized; Arguments=-Ox -fbin -obr3189064.bin; Files=stdout stderr br3189064.bin
|
||||||
|
|
||||||
|
[bits 64]
|
||||||
|
VMASKMOVPS [edi],ymm0,ymm1
|
||||||
|
VEXTRACTF128 xmm0,ymm1,1
|
||||||
|
VEXTRACTF128 [edi],ymm1,1
|
9
test/br3200749.asm
Normal file
9
test/br3200749.asm
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
;Testname=unoptimized; Arguments=-O0 -fbin -obr3200749.bin; Files=stdout stderr br3200749.bin
|
||||||
|
;Testname=optimized; Arguments=-Ox -fbin -obr3200749.bin; Files=stdout stderr br3200749.bin
|
||||||
|
%define IFNDEF %ifndef
|
||||||
|
%define ENDIF %endif
|
||||||
|
|
||||||
|
IFNDEF foo
|
||||||
|
; bar
|
||||||
|
ENDIF
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user