aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2021-12-14 13:58:27 +0900
committerMITSUNARI Shigeo <[email protected]>2021-12-14 14:09:33 +0900
commitdf39606fee959ba7ceb0dbd7ae3be2b4b8a56b10 (patch)
treedf6ab235fb3f61e26e68779f67a5265d77bbb205
parent08f11817c4b7a73af0a2fd201cfefc1c01c07d95 (diff)
downloadxbyak-df39606fee959ba7ceb0dbd7ae3be2b4b8a56b10.tar.gz
xbyak-df39606fee959ba7ceb0dbd7ae3be2b4b8a56b10.zip
update doc
-rw-r--r--readme.md4
-rw-r--r--readme.txt20
2 files changed, 21 insertions, 3 deletions
diff --git a/readme.md b/readme.md
index c4d8871..4c78f7b 100644
--- a/readme.md
+++ b/readme.md
@@ -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)
```
diff --git a/readme.txt b/readme.txt
index e526d21..460da05 100644
--- a/readme.txt
+++ b/readme.txt
@@ -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)