diff options
author | MITSUNARI Shigeo <[email protected]> | 2021-12-14 13:58:27 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2021-12-14 14:09:33 +0900 |
commit | df39606fee959ba7ceb0dbd7ae3be2b4b8a56b10 (patch) | |
tree | df6ab235fb3f61e26e68779f67a5265d77bbb205 | |
parent | 08f11817c4b7a73af0a2fd201cfefc1c01c07d95 (diff) | |
download | xbyak-df39606fee959ba7ceb0dbd7ae3be2b4b8a56b10.tar.gz xbyak-df39606fee959ba7ceb0dbd7ae3be2b4b8a56b10.zip |
update doc
-rw-r--r-- | readme.md | 4 | ||||
-rw-r--r-- | readme.txt | 20 |
2 files changed, 21 insertions, 3 deletions
@@ -19,7 +19,7 @@ Use `and_()`, `or_()`, ... instead of `and()`, `or()`. If you want to use them, then specify `-fno-operator-names` option to gcc/clang. ### News -- add `jmp(mem)`, `call(mem)` `retf` for far absolute indirect jump. +- add `jmp(mem, T_FAR)`, `call(mem, T_FAR)` `retf()` for far absolute indirect jump. - vnni instructions such as vpdpbusd supports vex encoding. - (break backward compatibility) `push(byte, imm)` (resp. `push(word, imm)`) forces to cast `imm` to 8(resp. 16) bit. - (Windows) `#include <winsock2.h>` has been removed from xbyak.h, so add it explicitly if you need it. @@ -343,7 +343,7 @@ jmp(dword[eax], T_FAR); // jmp m16:32(FF /5) ### 64 bit mode ``` -jmp(word[eax], T_FAR); // jmp m16:16(FF /5) +jmp(word[rax], T_FAR); // jmp m16:16(FF /5) jmp(dword[rax], T_FAR); // jmp m16:32(FF /5) jmp(qword[rax], T_FAR); // jmp m16:64(REX.W FF /5) ``` @@ -1,5 +1,5 @@ - C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.00
+ C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.01
-----------------------------------------------------------------------------
◎概要
@@ -277,6 +277,24 @@ L(label); assert(label.getAddress(), getCurr());
```
+4. farジャンプ
+
+`jmp(mem, T_FAR)`, `call(mem, T_FAR)`, `retf()`をサポートします。
+サイズを明示するために`ptr`の代わりに`word|dword|qword`を利用してください。
+
+32bit
+```
+jmp(word[eax], T_FAR); // jmp m16:16(FF /5)
+jmp(dword[eax], T_FAR); // jmp m16:32(FF /5)
+```
+
+64bit
+```
+jmp(word[rax], T_FAR); // jmp m16:16(FF /5)
+jmp(dword[rax], T_FAR); // jmp m16:32(FF /5)
+jmp(qword[rax], T_FAR); // jmp m16:64(REX.W FF /5)
+```
+
・Xbyak::CodeGenerator()コンストラクタインタフェース
@param maxSize [in] コード生成最大サイズ(デフォルト4096byte)
|