diff options
author | Ammar Faizi <ammar.faizi@students.amikom.ac.id> | 2021-10-24 19:43:22 +0200 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2021-12-01 02:26:42 +0100 |
commit | 7bdc0e7a390511cd3df8194003b908f15a6170a5 (patch) | |
tree | 1492a313d15e88b09f758f9d5de07cb0c45a5ab5 /tools/include | |
parent | tools/nolibc: x86: Remove `r8`, `r9` and `r10` from the clobber list (diff) | |
download | linux-7bdc0e7a390511cd3df8194003b908f15a6170a5.tar.xz linux-7bdc0e7a390511cd3df8194003b908f15a6170a5.zip |
tools/nolibc: x86-64: Use `mov $60,%eax` instead of `mov $60,%rax`
Note that mov to 32-bit register will zero extend to 64-bit register.
Thus `mov $60,%eax` has the same effect with `mov $60,%rax`. Use the
shorter opcode to achieve the same thing.
```
b8 3c 00 00 00 mov $60,%eax (5 bytes) [1]
48 c7 c0 3c 00 00 00 mov $60,%rax (7 bytes) [2]
```
Currently, we use [2]. Change it to [1] for shorter code.
Signed-off-by: Ammar Faizi <ammar.faizi@students.amikom.ac.id>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'tools/include')
-rw-r--r-- | tools/include/nolibc/nolibc.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/include/nolibc/nolibc.h b/tools/include/nolibc/nolibc.h index f9afe89ec6f2..4988866af0b5 100644 --- a/tools/include/nolibc/nolibc.h +++ b/tools/include/nolibc/nolibc.h @@ -420,7 +420,7 @@ asm(".section .text\n" "and $-16, %rsp\n" // x86 ABI : esp must be 16-byte aligned before call "call main\n" // main() returns the status code, we'll exit with it. "mov %eax, %edi\n" // retrieve exit code (32 bit) - "mov $60, %rax\n" // NR_exit == 60 + "mov $60, %eax\n" // NR_exit == 60 "syscall\n" // really exit "hlt\n" // ensure it does not return ""); |