Move regression tests out

This commit is contained in:
Anton Kochkov 2015-07-27 18:22:35 +03:00
parent 4cf3526562
commit 9e74caf15d
1178 changed files with 0 additions and 23836 deletions

View File

@ -1,56 +0,0 @@
;--- invalid operator arguments
.286
.model small
.code
v1 db 0
mov ax, type 0 ;ok
mov ax, seg 0
mov ax, offset 0;ok
mov ax, length 0
mov ax, size 0
mov ax, lengthof 0
mov ax, sizeof 0
mov ax, seg bx
mov ax, offset bx
mov ax, length bx
mov ax, size bx
mov ax, lengthof bx
mov ax, sizeof bx
mov al, HIGH bx
mov al, LOW bx]
mov ax, HIGHWORD bx
mov ax, LOWWORD bx
mov ax, seg [bx]
mov ax, offset [bx]
mov ax, length [bx]
mov ax, size [bx]
mov ax, lengthof [bx]
mov ax, sizeof [bx]
mov al, HIGH [bx]
mov al, LOW [bx]
mov ax, HIGHWORD [bx]
mov ax, LOWWORD [bx]
mov ax, seg _TEXT ;ok
mov ax, offset _TEXT ;ok
mov ax, length _TEXT ;expected data label
mov ax, size _TEXT ;expected data label
mov ax, lengthof _TEXT ;expected data label
mov ax, sizeof _TEXT ;expected data label
mov al, HIGH _TEXT ;should be an error
mov al, LOW _TEXT ;should be an error
mov ax, HIGHWORD _TEXT
mov ax, LOWWORD _TEXT ;should be an error
mov ax, length (v1+1) ;should be an error, but is currently accepted
end

View File

@ -1,30 +0,0 @@
ABS1.ASO(13) : Error A2228: Invalid operand for SEG: 0
ABS1.ASO(16) : Error A2228: Invalid operand for LENGTH: 0
ABS1.ASO(17) : Error A2228: Invalid operand for SIZE: 0
ABS1.ASO(18) : Error A2228: Invalid operand for LENGTHOF: 0
ABS1.ASO(19) : Error A2228: Invalid operand for SIZEOF: 0
ABS1.ASO(21) : Error A2228: Invalid operand for SEG: bx
ABS1.ASO(22) : Error A2228: Invalid operand for OFFSET: bx
ABS1.ASO(23) : Error A2228: Invalid operand for LENGTH: bx
ABS1.ASO(24) : Error A2228: Invalid operand for SIZE: bx
ABS1.ASO(25) : Error A2228: Invalid operand for LENGTHOF: bx
ABS1.ASO(26) : Error A2228: Invalid operand for SIZEOF: bx
ABS1.ASO(27) : Error A2228: Invalid operand for HIGH: bx
ABS1.ASO(28) : Error A2228: Invalid operand for LOW: bx
ABS1.ASO(29) : Error A2228: Invalid operand for HIGHWORD: bx
ABS1.ASO(30) : Error A2228: Invalid operand for LOWWORD: bx
ABS1.ASO(32) : Error A2228: Invalid operand for SEG: [bx]
ABS1.ASO(33) : Error A2228: Invalid operand for OFFSET: [bx]
ABS1.ASO(34) : Error A2228: Invalid operand for LENGTH: [bx]
ABS1.ASO(35) : Error A2228: Invalid operand for SIZE: [bx]
ABS1.ASO(36) : Error A2228: Invalid operand for LENGTHOF: [bx]
ABS1.ASO(37) : Error A2228: Invalid operand for SIZEOF: [bx]
ABS1.ASO(38) : Error A2228: Invalid operand for HIGH: [bx]
ABS1.ASO(39) : Error A2228: Invalid operand for LOW: [bx]
ABS1.ASO(40) : Error A2228: Invalid operand for HIGHWORD: [bx]
ABS1.ASO(41) : Error A2228: Invalid operand for LOWWORD: [bx]
ABS1.ASO(45) : Error A2232: Expected data label
ABS1.ASO(46) : Error A2232: Expected data label
ABS1.ASO(47) : Error A2232: Expected data label
ABS1.ASO(48) : Error A2232: Expected data label
ABS1.ASO(51) : Error A2228: Invalid operand for HIGHWORD: _TEXT

View File

@ -1,26 +0,0 @@
;--- "absolute" externals
.286
.model small
externdef E1:abs
.code
mov ax, seg E1 ;is to fail
mov ax, offset E1
mov ax, low E1
mov ax, high E1
mov ax, lowword E1
mov ax, highword E1 ;is to fail
mov ax, type E1
mov ax, opattr E1
mov ax, .type E1
mov ax, length E1
mov ax, size E1
mov ax, lengthof E1 ;jwasm rejects
mov ax, sizeof E1 ;jwasm rejects
end

View File

@ -1,4 +0,0 @@
ABSEXT.ASO(11) : Error A2188: Operand must be relocatable
ABSEXT.ASO(16) : Error A2228: Invalid operand for HIGHWORD: E1
ABSEXT.ASO(23) : Error A2232: Expected data label
ABSEXT.ASO(24) : Error A2232: Expected data label

View File

@ -1,31 +0,0 @@
;--- absolute segments
.286
ABSSEG segment 'CODE' at 50h
label1 label far
dd ?
label2 label far
ABSSEG ends
_TEXT segment word public 'CODE'
start:
mov ah,4ch
int 21h
mov ax, ABSSEG
jmp label1
jmp label2
dw ABSSEG
dd label1
dd label2
_TEXT ends
STACK segment stack 'STACK'
db 100h dup (?)
STACK ends
End start

Binary file not shown.

View File

@ -1,18 +0,0 @@
;--- absolute segments with -bin
;--- didn't fully work prior to v2.10
.286
_07C0 segment at 07C0h
org 100h
l100:
_07C0 ends
_TEXT segment 'CODE'
jmp _07C0:l100
_TEXT ends
end

Binary file not shown.

View File

@ -1,18 +0,0 @@
;--- absolute segments with -bin
;--- didn't fully work prior to v2.10
.386
_0010 segment at 0010h
org 87654321h
l87654321:
_0010 ends
_TEXT segment 'CODE'
jmp _0010:l87654321
_TEXT ends
end

Binary file not shown.

View File

@ -1,25 +0,0 @@
;--- test ALIAS (OMF)
;--- no error expected
.286
.model small
.dosseg
.stack 200h
includelib <alias1.lib>
.data
externdef var1:byte
externdef var2:byte
.code
start:
mov al,var1
mov al,var2
mov ah,4Ch
int 21h
END start

Binary file not shown.

View File

@ -1,21 +0,0 @@
;--- externals, 16-bit
;--- becomes alias1.lib
.286
.model small
.data
;--- syntax: ALIAS <alias> = <actual-name>
ALIAS <var1> = <var1x>
ALIAS <var2> = <var2x>
public var1x
public var2x
var1x db 0
var2x db 0
End

Binary file not shown.

View File

@ -1,27 +0,0 @@
;--- ALIAS segment attribute changes
.386
.model flat
W segment ALIAS("abc")
W ends
W segment ALIAS("abc")
W ends
X segment ALIAS("abc")
X ends
X segment ALIAS("def") ;should be an error
X ends
Y segment ALIAS("abc")
Y ends
Y segment
Y ends
Z segment
Z ends
Z segment ALIAS("abc") ;should be an error
Z ends
End

View File

@ -1,2 +0,0 @@
ALIAS2.ASC(14) : Error A2078: Segment definition changed: X, alias
ALIAS2.ASC(24) : Error A2078: Segment definition changed: Z, alias

View File

@ -1,61 +0,0 @@
;--- test ALIGNMENT
.386
S1 struct
f1 db ?
align 4
f2 dw ?
S1 ends
S2 struct 4
f1 db ?
align
f2 dw ?
S2 ends
_TEXT segment para public 'CODE'
int 3
align 8
int 3
int 3
align 8
int 3
int 3
int 3
align 8
int 3
int 3
int 3
int 3
align 8
int 3
int 3
int 3
int 3
int 3
align 8
int 3
int 3
int 3
int 3
int 3
int 3
align 8
int 3
int 3
int 3
int 3
int 3
int 3
int 3
align 8
S1 <1,2>
S2 <1,2>
_TEXT ends
END

Binary file not shown.

View File

@ -1,14 +0,0 @@
.286
_TEXT segment word public 'CODE'
db ? ;0
even ;1 should NOT emit data (works with v2.04+)
mov ax,1 ;2-4
dw ? ;5-6
even ;7 should NOT emit data (works with v2.04+)
mov ax,2 ;8-10
db ?
_TEXT ends
end

Binary file not shown.

View File

@ -1,46 +0,0 @@
.386
.model flat, stdcall
option casemap:none
.data
v1 db 0
align E1 ;error 'symbol not defined'
E1 equ 4
align 3 ;must be power of 2
align 64 ;incompatible with segment alignment
S1 struct 5 ;must be power of 2
S1 ends
S2 struct 256
db ?
S2 ends
S3 struct
db ?
align 65536 ;should work, no integer overflow
S3 ends
S4 struct E2 ;err 'symbol not defined'
db ?
S4 ends
E2 equ 4
S5 struct
db ?
align 5 ;must be power of 2
db ?
S5 ends
align v1 ;constant expected
S6 struct v1 ;constant expected
db ?
S6 ends
end

View File

@ -1,9 +0,0 @@
ALIGN3.ASO(10) : Error A2102: Symbol not defined : E1
ALIGN3.ASO(12) : Error A2129: number must be a power of 2: 3
ALIGN3.ASO(14) : Warning A4130: Incompatible with segment alignment: 64
ALIGN3.ASO(16) : Error A2129: number must be a power of 2: 5
ALIGN3.ASO(19) : Error A2214: Struct alignment must be 1, 2, 4, 8, 16 or 32
ALIGN3.ASO(28) : Error A2102: Symbol not defined : E2
ALIGN3.ASO(36) : Error A2129: number must be a power of 2: 5
ALIGN3.ASO(40) : Error A2065: Constant expected
ALIGN3.ASO(42) : Error A2065: Constant expected

View File

@ -1,16 +0,0 @@
;--- alignment values in 16-bit
code segment dword 'CODE'
nop
align 4
nop
nop
align 4 ;since v2.11, jwasm emits 8B C0 ( like Masm ); previously it was 89 C0
nop
nop
nop
align 4
code ends
end

View File

@ -1 +0,0 @@
<EFBFBD>.À<E280B9><C380>À<E280B9><C380><EFBFBD><EFBFBD>

View File

@ -1,45 +0,0 @@
;--- arithmetic instructions
;--- see arith2.asm for immediate as second operand
;--- note that jwasm's code generation is to match Masm v8.
;--- Masm v6 encodes the cmp instruction differently if
;--- operands are byte registers.
.386
.model flat
.code
vb label byte
vw label word
vd label dword
op macro instr
;;
instr al,cl
instr al,vb
instr bl,cl
instr bl,vb
instr vb,al
instr vb,bl
;;
instr ax,cx
instr ax,vw
instr bx,cx
instr bx,vw
instr vw,ax
instr vw,bx
;;
instr eax,ecx
instr eax,vd
instr ebx,ecx
instr ebx,vd
instr vd,eax
instr vd,ebx
endm
for x,<add,or,adc,sbb,and,sub,xor,cmp>
op x
endm
end

Binary file not shown.

View File

@ -1,39 +0,0 @@
;--- arithmetic instructions
;--- second operand is immediate
.386
.model flat
.code
vb label byte
vw label word
vd label dword
op macro instr
;;
instr al,80h
instr cl,80h
instr vb,80h
;;
instr ax,7fh
instr cx,7fh
instr vw,7fh
instr ax,80h
instr cx,80h
instr vw,80h
;;
instr eax,7fh
instr ecx,7fh
instr vd,7fh
instr eax,80h
instr ecx,80h
instr vd,80h
endm
for x,<add,or,adc,sbb,and,sub,xor,cmp>
op x
endm
end

Binary file not shown.

View File

@ -1,26 +0,0 @@
;--- arithmetic instructions
;--- second operand is immediate and too large
.386
.model flat
.code
vb label byte
vw label word
vd label dword
add al,100h
add cl,100h
add vb,100h
add ax,10000h ;accepted by Masm
add cx,10000h ;accepted by Masm
add vw,10000h ;accepted by Masm
add eax,100000000h
add ecx,100000000h
add vd, 100000000h
end

View File

@ -1,9 +0,0 @@
ARITH3.ASO(14) : Error A2048: Operands must be the same size: 1 - 2
ARITH3.ASO(15) : Error A2048: Operands must be the same size: 1 - 2
ARITH3.ASO(16) : Error A2048: Operands must be the same size: 1 - 2
ARITH3.ASO(18) : Error A2048: Operands must be the same size: 2 - 4
ARITH3.ASO(19) : Error A2048: Operands must be the same size: 2 - 4
ARITH3.ASO(20) : Error A2048: Operands must be the same size: 2 - 4
ARITH3.ASO(22) : Error A2235: Constant value too large: 100000000h
ARITH3.ASO(23) : Error A2235: Constant value too large: 100000000h
ARITH3.ASO(24) : Error A2235: Constant value too large: 100000000h

View File

@ -1,54 +0,0 @@
ifdef __JWASM__
.x64
.model flat
endif
.code
vb db 0
vw dw 0
vd dd 0
vq dq 0
op macro instr
;;
instr al,cl
instr al,1
instr al,vb
instr vb,1
instr vb,al
;;
instr ax,cx
instr ax,1
instr ax,vw
instr ax,1234h
instr bx,1234h
instr vw,1
instr vw,1234h
instr vw,ax
;;
instr eax,ecx
instr eax,1
instr eax,vd
instr eax,1234h
instr ebx,1234h
instr vd,1
instr vd,1234h
instr vd,eax
;;
instr rax,rcx
instr rax,1
instr rax,vq
instr rax,1234h
instr rbx,1234h
instr vq,1
instr vq,1234h
instr vq,rax
endm
for x,<add,or,adc,sbb,and,sub,xor,cmp>
op x
endm
end

Binary file not shown.

View File

@ -1,46 +0,0 @@
;--- test ARPL. This is a somewhat special case
;--- because although it has 16-bit operands the
;--- size prefix (066h) should NOT be set in 32-bit code.
;--- There are a few similiar opcodes (LLDT, SMSW, ... ), but those
;--- are 2 byte opcodes that can be marked with F_0FNO66 to achieve
;--- the same effect.
.286p
.model small
.386p
.data
vw label word
.code
arpl ax,bx
lldt ax
lmsw ax
ltr ax
sldt ax
smsw ax
str ax
verr ax
verw ax
arpl vw,ax
lldt vw
lmsw vw
ltr vw
sldt vw
smsw vw
str vw
verr vw
verw vw
ret
_TEXT32 segment use32
arpl vw,ax
lldt vw
_TEXT32 ends
end

Binary file not shown.

View File

@ -1,23 +0,0 @@
;--- valid assumes
.286
.model small
S1 struct
db ?
f1 db ?
S1 ends
assume ds:_TEXT
assume cs:ds
assume bx:ptr
assume es:DGROUP
assume bx:ptr WORD
assume bx:ptr S1
.code
mov al,[bx].f1
end

View File

@ -1 +0,0 @@


View File

@ -1,34 +0,0 @@
;--- assumed type is not to override type of variable.
;--- regression in v2.08-2.09.
.386
.model flat
CV_LTYPE_STRUCT STRUC
CV_LTYPE_GTYPE DD ?
CV_LTYPE_NAMEOFF DB ?
CV_LTYPE_FLAGS DB ?
DW ?
CV_LTYPE_NEST_LEVEL DD ?
CV_LTYPE_CIRC_CNT DD ?
CV_LTYPE_CIRC1 DD ?
CV_LTYPE_STRUCT ENDS
STD_PTR_S STRUC
DD ?
DD ?
DD ?
DD ?
STD_PTRS DD 4 DUP(?)
STD_PTR_S ENDS
.code
array STD_PTR_S <>
assume esi:ptr CV_LTYPE_STRUCT
xor esi, esi
mov esi, array[esi*4].STD_PTRS
END

Binary file not shown.

View File

@ -1,32 +0,0 @@
;--- weird masm feature: ASSUME may have
;--- an effect for lines located BEFORE the assume.
;--- looks like the assumes are not reset when a new pass starts.
;--- see adjustment in assume.c, AssumeInit()
.386
.model flat
S1 STRUCT
DD ?
s1f1 DD ?
S1 ENDS
S2 STRUCT
DW ?
s2f1 DD ?
S2 ENDS
.CODE
MOV EAX,[EDI].s1f1
assume edi:ptr S2
MOV EAX,[EDI].s2f1
ASSUME EDI:ptr S1 ;makes masm accept first "mov"
END

View File

@ -1 +0,0 @@


View File

@ -1,21 +0,0 @@
;--- similar to assume11.asm, but with scalar types
;--- this variant is NOT supposed to work!
;--- there's an additional problem, because jwasm emits a warning
;--- in pass 1 in this case - which would be very misleading if the
;--- later ASSUME remained in effect.
.386
.model flat, stdcall
option casemap:none
.code
mov [eax],1 ;jwasm emits warning ( assumed byte )
assume eax:ptr WORD
mov [eax],1234h
END

View File

@ -1,17 +0,0 @@
;--- pointer dereference
.386
.model flat
S1 struct
f1 dw ?
f2 dw ?
S1 ends
.code
assume esi:ptr ptr S1 ;2 levels of indirection!
mov [esi].f2, 1 ;shouldn't be accepted
end

View File

@ -1,2 +0,0 @@
ASSUME13.ASO(15) : Warning A4073: Size not specified, assuming: BYTE
ASSUME13.ASO(15) : Error A2102: Symbol not defined : f2

View File

@ -1,21 +0,0 @@
.386
.model flat
MemBlock struct
m_ptr DWORD ?
m_size DWORD ?
MemBlock ends
MemBlockPTR TYPEDEF PTR MemBlock
.code
ASSUME edx:MemBlockPTR, ecx:ptr MemBlock
mov eax,[edx].m_ptr
mov ebx,[ecx].m_size
mov eax,[ecx].m_size[ebx] ;fails with v2.05
ret
end

View File

@ -1 +0,0 @@
YD Ã

View File

@ -1,24 +0,0 @@
; standard register ASSUMEs prior to v2.07 were handled incompatible with masm.
; in masm, a potential assume of the LAST register has higher priority.
.386
.model flat
S1 struct
v1 dd ?
S1 ends
S2 struct
v2 dd ?
S2 ends
.code
assume eax:ptr S1
assume edx:ptr S2
mov [ecx+eax].v1,0 ; Fails with jwasm < 2.06.
mov [edx+eax].v1,0 ; Fails with jwasm < 2.06.
mov [eax+edx].v1,0 ; Works with jwasm < 2.06. Should fail.
end

View File

@ -1 +0,0 @@
ASSUME3.ASO(22) : Error A2063: Symbol not defined : S2.v1

View File

@ -1,40 +0,0 @@
;--- type assumes
;--- a part of this file is now assume7.aso
.386
.model flat, stdcall
S1 struct
f1 dd ?
S1 ends
SDEF struct
f1 dd ?
SDEF ends
.code
;--- assume a defined struct
assume ecx:ptr SDEF
mov eax,[ecx].f1 ;Masm ok, JWasm ok
mov eax,[ecx].S1.f1 ;Masm error, JWasm error (p1)
if 0
;--- assume an undefined struct
assume ecx:ptr SUNDEF
mov eax,[ecx].f1 ;Masm error, JWasm error (p2)
mov eax,[ecx].S1.f1 ;Masm ok, JWasm ok
;--- assume a not yet defined struct
assume ecx:ptr SFWD
mov eax,[ecx].f1 ;Masm ok, JWasm8 ok, JWasm7 error
mov eax,[ecx].S1.f1 ;Masm ok, JWasm8 error (p2), JWasm7 ok
SFWD struct
f1 dd ?
SFWD ends
endif
end

View File

@ -1 +0,0 @@
ASSUME4.ASO(21) : Error A2063: Symbol not defined : SDEF.S1

View File

@ -1,43 +0,0 @@
;--- masm accepts 1,3; rejects 2,4
;--- jwasm v2.06 (and pred.) accepts 1,2,3,4
;--- jwasm v2.07pre rejects 3,4
;--- jwasm v2.07 rejects 4 in p1, 2 in p2
;--- jwasm v2.08 splitted test case (errors in P2 now in assume9.aso)
.386
.model flat
option casemap:none
S1 STRUCT
lParam dd ?
S1 ENDS
S2 STRUCT
left dd ?
S2 ENDS
S3 STRUCT
x dd ?
S3 ENDS
.code
assume ebx:ptr S2
mov eax, [ebx].left ;1. ok
;--- override the ASSUME
mov eax, [ebx.S1.lParam] ;3. ok
mov eax, [ebx].S1.lParam ;4. rejected (p1)
;--- special
mov eax, [ebx+ecx].left ;ok
mov eax, [ebx+1].left ;ok
mov eax, [ebx][1].left ;ok
mov eax, S1.lParam[ebx] ;ok
assume ecx:ptr S3
mov eax, [ecx][ebx].left ;ok
mov eax, [ecx+ebx].left ;ok
mov eax, [ebx+ecx].left ;rejected (p1)
mov eax, [ebx][ecx].left ;rejected (p1)
end

View File

@ -1,3 +0,0 @@
ASSUME5.ASO(30) : Error A2063: Symbol not defined : S2.S1
ASSUME5.ASO(40) : Error A2063: Symbol not defined : S3.left
ASSUME5.ASO(41) : Error A2063: Symbol not defined : S3.left

View File

@ -1,20 +0,0 @@
;--- register assume overwritten by type coercion
.386
.model flat
VFT struct
mt1 dd ?
mt2 dd ?
VFT ends
DMY struct
DMY ends
.code
assume edx:ptr DMY
call (VFT ptr [edx - 4]).mt1
end

View File

@ -1 +0,0 @@
<EFBFBD>R<EFBFBD>

View File

@ -1,29 +0,0 @@
;--- type assumes
;--- for v2.08, this was part of assume4.aso. It has been
;--- split because some errors occur now in pass 2 only.
.386
.model flat, stdcall
S1 struct
f1 dd ?
S1 ends
.code
;--- assume an undefined struct
assume ecx:ptr SUNDEF
mov eax,[ecx].f1 ;Masm error, JWasm error (p2)
mov eax,[ecx].S1.f1 ;Masm ok, JWasm ok
;--- assume a not yet defined struct
assume ecx:ptr SFWD
mov eax,[ecx].f1 ;Masm ok, JWasm8 ok, JWasm7 error
mov eax,[ecx].S1.f1 ;Masm ok, JWasm8 error (p2), JWasm7 ok
SFWD struct
f1 dd ?
SFWD ends
end

View File

@ -1,2 +0,0 @@
ASSUME7.ASO(17) : Error A2063: Symbol not defined : SUNDEF.f1
ASSUME7.ASO(23) : Error A2063: Symbol not defined : SFWD.S1

View File

@ -1,22 +0,0 @@
;--- rejected assume definitions
.286
.model small
.data
v1 dw 0
.code
assume es:[bx]
assume es:_DATA:[bx]
assume es:bx
assume es:DGROUP:[1]
assume es:DGROUP:v1
assume es:_DATA+1
assume es:offset _DATA
assume es:FLAT
assume es:_DATA ;ok
assume es:SEG _DATA ;ok
assume es:DGROUP ;ok
assume es:ds ;ok
mov ax,v1
end

View File

@ -1,8 +0,0 @@
ASSUME8.ASO(9) : Error A2069: Segment, group or segment register expected
ASSUME8.ASO(10) : Error A2069: Segment, group or segment register expected
ASSUME8.ASO(11) : Error A2069: Segment, group or segment register expected
ASSUME8.ASO(12) : Error A2069: Segment, group or segment register expected
ASSUME8.ASO(13) : Error A2069: Segment, group or segment register expected
ASSUME8.ASO(14) : Error A2069: Segment, group or segment register expected
ASSUME8.ASO(15) : Error A2069: Segment, group or segment register expected
ASSUME8.ASO(16) : Error A2030: Instruction or register not accepted in current CPU mode

View File

@ -1,37 +0,0 @@
;--- masm accepts 1,3; rejects 2,4
;--- jwasm v2.06 (and pred.) accepts 1,2,3,4
;--- jwasm v2.07pre rejects 3,4
;--- jwasm v2.07 rejects 4 in p1, 2 in p2
;--- jwasm v2.08: errors of assume5 in pass 2 (undefined symbol)
.386
.model flat
option casemap:none
S1 STRUCT
lParam dd ?
S1 ENDS
S2 STRUCT
left dd ?
S2 ENDS
S3 STRUCT
x dd ?
S3 ENDS
.code
assume ebx:ptr S2
mov eax, [ebx].left ;1. ok
mov eax, [ebx.left] ;2. rejected, 'symbol not defined'
;--- override the ASSUME
mov eax, [ebx.S1.lParam] ;3. ok
;--- special
mov eax, [ebx.S1.lParam].left ;rejected, 'symbol not defined'
mov eax, S1.lParam[ebx] ;ok
mov eax, S1.lParam[ebx].left ;Masm rejected, 'symbol not defined'; jwasm v2.08: ok
mov eax, S1.lParam[ebx.left] ;rejected, 'symbol not defined'
end

View File

@ -1,3 +0,0 @@
ASSUME9.ASO(28) : Error A2102: Symbol not defined : left
ASSUME9.ASO(32) : Error A2102: Symbol not defined : left
ASSUME9.ASO(35) : Error A2102: Symbol not defined : left

View File

@ -1,476 +0,0 @@
;--- AVX, 32-bit
.686
.model flat
.xmm
.data
m08 label byte
m16 label word
m32 label dword
m64 label mmword
m128 label xmmword
m256 label ymmword
.code
if 1
;--- new AVX instructions
vbroadcastss xmm0, m32
vbroadcastss ymm0, m32
vbroadcastsd ymm0, m64
vbroadcastf128 ymm0, m128
vinsertf128 ymm0, ymm1, xmm1, 1
vinsertf128 ymm0, ymm1, m128, 2
vextractf128 xmm0, ymm0, 1
vextractf128 m128, ymm0, 2
vmaskmovps xmm0, xmm1, m128
vmaskmovps ymm0, ymm1, m256
vmaskmovps m128, xmm0, xmm1
vmaskmovps m256, ymm0, ymm1
vmaskmovpd xmm0, xmm1, m128
vmaskmovpd ymm0, ymm1, m256
vmaskmovpd m128, xmm0, xmm1
vmaskmovpd m256, ymm0, ymm1
vpermilpd xmm0, xmm1, xmm2
vpermilpd xmm0, xmm1, m128
vpermilpd xmm0, xmm1, 1
vpermilpd ymm0, ymm1, ymm2
vpermilpd ymm0, ymm1, m256
vpermilpd ymm0, ymm1, 1
vpermilps xmm0, xmm1, xmm2
vpermilps xmm0, xmm1, m128
vpermilps xmm0, xmm1, 1
vpermilps ymm0, ymm1, ymm2
vpermilps ymm0, ymm1, m256
vpermilps ymm0, ymm1, 1
vperm2f128 ymm0, ymm1, ymm2, 1
vperm2f128 ymm0, ymm1, m256, 1
vtestps xmm0, xmm1
vtestps xmm0, m128
vtestps ymm0, ymm1
vtestps ymm0, m256
vtestpd xmm0, xmm1
vtestpd xmm0, m128
vtestpd ymm0, ymm1
vtestpd ymm0, m256
vzeroall
vzeroupper
endif
if 1
;--- ADD, DIV, MAX, MIN, MUL, SQRT, SUB
addpd xmm0, xmm1
addpd xmm0, m128
vaddpd xmm0, xmm1, xmm2
vaddpd xmm0, xmm1, m128
vaddpd ymm0, ymm1, ymm2
vaddpd ymm0, ymm1, m256
vaddps xmm0, xmm1, xmm2
vaddps xmm0, xmm1, m128
vaddps ymm0, ymm1, ymm2
vaddps ymm0, ymm1, m256
vaddsd xmm0, xmm1, xmm2
vaddsd xmm0, xmm1, m64
vaddss xmm0, xmm1, xmm2
vaddss xmm0, xmm1, m32
divpd xmm0, xmm1
divpd xmm0, m128
vdivpd xmm0, xmm1, xmm2
vdivpd xmm0, xmm1, m128
vdivpd ymm0, ymm1, ymm2
vdivpd ymm0, ymm1, m256
vdivps xmm0, xmm1, xmm2
vdivps xmm0, xmm1, m128
vdivps ymm0, ymm1, ymm2
vdivps ymm0, ymm1, m256
vdivsd xmm0, xmm1, xmm2
vdivsd xmm0, xmm1, m64
vdivss xmm0, xmm1, xmm2
vdivss xmm0, xmm1, m32
endif
if 1
vandpd xmm0, xmm1, xmm2
vandpd ymm0, ymm1, ymm2
vandps xmm0, xmm1, xmm2
vandps ymm0, ymm1, ymm2
vandnpd xmm0, xmm1, xmm2
vandnpd ymm0, ymm1, ymm2
vandnps xmm0, xmm1, xmm2
vandnps ymm0, ymm1, ymm2
endif
if 1
vaddsubpd xmm0, xmm1, xmm2
vaddsubpd xmm0, xmm1, m128
vaddsubpd ymm0, ymm1, ymm2
vaddsubpd ymm0, ymm1, m256
vaddsubps xmm0, xmm1, xmm2
vaddsubps xmm0, xmm1, m128
vaddsubps ymm0, ymm1, ymm2
vaddsubps ymm0, ymm1, m256
blendpd xmm0, xmm2, 1
blendpd xmm0, m128, 1
vblendpd xmm0, xmm1, xmm2, 1
vblendpd xmm0, xmm1, m128, 1
vblendpd ymm0, ymm1, ymm2, 2
vblendpd ymm0, ymm1, m256, 2
blendps xmm0, xmm2, 3
blendps xmm0, m128, 3
vblendps xmm0, xmm1, xmm2, 3
vblendps xmm0, xmm1, m128, 3
vblendps ymm0, ymm1, ymm2, 4
vblendps ymm0, ymm1, m256, 4
blendvpd xmm0, xmm2, xmm0
blendvpd xmm0, m128, xmm0
vblendvpd xmm0, xmm1, xmm2, xmm3
vblendvpd xmm0, xmm1, m128, xmm3
vblendvpd ymm0, ymm1, ymm2, ymm3
vblendvpd ymm0, ymm1, m256, ymm3
blendvps xmm0, xmm2, xmm0
blendvps xmm0, m128, xmm0
vblendvps xmm0, xmm1, xmm2, xmm3
vblendvps xmm0, xmm1, m128, xmm3
vblendvps ymm0, ymm1, ymm2, ymm3
vblendvps ymm0, ymm1, m256, ymm3
pblendvb xmm0, xmm2, xmm0
pblendvb xmm0, m128, xmm0
vpblendvb xmm0, xmm1, xmm2, xmm3
vpblendvb xmm0, xmm1, m128, xmm3
vdppd xmm0, xmm1, xmm2, 1
vdppd xmm0, xmm1, m128, 2
;no VEX.256
vdpps xmm0, xmm1, xmm2, 1
vdpps xmm0, xmm1, m128, 2
vdpps ymm0, ymm1, ymm2, 3
vdpps ymm0, ymm1, m256, 4
vldmxcsr m32
vstmxcsr m32
endif
if 1
vcmppd xmm0, xmm1, xmm2, 1
vcmppd xmm0, xmm1, m128, 1
vcmppd ymm0, ymm1, ymm2, 2
vcmppd ymm0, ymm1, m256, 2
vcmpps xmm0, xmm1, xmm2, 3
vcmpps xmm0, xmm1, m128, 3
vcmpps ymm0, ymm1, ymm2, 4
vcmpps ymm0, ymm1, m256, 4
vcmpsd xmm0, xmm1, xmm2, 1
vcmpsd xmm0, xmm1, m64, 1
vcmpss xmm0, xmm1, xmm2, 3
vcmpss xmm0, xmm1, m32, 3
endif
if 1
vpsrlw xmm0, xmm1, xmm2
vpsrlw xmm0, xmm1, m128
vpsrld xmm0, xmm1, xmm2
vpsrld xmm0, xmm1, m128
vpsrlq xmm0, xmm1, xmm2
vpsrlq xmm0, xmm1, m128
vpsraw xmm0, xmm1, xmm2
vpsraw xmm0, xmm1, m128
vpsrad xmm0, xmm1, xmm2
vpsrad xmm0, xmm1, m128
vpsllw xmm0, xmm1, xmm2
vpsllw xmm0, xmm1, m128
vpslld xmm0, xmm1, xmm2
vpslld xmm0, xmm1, m128
vpsllq xmm0, xmm1, xmm2
vpsllq xmm0, xmm1, m128
endif
if 1
movd xmm0, eax
movd xmm0, m32
movd eax, xmm0
movd m32, xmm0
vmovd xmm0, eax
vmovd xmm0, m32
vmovd eax, xmm0
vmovd m32, xmm0
movq xmm0, m64
movq m64, xmm0
vmovq xmm0, m64
vmovq m64, xmm0
endif
if 1
;--- VEX.NDD
vpslldq xmm0, xmm1, 1
vpsrldq xmm0, xmm1, 2
vpsrlw xmm0, xmm1, 3
vpsrld xmm0, xmm1, 4
vpsrlq xmm0, xmm1, 5
vpsraw xmm0, xmm1, 6
vpsrad xmm0, xmm1, 7
vpsllw xmm0, xmm1, 8
vpslld xmm0, xmm1, 9
vpsllq xmm0, xmm1, 10
;--- VEX.NDS
vpsrlw xmm0, xmm1, xmm2
vpsrlw xmm0, xmm1, m128
vpsrld xmm0, xmm1, xmm2
vpsrld xmm0, xmm1, m128
vpsrlq xmm0, xmm1, xmm2
vpsrlq xmm0, xmm1, m128
vpsraw xmm0, xmm1, xmm2
vpsraw xmm0, xmm1, m128
vpsrad xmm0, xmm1, xmm2
vpsrad xmm0, xmm1, m128
vpsllw xmm0, xmm1, xmm2
vpsllw xmm0, xmm1, m128
vpslld xmm0, xmm1, xmm2
vpslld xmm0, xmm1, m128
vpsllq xmm0, xmm1, xmm2
vpsllq xmm0, xmm1, m128
endif
if 1
vpabsb xmm0, xmm1
vpabsb xmm0, m128
vpabsw xmm0, xmm1
vpabsw xmm0, m128
vpabsd xmm0, xmm1
vpabsd xmm0, m128
vrsqrtps xmm0, xmm1
vrsqrtss xmm0, xmm1, xmm2
vcomisd xmm0, xmm1
vcomisd xmm0, m64
vcomiss xmm0, xmm1
vcomiss xmm0, m32
vucomisd xmm0, xmm1
vucomisd xmm0, m64
vucomiss xmm0, xmm1
vucomiss xmm0, m32
vptest xmm0, xmm1
vptest xmm0, m128
vptest ymm0, ymm1
vptest ymm0, m256
vtestps xmm0, xmm1
vtestps xmm0, m128
vtestps ymm0, ymm1
vtestps ymm0, m256
vtestpd xmm0, xmm1
vtestpd xmm0, m128
vtestpd ymm0, ymm1
vtestpd ymm0, m256
vrcpps xmm0, xmm1
vrcpps xmm0, m128
vrcpps ymm0, ymm1
vrcpps ymm0, m256
vrcpss xmm0, xmm1, xmm2
vrcpss xmm0, xmm1, m32
vpmovsxbw xmm0, xmm1
vpmovsxbw xmm0, m64
vpmovsxbd xmm0, xmm1
vpmovsxbd xmm0, m32
vpmovsxbq xmm0, xmm1
vpmovsxbq xmm0, m16
vpmovsxwd xmm0, xmm1
vpmovsxwd xmm0, m64
vpmovsxwq xmm0, xmm1
vpmovsxwq xmm0, m32
vpmovsxdq xmm0, xmm1
vpmovsxdq xmm0, m64
vphminposuw xmm0, xmm1
vphminposuw xmm0, m128
vextractps eax, xmm1, 1
vextractps m32, xmm1, 1
vinsertps xmm0, xmm1, xmm3, 0
vinsertps xmm0, xmm1, m32, 1
vhaddpd xmm0, xmm1, xmm2
vhaddpd xmm0, xmm1, m128
vhaddpd ymm0, ymm1, ymm2
vhaddpd ymm0, ymm1, m256
vhaddps xmm0, xmm1, xmm2
vhaddps xmm0, xmm1, m128
vhaddps ymm0, ymm1, ymm2
vhaddps ymm0, ymm1, m256
vhsubpd xmm0, xmm1, xmm2
vhsubpd xmm0, xmm1, m128
vhsubpd ymm0, ymm1, ymm2
vhsubpd ymm0, ymm1, m256
vhsubps xmm0, xmm1, xmm2
vhsubps xmm0, xmm1, m128
vhsubps ymm0, ymm1, ymm2
vhsubps ymm0, ymm1, m256
vlddqu xmm0, m128
vlddqu ymm0, m256
vmaskmovdqu xmm0, xmm1
vpmovmskb eax, xmm1
endif
if 1
vcvtdq2pd xmm0, xmm1
vcvtdq2pd xmm0, m64
vcvtdq2pd ymm0, xmm1 ;!
vcvtdq2pd ymm0, m128 ;!
vcvtdq2ps xmm0, xmm1
vcvtdq2ps xmm0, m128
vcvtdq2ps ymm0, ymm1
vcvtdq2ps ymm0, m256
vcvtpd2dq xmm0, xmm1
vcvtpd2dq xmm0, m128
vcvtpd2dq xmm0, ymm1
vcvtpd2dq xmm0, m256 ;L bit set?
vcvttpd2dq xmm0, xmm1
vcvttpd2dq xmm0, m128
vcvttpd2dq xmm0, ymm1
vcvttpd2dq xmm0, m256 ;L bit set?
vcvtpd2ps xmm0, xmm1
vcvtpd2ps xmm0, m128
vcvtpd2ps xmm0, ymm1
vcvtpd2ps xmm0, m256 ;L bit set?
vcvtps2dq xmm0, xmm1
vcvtps2dq xmm0, m128
vcvtps2dq ymm0, ymm1
vcvtps2dq ymm0, m256
vcvttps2dq xmm0, xmm1
vcvttps2dq xmm0, m128
vcvttps2dq ymm0, ymm1
vcvttps2dq ymm0, m256
vcvtps2pd xmm0, xmm1
vcvtps2pd xmm0, m64
vcvtps2pd ymm0, xmm1 ;!
vcvtps2pd ymm0, m128 ;!
vcvtsd2si eax, xmm1
vcvtsd2si eax, m64
vcvttsd2si eax, xmm1
vcvttsd2si eax, m64
vcvtsd2ss xmm0, xmm1, xmm2
vcvtsd2ss xmm0, xmm1, m64
vcvtsi2sd xmm0, xmm1, eax
vcvtsi2sd xmm0, xmm1, m32
vcvtsi2ss xmm0, xmm1, eax
vcvtsi2ss xmm0, xmm1, m32
vcvtss2sd xmm0, xmm1, xmm2
vcvtss2sd xmm0, xmm1, m32
vcvtss2si eax, xmm1
vcvtss2si eax, m32
vcvttss2si eax, xmm1
vcvttss2si eax, m32
endif
if 1
vmovapd xmm0, xmm1
vmovapd xmm0, m128
vmovapd m128, xmm1
vmovapd ymm0, ymm1
vmovapd ymm0, m256
vmovapd m256, ymm1
vmovaps xmm0, xmm1
vmovaps xmm0, m128
vmovaps m128, xmm1
vmovaps ymm0, ymm1
vmovaps ymm0, m256
vmovaps m256, ymm1
vmovupd xmm0, xmm1
vmovupd xmm0, m128
vmovupd m128, xmm1
vmovupd ymm0, ymm1
vmovupd ymm0, m256
vmovupd m256, ymm1
vmovups xmm0, xmm1
vmovups xmm0, m128
vmovups m128, xmm1
vmovups ymm0, ymm1
vmovups ymm0, m256
vmovups m256, ymm1
vmovhlps xmm0, xmm1, xmm2
vmovlhps xmm0, xmm1, xmm2
vmovhpd xmm0, xmm1, m64
vmovhpd m64, xmm1
vmovhps xmm0, xmm1, m64
vmovhps m64, xmm1
vmovlpd xmm0, xmm1, m64
vmovlpd m64, xmm1
vmovlps xmm0, xmm1, m64
vmovlps m64, xmm1
endif
if 1
vpextrb eax, xmm1, 1
vpextrb m08, xmm1, 1
vpextrw eax, xmm1, 2
vpextrw m16, xmm1, 2
vpextrd eax, xmm1, 3
vpextrd m32, xmm1, 3
;vpextrq is 64-bit only
;vpextrq rax, xmm1, 4
;vpextrq m64, xmm1, 4
vpinsrb xmm0, xmm1, eax, 1
vpinsrb xmm0, xmm1, m08, 1
vpinsrw xmm0, xmm1, eax, 2
vpinsrw xmm0, xmm1, m16, 2
vpinsrd xmm0, xmm1, eax, 3
vpinsrd xmm0, xmm1, m32, 3
;vpinsrq is 64-bit only
;vpinsrq xmm0, xmm1, rax, 4
;vpinsrq xmm0, xmm1, m64, 4
endif
vmovddup xmm0, xmm1
vmovddup xmm0, m64
vmovddup ymm0, ymm1
vmovddup ymm0, m256
end

Binary file not shown.

View File

@ -1,93 +0,0 @@
;--- AVX, 32-bit
.686
.model flat
.xmm
.data
m08 label byte
m16 label word
m32 label dword
m64 label mmword
m128 label xmmword
m256 label ymmword
.code
vbroadcastss xmm0, m64
vbroadcastss ymm0, ymm1
vbroadcastsd ymm0, m128
vbroadcastf128 ymm0, ymm1
vinsertf128 ymm0, ymm1, xmm1, xmm0
vinsertf128 ymm0, ymm1, m128
vextractf128 xmm0, ymm0, ymm0
vextractf128 m128, ymm0
vmaskmovps xmm0, xmm1
vmaskmovps ymm0, ymm1, ymm2
vmaskmovps m128, xmm0
vmaskmovps m256, ymm0
vmaskmovpd xmm0, xmm1
vmaskmovpd ymm0, ymm1, ymm2
vmaskmovpd m128, xmm0
vmaskmovpd m256, ymm0
vpermilpd xmm0, xmm1, xmm2
vpermilpd xmm0, xmm1, m128
vpermilpd xmm0, xmm1, 1
vpermilpd ymm0, ymm1, ymm2
vpermilpd ymm0, ymm1, m256
vpermilpd ymm0, ymm1, 1
vpermilps xmm0, xmm1, xmm2
vpermilps xmm0, xmm1, m128
vpermilps xmm0, xmm1, 1
vpermilps ymm0, ymm1, ymm2
vpermilps ymm0, ymm1, m256
vpermilps ymm0, ymm1, 1
vperm2f128 ymm0, ymm1, ymm2, 1
vperm2f128 ymm0, ymm1, m256, 1
vtestps xmm0, xmm1
vtestps xmm0, m128
vtestps ymm0, ymm1
vtestps ymm0, m256
vtestpd xmm0, xmm1
vtestpd xmm0, m128
vtestpd ymm0, ymm1
vtestpd ymm0, m256
vzeroall
vzeroupper
vaddpd xmm0, xmm1
vaddpd xmm0, xmm1, m128
vaddpd ymm0, ymm1, ymm2
vaddpd ymm0, ymm1, m256
vaddsubpd xmm0, xmm1
vblendpd xmm0, xmm1, xmm2
vblendpd xmm0, xmm1
vblendpd ymm0, ymm1, ymm2
vblendpd ymm0, ymm1
vblendps xmm0, xmm1, xmm2
vblendps xmm0, xmm1
vblendps ymm0, ymm1, ymm2
vblendps ymm0, ymm1
vblendvpd xmm0, xmm1, xmm2
vblendvpd xmm0, xmm1, m128
vblendvpd ymm0, ymm1, ymm2
vblendvpd ymm0, ymm1, m256
vblendvps xmm0, xmm1
vblendvps xmm0, xmm1
vblendvps ymm0, ymm1
vblendvps ymm0, ymm1
vpblendvb xmm0, xmm1, xmm2
vpblendvb xmm0, xmm1
vdppd xmm0, xmm1, xmm2
vdppd xmm0, xmm1
vdpps xmm0, xmm1, eax
vdpps xmm0, xmm1, m08
vdpps ymm0, ymm1
vdpps ymm0, ymm1, eax
vcvtpd2dq xmm0, [ebx] ;untyped memory is to be rejected!
vcvttpd2dq xmm0, [ebx] ;untyped memory is to be rejected!
vcvtpd2ps xmm0, [ebx] ;untyped memory is to be rejected!
end

View File

@ -1,43 +0,0 @@
AVX2.ASO(19) : Error A2049: Invalid instruction operands
AVX2.ASO(20) : Error A2049: Invalid instruction operands
AVX2.ASO(21) : Error A2049: Invalid instruction operands
AVX2.ASO(22) : Error A2049: Invalid instruction operands
AVX2.ASO(23) : Error A2049: Invalid instruction operands
AVX2.ASO(24) : Error A2049: Invalid instruction operands
AVX2.ASO(25) : Error A2049: Invalid instruction operands
AVX2.ASO(26) : Error A2049: Invalid instruction operands
AVX2.ASO(27) : Error A2209: Syntax error: , xmm1
AVX2.ASO(29) : Error A2209: Syntax error: , xmm0
AVX2.ASO(30) : Error A2209: Syntax error: , ymm0
AVX2.ASO(31) : Error A2209: Syntax error: , xmm1
AVX2.ASO(33) : Error A2209: Syntax error: , xmm0
AVX2.ASO(34) : Error A2209: Syntax error: , ymm0
AVX2.ASO(59) : Error A2209: Syntax error: , xmm1
AVX2.ASO(63) : Error A2209: Syntax error: , xmm1
AVX2.ASO(64) : Error A2049: Invalid instruction operands
AVX2.ASO(65) : Error A2209: Syntax error: , xmm1
AVX2.ASO(66) : Error A2049: Invalid instruction operands
AVX2.ASO(67) : Error A2209: Syntax error: , ymm1
AVX2.ASO(68) : Error A2049: Invalid instruction operands
AVX2.ASO(69) : Error A2209: Syntax error: , xmm1
AVX2.ASO(70) : Error A2049: Invalid instruction operands
AVX2.ASO(71) : Error A2209: Syntax error: , ymm1
AVX2.ASO(72) : Error A2049: Invalid instruction operands
AVX2.ASO(73) : Error A2049: Invalid instruction operands
AVX2.ASO(74) : Error A2049: Invalid instruction operands
AVX2.ASO(75) : Error A2049: Invalid instruction operands
AVX2.ASO(76) : Error A2209: Syntax error: , xmm1
AVX2.ASO(77) : Error A2209: Syntax error: , xmm1
AVX2.ASO(78) : Error A2209: Syntax error: , ymm1
AVX2.ASO(79) : Error A2209: Syntax error: , ymm1
AVX2.ASO(80) : Error A2049: Invalid instruction operands
AVX2.ASO(81) : Error A2209: Syntax error: , xmm1
AVX2.ASO(82) : Error A2049: Invalid instruction operands
AVX2.ASO(83) : Error A2209: Syntax error: , xmm1
AVX2.ASO(84) : Error A2049: Invalid instruction operands
AVX2.ASO(85) : Error A2049: Invalid instruction operands
AVX2.ASO(86) : Error A2209: Syntax error: , ymm1
AVX2.ASO(87) : Error A2049: Invalid instruction operands
AVX2.ASO(89) : Error A2182: Instruction operand must have size
AVX2.ASO(90) : Error A2182: Instruction operand must have size
AVX2.ASO(91) : Error A2182: Instruction operand must have size

View File

@ -1,86 +0,0 @@
;--- AVX, 32-bit
.686
.model flat
.xmm
.data
m08 label byte
m16 label word
m32 label dword
m64 label mmword
m128 label xmmword
m256 label ymmword
.code
vldmxcsr eax
vstmxcsr xmm0
vcmppd xmm0, xmm1, xmm2
vcmppd ymm0, ymm1, ymm2
vcmppd ymm0, ymm1
vpsrlw xmm0, xmm1, ymm2
vpsrld xmm0, xmm1, ymm2
vpsrld xmm0, xmm1, m64
vmovd xmm0, ax
vmovd ymm0, m64
vmovd m16, xmm0
vmovq xmm0, m128
vmovq m64, xmm0, xmm1
vpslldq xmm0, 1
vpsllq xmm0, xmm1, xmm2
vpsrlw xmm0, xmm1, m64
vpabsb xmm0, xmm1, xmm2
vpabsb xmm0, xmm1, m128
vpmovsxbw xmm0, xmm1, xmm2
vpmovsxbw xmm0, xmm1, m64
vphminposuw xmm0, xmm1, xmm2
vphminposuw xmm0, m64
vextractps eax, xmm1, xmm2
vextractps m32, xmm1, xmm2
vinsertps xmm0, xmm1, xmm3
vhaddpd xmm0, xmm1
vlddqu xmm0, xmm1, m128
vlddqu ymm0, m64
vmaskmovdqu xmm0, xmm1, xmm2
vpmovmskb eax, xmm1, xmm2
vcvtdq2pd xmm0, xmm1, xmm2
vcvtdq2pd xmm0, m128
vcvtdq2pd ymm0, xmm1, xmm2
vcvtdq2pd ymm0, m256
vcvtpd2dq xmm0, xmm1, xmm2
vcvtps2pd xmm0, xmm1, xmm2
vcvtsd2si eax, ymm1, ymm2
vcvttsd2si eax, ymm1, ymm2
vcvtsd2ss xmm0, xmm1, xmm2
vcvtsi2sd xmm0, xmm1, m32
vcvtsi2ss xmm0, xmm1, eax
vcvtss2sd xmm0, xmm1, xmm2
vcvtss2si eax, xmm1
vcvttss2si eax, xmm1
vmovapd xmm0, xmm1, xmm2
vmovapd ymm0, ymm1, m256
vmovaps xmm0, xmm1
vmovaps ymm0, m256
vmovupd xmm0, xmm1
vmovupd ymm0, m256
vmovups ymm0, m256
vmovups m256, ymm1
vmovhlps xmm0, xmm1, xmm2
vmovlhps xmm0, xmm1, xmm2
vmovhpd xmm0, xmm1
vmovhpd m64, xmm1, xmm2
vmovhps xmm0, xmm1, xmm2
vmovhps m64, xmm1
vmovlpd xmm0, xmm1, xmm2
vmovlpd m64, xmm1, xmm2
vmovlps m64, xmm1, xmm2
vpextrb xmm0, xmm1, xmm2
vpextrb m64, xmm1, 1
vpinsrb xmm0, xmm1, eax
vpinsrw xmm0, xmm1, eax
vpinsrw xmm0, xmm1, xmm2
end

View File

@ -1,50 +0,0 @@
AVX3.ASO(19) : Error A2049: Invalid instruction operands
AVX3.ASO(20) : Error A2049: Invalid instruction operands
AVX3.ASO(21) : Error A2049: Invalid instruction operands
AVX3.ASO(22) : Error A2049: Invalid instruction operands
AVX3.ASO(23) : Error A2209: Syntax error: , ymm1
AVX3.ASO(24) : Error A2049: Invalid instruction operands
AVX3.ASO(25) : Error A2049: Invalid instruction operands
AVX3.ASO(26) : Error A2049: Invalid instruction operands
AVX3.ASO(27) : Error A2049: Invalid instruction operands
AVX3.ASO(28) : Error A2049: Invalid instruction operands
AVX3.ASO(29) : Error A2049: Invalid instruction operands
AVX3.ASO(30) : Error A2049: Invalid instruction operands
AVX3.ASO(31) : Error A2209: Syntax error: , xmm1
AVX3.ASO(32) : Error A2049: Invalid instruction operands
AVX3.ASO(34) : Error A2049: Invalid instruction operands
AVX3.ASO(35) : Error A2209: Syntax error: , xmm2
AVX3.ASO(36) : Error A2209: Syntax error: , m128
AVX3.ASO(37) : Error A2209: Syntax error: , xmm2
AVX3.ASO(38) : Error A2209: Syntax error: , m64
AVX3.ASO(39) : Error A2209: Syntax error: , xmm2
AVX3.ASO(40) : Error A2049: Invalid instruction operands
AVX3.ASO(41) : Error A2049: Invalid instruction operands
AVX3.ASO(42) : Error A2049: Invalid instruction operands
AVX3.ASO(43) : Error A2049: Invalid instruction operands
AVX3.ASO(44) : Error A2209: Syntax error: , xmm1
AVX3.ASO(45) : Error A2209: Syntax error: , m128
AVX3.ASO(46) : Error A2049: Invalid instruction operands
AVX3.ASO(47) : Error A2209: Syntax error: , xmm2
AVX3.ASO(48) : Error A2209: Syntax error: , xmm2
AVX3.ASO(49) : Error A2209: Syntax error: , xmm2
AVX3.ASO(50) : Error A2049: Invalid instruction operands
AVX3.ASO(51) : Error A2209: Syntax error: , xmm2
AVX3.ASO(52) : Error A2049: Invalid instruction operands
AVX3.ASO(53) : Error A2209: Syntax error: , xmm2
AVX3.ASO(54) : Error A2209: Syntax error: , xmm2
AVX3.ASO(55) : Error A2209: Syntax error: , ymm2
AVX3.ASO(56) : Error A2209: Syntax error: , ymm2
AVX3.ASO(63) : Error A2209: Syntax error: , xmm2
AVX3.ASO(64) : Error A2209: Syntax error: , m256
AVX3.ASO(73) : Error A2209: Syntax error: , xmm1
AVX3.ASO(74) : Error A2209: Syntax error: , xmm2
AVX3.ASO(75) : Error A2049: Invalid instruction operands
AVX3.ASO(77) : Error A2049: Invalid instruction operands
AVX3.ASO(78) : Error A2209: Syntax error: , xmm2
AVX3.ASO(79) : Error A2209: Syntax error: , xmm2
AVX3.ASO(80) : Error A2049: Invalid instruction operands
AVX3.ASO(81) : Error A2049: Invalid instruction operands
AVX3.ASO(82) : Error A2049: Invalid instruction operands
AVX3.ASO(83) : Error A2049: Invalid instruction operands
AVX3.ASO(84) : Error A2049: Invalid instruction operands

View File

@ -1,266 +0,0 @@
;--- AVX, 32-bit
;--- unsized memory operand
.686
.model flat
.xmm
.code
;--- new AVX instructions
vbroadcastss xmm0, [ebx]
vbroadcastss ymm0, [ebx]
vbroadcastsd ymm0, [ebx]
vbroadcastf128 ymm0, [ebx]
vinsertf128 ymm0, ymm1, [ebx], 2
vextractf128 [ebx], ymm0, 2
vmaskmovps xmm0, xmm1, [ebx]
vmaskmovps ymm0, ymm1, [ebx]
vmaskmovps [ebx], xmm0, xmm1
vmaskmovps [ebx], ymm0, ymm1 ;ok with v2.08
vmaskmovpd xmm0, xmm1, [ebx]
vmaskmovpd ymm0, ymm1, [ebx]
vmaskmovpd [ebx], xmm0, xmm1
vmaskmovpd [ebx], ymm0, ymm1 ;ok with v2.08
vpermilpd xmm0, xmm1, [ebx]
vpermilpd ymm0, ymm1, [ebx]
vpermilps xmm0, xmm1, [ebx]
vpermilps ymm0, ymm1, [ebx]
vperm2f128 ymm0, ymm1, [ebx], 1 ;ok with v2.08
vtestps xmm0, [ebx]
vtestps ymm0, [ebx]
vtestpd xmm0, [ebx]
vtestpd ymm0, [ebx]
;--- ADD, DIV, MAX, MIN, MUL, SQRT, SUB
addpd xmm0, [ebx]
vaddpd xmm0, xmm1, [ebx]
vaddpd ymm0, ymm1, [ebx]
vaddps xmm0, xmm1, [ebx]
vaddps ymm0, ymm1, [ebx]
vaddsd xmm0, xmm1, [ebx]
vaddss xmm0, xmm1, [ebx]
divpd xmm0, [ebx]
vdivpd xmm0, xmm1, [ebx]
vdivpd ymm0, ymm1, [ebx]
vdivps xmm0, xmm1, [ebx]
vdivps ymm0, ymm1, [ebx]
vdivsd xmm0, xmm1, [ebx]
vdivss xmm0, xmm1, [ebx]
vaddsubpd xmm0, xmm1, [ebx]
vaddsubpd ymm0, ymm1, [ebx]
vaddsubps xmm0, xmm1, [ebx]
vaddsubps ymm0, ymm1, [ebx]
blendpd xmm0, [ebx], 1
vblendpd xmm0, xmm1, [ebx], 1
vblendpd ymm0, ymm1, [ebx], 2
blendps xmm0, [ebx], 3
vblendps xmm0, xmm1, [ebx], 3
vblendps ymm0, ymm1, [ebx], 4
blendvpd xmm0, [ebx], xmm0
vblendvpd xmm0, xmm1, [ebx], xmm3
vblendvpd ymm0, ymm1, [ebx], ymm3
blendvps xmm0, [ebx], xmm0
vblendvps xmm0, xmm1, [ebx], xmm3
vblendvps ymm0, ymm1, [ebx], ymm3
pblendvb xmm0, [ebx], xmm0
vpblendvb xmm0, xmm1, [ebx], xmm3
vdppd xmm0, xmm1, [ebx], 2
;no VEX.256
vdpps xmm0, xmm1, [ebx], 2
vdpps ymm0, ymm1, [ebx], 4
vldmxcsr [ebx]
vstmxcsr [ebx]
vcmppd xmm0, xmm1, [ebx], 1
vcmppd ymm0, ymm1, [ebx], 2
vcmpps xmm0, xmm1, [ebx], 3
vcmpps ymm0, ymm1, [ebx], 4
vcmpsd xmm0, xmm1, [ebx], 1
vcmpss xmm0, xmm1, [ebx], 3
vpsrlw xmm0, xmm1, [ebx]
vpsrld xmm0, xmm1, [ebx]
vpsrlq xmm0, xmm1, [ebx]
vpsraw xmm0, xmm1, [ebx]
vpsrad xmm0, xmm1, [ebx]
vpsllw xmm0, xmm1, [ebx]
vpslld xmm0, xmm1, [ebx]
vpsllq xmm0, xmm1, [ebx]
movd xmm0, [ebx]
movd [ebx], xmm0
vmovd xmm0, [ebx]
vmovd [ebx], xmm0
movq xmm0, [ebx]
movq [ebx], xmm0
vmovq xmm0, [ebx]
vmovq [ebx], xmm0
;--- VEX.NDS
vpsrlw xmm0, xmm1, [ebx]
vpsrld xmm0, xmm1, [ebx]
vpsrlq xmm0, xmm1, [ebx]
vpsraw xmm0, xmm1, [ebx]
vpsrad xmm0, xmm1, [ebx]
vpsllw xmm0, xmm1, [ebx]
vpslld xmm0, xmm1, [ebx]
vpsllq xmm0, xmm1, [ebx]
vpabsb xmm0, [ebx]
vpabsw xmm0, [ebx]
vpabsd xmm0, [ebx]
vcomisd xmm0, [ebx]
vcomiss xmm0, [ebx]
vucomisd xmm0, [ebx]
vucomiss xmm0, [ebx]
vptest xmm0, [ebx]
vptest ymm0, [ebx]
vtestps xmm0, [ebx]
vtestps ymm0, [ebx]
vtestpd xmm0, [ebx]
vtestpd ymm0, [ebx]
vrcpps xmm0, [ebx]
vrcpps ymm0, [ebx]
vrcpss xmm0, xmm1, [ebx]
vpmovsxbw xmm0, [ebx]
vpmovsxbd xmm0, [ebx]
vpmovsxbq xmm0, [ebx]
vpmovsxwd xmm0, [ebx]
vpmovsxwq xmm0, [ebx]
vpmovsxdq xmm0, [ebx]
vphminposuw xmm0, [ebx]
vextractps [ebx], xmm1, 1
vinsertps xmm0, xmm1, [ebx], 1
vhaddpd xmm0, xmm1, [ebx]
vhaddpd ymm0, ymm1, [ebx]
vhaddps xmm0, xmm1, [ebx]
vhaddps ymm0, ymm1, [ebx]
vhsubpd xmm0, xmm1, [ebx]
vhsubpd ymm0, ymm1, [ebx]
vhsubps xmm0, xmm1, [ebx]
vhsubps ymm0, ymm1, [ebx]
vlddqu xmm0, [ebx]
vlddqu ymm0, [ebx]
vcvtdq2pd xmm0, [ebx]
vcvtdq2pd ymm0, [ebx] ;ok with v2.08
vcvtdq2ps xmm0, [ebx]
vcvtdq2ps ymm0, [ebx]
; vcvtpd2dq xmm0, [ebx] ;error with v2.08 (operand must have size)
; vcvttpd2dq xmm0, [ebx] ;error with v2.08 (operand must have size)
; vcvtpd2ps xmm0, [ebx] ;error with v2.08 (operand must have size)
vcvtps2dq xmm0, [ebx]
vcvtps2dq ymm0, [ebx]
vcvttps2dq xmm0, [ebx]
vcvttps2dq ymm0, [ebx]
vcvtps2pd xmm0, [ebx]
vcvtps2pd ymm0, [ebx] ;ok with v2.08
vcvtsd2si eax, [ebx]
vcvttsd2si eax, [ebx]
vcvtsd2ss xmm0, xmm1, [ebx]
vcvtsi2sd xmm0, xmm1, [ebx]
vcvtsi2ss xmm0, xmm1, [ebx]
vcvtss2sd xmm0, xmm1, [ebx]
vcvtss2si eax, [ebx]
vcvttss2si eax, [ebx]
vmovapd xmm0, [ebx]
vmovapd [ebx], xmm1
vmovapd ymm0, [ebx]
vmovapd [ebx], ymm1 ;ok with v2.08
vmovaps xmm0, [ebx]
vmovaps [ebx], xmm1
vmovaps ymm0, [ebx]
vmovaps [ebx], ymm1 ;ok with v2.08
vmovupd xmm0, [ebx]
vmovupd [ebx], xmm1
vmovupd ymm0, [ebx]
vmovupd [ebx], ymm1 ;ok with v2.08
vmovups xmm0, [ebx]
vmovups [ebx], xmm1
vmovups ymm0, [ebx]
vmovups [ebx], ymm1 ;ok with v2.08
vmovhpd xmm0, xmm1, [ebx]
vmovhpd [ebx], xmm1
vmovhps xmm0, xmm1, [ebx]
vmovhps [ebx], xmm1
vmovlpd xmm0, xmm1, [ebx]
vmovlpd [ebx], xmm1
vmovlps xmm0, xmm1, [ebx]
vmovlps [ebx], xmm1
vpextrb [ebx], xmm1, 1
vpextrw [ebx], xmm1, 2
vpextrd [ebx], xmm1, 3
;vpextrq is 64-bit only
;vpextrq rax, xmm1, 4
;vpextrq [ebx], xmm1, 4
vpinsrb xmm0, xmm1, [ebx], 1
vpinsrw xmm0, xmm1, [ebx], 2
vpinsrd xmm0, xmm1, [ebx], 3
;vpinsrq is 64-bit only
;vpinsrq xmm0, xmm1, rax, 4
;vpinsrq xmm0, xmm1, [ebx], 4
vmovddup xmm0, [ebx]
vmovddup ymm0, [ebx] ;ok with v2.08
end

View File

@ -1 +0,0 @@
ΔβyΔβ}Δβ}Δβ}ΔγuΔγ}Δβq,Δβu,Δβy. Δβ}. Δβq-Δβu-Δβy/ Δβ}/ Δβq Δβu Δβq Δβu ΔγuΔβyΔβ}ΔβyΔβ}fXΕρXΕυXΕπXΕτXΕσXΕςXf^Ερ^Ευ^Επ^Ετ^Εσ^Ες^ΕρΠΕυΠΕσΠΕχΠf: Δγq Δγu f: Δγq Δγu f8ΔγqKγuK0f8ΔγqJγuJ0f8ΔγqLγqAΔγq@Δγu@Εψ<CE95>Εψ<CE95>ΕρΒΕυΒΕπΒΕτΒΕσΒΕςΒΕρΡΕρ<CE95>ΕρΣΕραΕρβΕρρΕρςΕρσfnf~ΕωnΕω~σ~fΦΕϊ~ΕωΦΕρΡΕρ<CE95>ΕρΣΕραΕρβΕρρΕρςΕρσΔβyΔβyΔβyΕω/Εψ/Εω.Εψ.ΔβyΔβ}ΔβyΔβ}ΔβyΔβ}ΕψSΕόSΕςSΔβy Δβy!Δβy"Δβy#Δβy$Δβy%ΔβyAΔγy Δγq!Ερ|Ευ|Εσ|Εχ|Ερ}Ευ}Εσ}Εχ}ΕϋπΕ<>πΕϊζΕώζΕψ[Εό[Εω[Εύ[Εϊ[Εώ[ΕψZΕόZΕϋ-Εϋ,ΕσZΕσ*Ες*ΕςZΕϊ-Εϊ,Εω(Εω) Εύ(Εύ) Εψ(Εψ) Εό(Εό) ΕωΕω ΕύΕύ ΕψΕψ ΕόΕό ΕρΕω ΕπΕψ ΕρΕω ΕπΕψ Δγy Δγy Δγy Δγq ΕρΔΔγq"ΕϋΕ<>

View File

@ -1,32 +0,0 @@
;--- AVX, 32-bit
.686
.model flat
.xmm
.data
m128 label xmmword
m256 label ymmword
oword 0,0
.code
vmovmskpd eax, xmm0
vmovmskps eax, xmm0
vmovmskpd eax, ymm0 ;accepted since 2.11
vmovmskps eax, ymm0 ;accepted since 2.11
vmovntdq m128, xmm0
vmovntdqa xmm0, m128
vmovntpd m128, xmm0
vmovntps m128, xmm0
vmovntdq m256, ymm0 ;accepted since 2.11
; vmovntdqa ymm0, m256 ;this will work in AVX2 only
vmovntpd m256, ymm0 ;accepted since 2.11
vmovntps m256, ymm0 ;accepted since 2.11
end

Binary file not shown.

View File

@ -1,29 +0,0 @@
;--- AVX, 32-bit
;--- test of some instructions that were missing in avx1.asm
.686
.model flat
.xmm
.data
m32 label dword
m64 label qword
dq 0
.code
vmovss xmm0, xmm1, xmm2
vmovss xmm0, m32
vmovss m32, xmm0
vmovss xmm0, dword ptr [ebx]
vmovss dword ptr [ebx], xmm0
vmovsd xmm0, xmm1, xmm2
vmovsd xmm0, m64
vmovsd m64, xmm0
vmovsd xmm0, qword ptr [ebx]
vmovsd qword ptr [ebx], xmm0
end

Binary file not shown.

View File

@ -1,88 +0,0 @@
;--- AVX, 64-bit
ifdef __JWASM__
if type near eq 0ff02h
.x64
.model flat, fastcall
endif
endif
.data
m08 label byte
m16 label word
m32 label dword
m64 label mmword
m128 label xmmword
m256 label ymmword
.code
if 1
movd xmm0, eax
movd xmm0, rax
movd xmm0, m32
movd xmm0, m64
movd eax, xmm0
movd rax, xmm0
movd m32, xmm0
movd m64, xmm0
vmovd xmm0, eax
vmovd xmm0, rax
vmovd xmm0, m32
vmovd xmm0, m64
vmovd eax, xmm0
vmovd rax, xmm0
vmovd m32, xmm0
vmovd m64, xmm0
movq xmm0, m64
movq m64, xmm0
vmovq xmm0, m64
vmovq m64, xmm0
endif
if 1
vpextrb eax, xmm1, 1
vpextrb m08, xmm1, 1
vpextrw eax, xmm1, 2
vpextrw m16, xmm1, 2
vpextrd eax, xmm1, 3
vpextrd m32, xmm1, 3
vpextrq rax, xmm1, 4
vpextrq m64, xmm1, 4
vpinsrb xmm0, xmm1, eax, 1
vpinsrb xmm0, xmm1, m08, 1
vpinsrw xmm0, xmm1, eax, 2
vpinsrw xmm0, xmm1, m16, 2
vpinsrd xmm0, xmm1, eax, 3
vpinsrd xmm0, xmm1, m32, 3
vpinsrq xmm0, xmm1, rax, 4
vpinsrq xmm0, xmm1, m64, 4
endif
vcvtsd2si eax, xmm1
vcvtsd2si rax, xmm1
vcvtsd2si eax, m64
vcvtsd2si rax, m64
vcvttsd2si eax, xmm1
vcvttsd2si eax, m64
vcvttsd2si rax, m64
vcvtss2si eax, xmm1
vcvtss2si rax, xmm1
vcvtss2si eax, m32
vcvtss2si rax, m32
vcvttss2si eax, xmm1
vcvttss2si rax, xmm1
vcvttss2si eax, m32
vcvttss2si rax, m32
vpmovmskb eax, xmm1
vpmovmskb rax, xmm1
; vmovapd ymm0, ymm1
end

Binary file not shown.

View File

@ -1,50 +0,0 @@
;--- test backslash
;--- no error expected
.386
.model flat
OFN_EXPLORER equ 1
OFN_HIDEREADONLY equ 2
OFN_ENABLEHOOK equ 4
OFN_PATHMUSTEXIST equ 8
OFN_ENABLESIZING equ 16
.code
db 1,2,3, \
4,5,6,7,8
N1 equ 1
N2 equ 2
E1 textequ <abc\
def>
E2 equ abc \
def()
E3 equ N1 or\
N2
E4 equ N1 or \
N2
db @CatStr(!",%E1,!")
db @CatStr(!",%E2,!")
db @CatStr(!",%E3,!")
db @CatStr(!",%E4,!")
;--- this works with JWasm, but not with Masm.
;--- Masm does NOT insert a blank in this case.
E5 equ OFN_EXPLORER or OFN_HIDEREADONLY\
or OFN_ENABLEHOOK or OFN_PATHMUSTEXIST or OFN_ENABLESIZING
db E5
;--- this works for both JWasm and Masm. A white space is inserted.
db OFN_EXPLORER or OFN_HIDEREADONLY\
or OFN_ENABLEHOOK or OFN_PATHMUSTEXIST or OFN_ENABLESIZING
END

View File

@ -1 +0,0 @@
abcdefabc def()33

View File

@ -1,24 +0,0 @@
;--- this is for format -bin only
;--- the second section should not be written to disk,
;--- but should affect "current" offset.
.386
S1 segment FLAT ;file offset 0
db 1
S1 ends
S2 segment FLAT
org 40h
S2 ends
S3 segment FLAT ;file offset 10h, offset 50h
vb db 2
S3 ends
_TEXT segment FLAT 'CODE'
mov eax, offset vb
_TEXT ends
END

Binary file not shown.

View File

@ -1,83 +0,0 @@
;--- BT, BTC, BTR, BTS
.386
.model flat
.data
vq dq 0
vd dd 0
vw dw 0
vb db 0
.code
bt ax, 1
bt vw, 2
bt ax, cx
bt vw, cx
bt eax,3
bt vd, 4
bt eax,ecx
bt vd, ecx
btc ax, 1
btc vw, 2
btc ax, cx
btc vw, cx
btc eax,3
btc vd, 4
btc eax,ecx
btc vd, ecx
btr ax, 1
btr vw, 2
btr ax, cx
btr vw, cx
btr eax,3
btr vd, 4
btr eax,ecx
btr vd, ecx
bts ax, 1
bts vw, 2
bts ax, cx
bts vw, cx
bts eax,3
bts vd, 4
bts eax,ecx
bts vd, ecx
;--- LOCK for BT is invalid,
;--- for BTC, BTR and BTS LOCK is ok for memory operands only
;--- However, Masm will always accept LOCK for BT, BTC, BTR and BTS
; lock bt ax,1
; lock bt eax,1
; lock bt vw,1
; lock bt vd,1
; lock btc ax,1
; lock btc eax,1
lock btc vw,1
lock btc vd,1
; lock btr ax,1
; lock btr eax,1
lock btr vw,1
lock btr vd,1
; lock bts ax,1
; lock bts eax,1
lock bts vw,1
lock bts vd,1
if 0 ;accepted by JWasm v2.05 and below
bt vb,1
btc vb,1
btr vb,1
bts vb,1
endif
end

Binary file not shown.

View File

@ -1,27 +0,0 @@
;--- BT, limits of immediate argument
.386
.model small
.data
vw label word
vd label dword
.code
bt ax, -1
bt ax, -128
bt ax, 255
bt eax, -1
bt eax, -128
bt eax, 255
bt vw, -1
bt vw, -128
bt vw, 255
bt vd, -1
bt vd, -128
bt vd, 255
end

Binary file not shown.

View File

@ -1,19 +0,0 @@
;--- for indirect calls/jmps, a displacement in form of a mbr
;--- didn't set the type of the call/jmp in v1.94-2.02
.286
.model tiny
cmOPTION struc
optchar db ?
optmask dw 0
optproc@ dw ?
cmOPTION ends
.code
call [bx + cmOPTION.optproc@]
call [bx + offset cmOPTION.optproc@]
end

View File

@ -1 +0,0 @@
˙W˙W

View File

@ -1,32 +0,0 @@
;--- indirect call with TYPE coercion
.286
.MODEL small
.386
option casemap:none
p1 typedef proto near stdcall :word
p2 typedef proto far stdcall :word
p3 typedef proto near32 stdcall :word
p4 typedef proto far32 stdcall :word
;--- duplicate type definition ( was a problem in 2.09-2.10 )
p3 typedef proto near32 stdcall :word
p4 typedef proto far32 stdcall :word
.CODE
call near32 ptr [bx]
call far32 ptr [bx]
call p1 ptr [bx]
call p2 ptr [bx]
call p3 ptr [bx]
call p4 ptr [bx]
invoke p1 ptr [bx], 1
invoke p2 ptr [bx], 1
invoke p3 ptr [bx], 1
invoke p4 ptr [bx], 1
END

View File

@ -1 +0,0 @@
f<EFBFBD>f<><1F><17>f<>f<>j<01>j<01>fjf<>fjf<>

View File

@ -1,22 +0,0 @@
;--- invalid calls/jmps
.286
.MODEL small
_TEXT2 segment 'CODE'
p2 label near
_TEXT2 ends
.CODE
p1 label near
call p1, p1 ;masm: syntax error; jwasm: invalid instruction operands
call 12 ;jump destination must specify a label
call 1.0 ;masm: real or BCD number not allowed; jwasm: syntax error
call ds:12 ;instruction operand must have size (jwasm emits error in pass 2 only!)
call al ;masm: instruction operand must have size; jwasm: invalid instruction operands
call p2 ;cannot have implicit far jump or call to near label
END

View File

@ -1,5 +0,0 @@
CALL3.ASO(15) : Error A2049: Invalid instruction operands
CALL3.ASO(16) : Error A2249: Jump destination must specify a label
CALL3.ASO(17) : Error A2209: Syntax error: 1.0
CALL3.ASO(19) : Error A2049: Invalid instruction operands
CALL3.ASO(20) : Error A2169: Cannot have implicit far jump or call to near label

View File

@ -1,19 +0,0 @@
;--- calling an external with a MT_PTR coercion
;--- didn't work in v2.06-2.09. See parser.c, SetPtrMemtype().
.386
.model flat, stdcall
proto_func TYPEDEF PROTO C :DWORD
LPFNFUNC TYPEDEF PTR proto_func
EXTERNDEF extf1:DWORD
.code
call LPFNFUNC ptr extf1
extf1 dd 0
end

Binary file not shown.

View File

@ -1,10 +0,0 @@
.386
_TEXT32 segment use32 'CODE'
public xxx
xxx:
ret
_TEXT32 ends
end

View File

@ -1,23 +0,0 @@
;--- type coercion far -> near and change in offset size
.386
includelib <call5.lib>
externdef xxx:far
_TEXT16 segment use16 'CODE'
start:
call near32 ptr xxx
_TEXT16 ends
_TEXT32 segment use32 'CODE'
call near16 ptr xxx
_TEXT32 ends
_STACK segment stack 'STACK'
db 100h dup (?)
_STACK ends
end start

Binary file not shown.

Binary file not shown.

View File

@ -1,67 +0,0 @@
;--- 64-bit call and jumps
;--- there are some problems:
;--- - Masm (ML64) doesn't encode the 16-bit far calls/jumps correctly
;--- - Masm (ML64) doesn't accept the 64-bit far calls/jumps correctly
ifdef __JWASM__
.x64
.model flat
endif
.data
PF16 typedef ptr far16
v16n dw 0 ;16-bit indirect near branch (not allowed)
v16f PF16 0 ;16-bit indirect far branch
v32n dd 0 ;32-bit indirect near branch (not allowed)
v32f df 0 ;32-bit indirect far branch
v64n dq 0 ;64-bit indirect near branch
v64f dt 0 ;64-bit indirect far branch
.code
; call v16n ;Masm accepts, but not allowed
call v16f ;Masm accepts, but encodes wrong
; call v32n ;not allowed
call v32f
call v64n
ifdef __JWASM__
call v64f ;Masm rejects
endif
call v16fl
call v32fl
call v64nl
; call ax ;Masm accepts, but not allowed
; call eax ;not allowed
call rax
call r9
; jmp v16n ;Masm accepts, but not allowed
jmp v16f ;Masm accepts, but encodes wrong
; jmp v32n ;not allowed
jmp v32f
jmp v64n
ifdef __JWASM__
jmp v64f ;Masm rejects
endif
jmp v16fl
jmp v32fl
jmp v64nl
; jmp ax
; jmp eax
jmp rax
jmp r9
ret
.data
v16fl PF16 0
v32fl df 0
v64nl dq 0
END

Binary file not shown.

View File

@ -1,26 +0,0 @@
;--- test OMF case mapping for option -Cu
;--- communals and exported names work since v2.11.
extern ext1:near
extern ext2:near
comm c1:dword
comm c2:word
e1 equ 1
e2 equ 2
public e1, e2
s1 segment 's1_code'
p1 proc far export
p1 endp
s1 ends
s2 segment 's2_code'
p2 proc far export
p2 endp
s2 ends
g1 group s1,s2
end

Binary file not shown.

View File

@ -1,22 +0,0 @@
;--- prior to v2.04, there was a problem in Result2, because
;--- JWasm swallowed the blank between ??Sentence and TE1
;--- "trailing" blanks as behind ??Sentence in Result3 were no problem
.386
.model flat
.data
TE1 textequ <1>
??Sentence textequ <szProp dw TE1>
Result1 textequ @CatStr(%??Sentence, <,>, TE1 )
Result2 textequ @CatStr(%??Sentence TE1, <TE1>)
Result3 textequ @CatStr(%??Sentence , <TE1>)
Result1
db @CatStr(!",%Result2,!")
db @CatStr(!",%Result3,!")
END

Binary file not shown.

View File

@ -1,20 +0,0 @@
;--- must be 2 entries for "CODE" and "code" in lnames
;--- and no complains about segment attribute changes
option casemap:none
_TEXT segment 'CODE'
mov al,0
_TEXT ends
_TEXT segment 'code'
mov al,0
_TEXT ends
_TEXT segment 'XXX_CODE'
mov al,0
_TEXT ends
_TEXT segment 'DATA'
mov al,0
_TEXT ends
end

Some files were not shown because too many files have changed in this diff Show More