Author Topic: HJWasm Releases  (Read 95284 times)

habran

  • Member
  • *****
  • Posts: 1228
    • uasm
Re: HJWasm Releases
« Reply #60 on: January 24, 2016, 05:41:04 AM »
That is good news, can you show some numbers like timings for building the MasmBasic library
Cod-Father

TWell

  • Member
  • ****
  • Posts: 743
Re: HJWasm Releases
« Reply #61 on: January 24, 2016, 06:49:05 AM »
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
« Last Edit: January 25, 2016, 07:48:53 PM by TWell »

jj2007

  • Member
  • *****
  • Posts: 13957
  • Assembly is fun ;-)
    • MasmBasic
Re: HJWasm Releases
« Reply #62 on: January 24, 2016, 08:30:44 AM »
I have no errors for the m32 lib build. However, AsmC fails with an exception.
Attached instructions and a batch file.

habran

  • Member
  • *****
  • Posts: 1228
    • uasm
Re: HJWasm Releases
« Reply #63 on: January 24, 2016, 09:32:43 AM »
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

  • Member
  • *****
  • Posts: 2388
    • https://github.com/nidud/asmc
Re: HJWasm Releases
« Reply #64 on: January 25, 2016, 02:20:33 AM »
deleted
« Last Edit: February 25, 2022, 11:07:06 AM by nidud »

nidud

  • Member
  • *****
  • Posts: 2388
    • https://github.com/nidud/asmc
Re: HJWasm Releases
« Reply #65 on: January 25, 2016, 03:17:36 AM »
deleted
« Last Edit: February 25, 2022, 11:07:15 AM by nidud »

jj2007

  • Member
  • *****
  • Posts: 13957
  • Assembly is fun ;-)
    • MasmBasic
Re: HJWasm Releases
« Reply #66 on: January 25, 2016, 04:31:09 AM »
Results for building \Masm32\m32lib:
Code: [Select]
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

  • Regular Member
  • *
  • Posts: 26
Re: HJWasm Releases
« Reply #67 on: January 25, 2016, 02:49:52 PM »
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: [Select]
.CODE

temp proc

pmullw xmm1, xmm2

temp endp

END

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

Code: [Select]
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

  • Member
  • *****
  • Posts: 1228
    • uasm
Re: HJWasm Releases
« Reply #68 on: January 25, 2016, 04:55:52 PM »
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
« Last Edit: January 25, 2016, 09:13:57 PM by habran »
Cod-Father

dawnraider

  • Regular Member
  • *
  • Posts: 26
Re: HJWasm Releases
« Reply #69 on: January 25, 2016, 08:05:21 PM »
Hi Habran,

Thanks for the fix. This fixes my problem!

dawnraider

  • Regular Member
  • *
  • Posts: 26
Re: HJWasm Releases
« Reply #70 on: January 25, 2016, 08:18:39 PM »
Hi Habran,

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

Code: [Select]
.CODE

temp proc

vpblendd xmm1, xmm2, xmm3, 0FFh

temp endp

END

Here is the result:

Code: [Select]
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

  • Member
  • *****
  • Posts: 1228
    • uasm
Re: HJWasm Releases
« Reply #71 on: January 25, 2016, 09:16:52 PM »
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

  • Regular Member
  • *
  • Posts: 26
Re: HJWasm Releases
« Reply #72 on: January 25, 2016, 09:45:15 PM »
HI Habran,

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

Code: [Select]
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

  • Member
  • *****
  • Posts: 1228
    • uasm
Re: HJWasm Releases
« Reply #73 on: January 25, 2016, 10:23:58 PM »
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

  • Regular Member
  • *
  • Posts: 26
Re: HJWasm Releases
« Reply #74 on: January 25, 2016, 10:41:52 PM »
Hi,

Your last version fixes vpblendd. Thanks!

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

Code: [Select]
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:

Code: [Select]
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.