News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

HJWasm Releases

Started by johnsa, January 16, 2016, 08:24:52 AM

Previous topic - Next topic

habran

That is good news, can you show some numbers like timings for building the MasmBasic library
Cod-Father

TWell

#61
m32lib

asmc.exe
0:20.827s

hwjasm32.exe
0:36.960s

hwjasm.exe 32-bit
0:29.4s

hwjasm.exe 64-bit
0:31.135s


EDIT: corrected tests

jj2007

I have no errors for the m32 lib build. However, AsmC fails with an exception.
Attached instructions and a batch file.

habran

Thanks JJ :t
I have the same result, that means that this version is stable, so we will release the source probably tonight.
HJWasm will probably run a little bit slower than JWasm  because it has to handle double number of instructions and all of them are very complex, so they need a special treatment.
I can not test yet AVX512 instructions, because the processor is not available yet AFAIK but when we get it we will check for errors.
There is no other dissembler available for AVX512 except Agner's Fog OBJCONV
We have cooperated so that both, OBJCONV and HJWasm produce correct output

Cheers!
Cod-Father

nidud

#64
deleted

nidud

#65
deleted

jj2007

Results for building \Masm32\m32lib:
3901 ms  AsmC (today's >64 args version)
4997 ms  JWasm
12551 ms HJWasm
16356 ms ML 10.0
16411 ms ML 6.15

dawnraider

Hi,

Thanks to Habran for the excellent work in continuing where JWasm left off.

I have a problem with the latest version of HJWasm.exe (as posted in this thread).
Please could other people confirm whether this is a bug for them or not?

The source code:


.CODE

temp proc

pmullw xmm1, xmm2

temp endp

END


When assembled with hjwasm /win64 x.asm I get the following error


HJWasm v2.13.64bit., Jan 22 2016, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.

x.asm(5) : Error A2049: Invalid instruction operands
x.asm: 9 lines, 1 passes, 0 ms, 0 warnings, 1 errors


If pmullw xmm1,xmm2 is changed to vpmullw xmm1,xmm2,xmm3 then the error does not occur.

This module assembles clean with VS2010 ml64.exe V10.00.40219.01. Platform is Windows 7 Ultimate 64-bit SP1

Thanks in advance,

habran

#68
Thanks dawnraider :t
Good find, this was an error which will be fixed in next release
For now here are both binaries with fixed bug
Cod-Father

dawnraider

Hi Habran,

Thanks for the fix. This fixes my problem!

dawnraider

Hi Habran,

I have another problem with AVX2 instructions. Here is the code:


.CODE

temp proc

vpblendd xmm1, xmm2, xmm3, 0FFh

temp endp

END


Here is the result:


HJWasm v2.13.64bit., Jan 25 2016, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.

x.asm(5) : Error A2209: Syntax error: vpblendd
x.asm: 9 lines, 1 passes, 0 ms, 0 warnings, 1 errors


Please could you check this, and all other AVX2 instructions?

Thanks in advance,

habran

Thanks again dawnraider
That one was not built in, I was not aware of it because I was working on AVX12, now it is
Keep up good work :t
Cod-Father

dawnraider

HI Habran,

This is taken from Intel's Software Development Manual. For your reference.


VEX.NDS.128.66.0F3A.W0 02 /r ib
VPBLENDD xmm1, xmm2, xmm3/m128, imm8

VEX.NDS.256.66.0F3A.W0 02 /r ib
VPBLENDD ymm1, ymm2, ymm3/m256, imm8


Thanks.

habran

Thanks dawnraider, but I already updated it in the same place where you took the last one
download it again and try
or you can download it from http://www.terraspace.co.uk/hjwasm.html
Cod-Father

dawnraider

Hi,

Your last version fixes vpblendd. Thanks!

I found another problem: vpmaskmovd xmm1, xmm2, xmmword ptr [edx]


HJWasm v2.13.64bit., Jan 25 2016, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.

x.asm(6) : Error A2209: Syntax error: vpmaskmovd
x.asm: 10 lines, 1 passes, 0 ms, 0 warnings, 1 errors


From the Intel Software Developer's Manual:


VEX.NDS.128.66.0F38.W0 8C /r
VPMASKMOVD xmm1, xmm2, m128

VEX.NDS.256.66.0F38.W0 8C /r
VPMASKMOVD ymm1, ymm2, m256

VEX.NDS.128.66.0F38.W1 8C /r
VPMASKMOVQ xmm1, xmm2, m128

VEX.NDS.256.66.0F38.W1 8C /r
VPMASKMOVQ ymm1, ymm2, m256

VEX.NDS.128.66.0F38.W0 8E /r
VPMASKMOVD m128, xmm1, xmm2

VEX.NDS.256.66.0F38.W0 8E /r
VPMASKMOVD m256, ymm1, ymm2

VEX.NDS.128.66.0F38.W1 8E /r
VPMASKMOVQ m128, xmm1, xmm2

VEX.NDS.256.66.0F38.W1 8E /r
VPMASKMOVQ m256, ymm1, ymm2


Please could you just check that all AVX2 integer instructions are supported?

Thanks in advance.