flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
macomics 14 May 2025, 20:29
[strikeout]pause = 486 or p5[/strikeout]
No.
|
||||||||||
![]() |
|
Jessé 14 May 2025, 21:50
I added to p6.inc and x64.inc in the following format:
Code: iterate <instr,opcode>, pause,<0F3h,90h> ; added by Jessé Gonçalves calminstruction instr? asm db opcode end calminstruction end iterate Now remaining only the complicated question: wht it appears that 'format?.include' excludes xcall? definition... 😅 |
|||
![]() |
|
bitRAKE 15 May 2025, 01:59
Switching to the x86-2.inc processor model would be another option - seems the instruction development has progressed further.
|
|||
![]() |
|
Tomasz Grysztar 15 May 2025, 06:38
Jessé wrote: Now remaining only the complicated question: wht it appears that 'format?.include' excludes xcall? definition... 😅 Code: include 'format/format.inc' format ELF64 executable 3 include 'cpu/ext/avx2.inc' include 'cpu/ext/cet_ibt.inc' include 'cpu/ext/cet_ss.inc' |
|||
![]() |
|
Jessé 15 May 2025, 16:16
Nice, problem solved. My bad about it. I've tried many things, but not the one above...
I'm trying to adapt to x86-2 as suggested. For now, I have minor issues (related with AVX2) with it at first, but I'm trying to figure out myself before opening topic here. Either way, both of them are usually easy fixes, like both ways of reaching pause instruction, for example. |
|||
![]() |
|
Tomasz Grysztar 15 May 2025, 16:53
Jessé wrote: Either way, both of them are usually easy fixes, like both ways of reaching pause instruction, for example. |
|||
![]() |
|
Jessé 16 May 2025, 12:37
I read it, and let +1 way of doing it there...
![]() The question on AVX2 instruction vmovdqa/vmovdqu remains an issue. From now, I still not able to figure out what's wrong: Test Code Code: format ELF64 executable 3 entry Start ; use everything segment readable executable Start: endbr64 xor rbp, rbp vpxor ymm14, ymm14, ymm14 ; this is fine vmovdqa ymm0, [rsp] ; this gives an error vmovdqu ymm1, [rsp] ; this too jmp $ Using entire fasm2 environment to compile it (including the fasm2 shell script instead of fasmg.x64 executable directly knowing that it is already including fasm2.inc file), it gives this error: Quote: ❯ fasm2 testavx2.fasm2 Using fasm2 because I know it is essentially fasmg using x86-2 include. Thanks in advance. |
|||
![]() |
|
Tomasz Grysztar 16 May 2025, 13:08
It seems I lost these two instructions during editing. Should be fixed now.
|
|||
![]() |
|
Tomasz Grysztar 16 May 2025, 15:05
There's one more thing that you should be careful with when assembling AVX instructions with fasm2, by default it has all AVX-512 instructions enabled and some of the AVX/AVX2 instructions may be optimized when EVEX displacement compression allows to make them shorter (see my earlier post about it). Perhaps the AVX-512 should not be enabled unless explicitly stated? For now you can disable it with USEAVX256 or USE AVX2, or by manually selecting instruction sets like win64avx512.asm does.
|
|||
![]() |
|
Jessé 16 May 2025, 19:34
Working fine now.
Thanks for the advice on AVX512. |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.