ARM64: move Psync closer to PAGE_MASK
and use 'bic' instead of 'and' modified: stub/arm64-linux.elf-so_fold.h modified: stub/src/arm64-linux.elf-so_fold.S
This commit is contained in:
parent
aee970e80b
commit
d41ceb0d31
1208
src/stub/arm64-linux.elf-so_fold.h
generated
1208
src/stub/arm64-linux.elf-so_fold.h
generated
File diff suppressed because it is too large
Load Diff
@ -56,7 +56,7 @@ get_page_mask: .globl get_page_mask
|
|||||||
|
|
||||||
Punmap: .globl Punmap
|
Punmap: .globl Punmap
|
||||||
ldr x8,PAGE_MASK
|
ldr x8,PAGE_MASK
|
||||||
and x8,x0,x8
|
bic x8,x0,x8
|
||||||
sub x0,x0,x8
|
sub x0,x0,x8
|
||||||
add x1,x1,x8
|
add x1,x1,x8
|
||||||
munmap: .globl munmap
|
munmap: .globl munmap
|
||||||
@ -66,7 +66,7 @@ munmap: .globl munmap
|
|||||||
Pprotect: .globl Pprotect
|
Pprotect: .globl Pprotect
|
||||||
mprotect: .globl mprotect
|
mprotect: .globl mprotect
|
||||||
ldr x8,PAGE_MASK
|
ldr x8,PAGE_MASK
|
||||||
and x8,x0,x8
|
bic x8,x0,x8
|
||||||
sub x0,x0,x8
|
sub x0,x0,x8
|
||||||
add x1,x1,x8
|
add x1,x1,x8
|
||||||
do_sys __NR_mprotect; ret
|
do_sys __NR_mprotect; ret
|
||||||
@ -80,12 +80,19 @@ mmap_privanon: .globl mmap_privanon
|
|||||||
|
|
||||||
Pmap: .globl Pmap
|
Pmap: .globl Pmap
|
||||||
ldr x8,PAGE_MASK
|
ldr x8,PAGE_MASK
|
||||||
and x8,x0,x8
|
bic x8,x0,x8
|
||||||
sub x0,x0,x8
|
sub x0,x0,x8
|
||||||
add x1,x1,x8
|
add x1,x1,x8
|
||||||
mmap: .globl mmap
|
mmap: .globl mmap
|
||||||
do_sys __NR_mmap; ret
|
do_sys __NR_mmap; ret
|
||||||
|
|
||||||
|
Psync: .globl Psync
|
||||||
|
ldr x8,PAGE_MASK
|
||||||
|
bic x8,x0,x8
|
||||||
|
sub x0,x0,x8
|
||||||
|
add x1,x1,x8
|
||||||
|
do_sys __NR_msync; ret
|
||||||
|
|
||||||
fold: // enter here (x0= &so_info; x1= &{argc,argv,envp,lr}
|
fold: // enter here (x0= &so_info; x1= &{argc,argv,envp,lr}
|
||||||
//%esp:
|
//%esp:
|
||||||
// MATCH_04 ptr unfolded_code
|
// MATCH_04 ptr unfolded_code
|
||||||
@ -199,13 +206,6 @@ brk:
|
|||||||
readlink:
|
readlink:
|
||||||
do_sys __NR_readlink; ret
|
do_sys __NR_readlink; ret
|
||||||
|
|
||||||
Psync: .globl Psync
|
|
||||||
ldr x8,PAGE_MASK
|
|
||||||
bic x8,x0,x8
|
|
||||||
sub x0,x0,x8
|
|
||||||
add x1,x1,x8
|
|
||||||
do_sys __NR_msync; ret
|
|
||||||
|
|
||||||
.globl __sync_cache_range
|
.globl __sync_cache_range
|
||||||
__sync_cache_range: // (void *lo, void *hi)
|
__sync_cache_range: // (void *lo, void *hi)
|
||||||
#include "arm64-sync-cache-range.S"
|
#include "arm64-sync-cache-range.S"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user