Use conditional moves in max[u]()/min[u]()
This commit is contained in:
16
core.asm
16
core.asm
@ -14,10 +14,8 @@ min:
|
||||
|
||||
mov rax, rdi
|
||||
cmp rdi, rsi
|
||||
jl .quit
|
||||
mov rax, rsi
|
||||
cmovg rax, rsi
|
||||
|
||||
.quit:
|
||||
leave
|
||||
ret
|
||||
;----- minu(unsigned int a, unsigned int b) -----;
|
||||
@ -28,10 +26,8 @@ minu:
|
||||
|
||||
mov rax, rdi
|
||||
cmp rdi, rsi
|
||||
jb .quit
|
||||
mov rax, rsi
|
||||
cmova rax, rsi
|
||||
|
||||
.quit:
|
||||
leave
|
||||
ret
|
||||
;----- max(int a, int b) -----;
|
||||
@ -42,10 +38,8 @@ max:
|
||||
|
||||
mov rax, rdi
|
||||
cmp rdi, rsi
|
||||
jg .quit
|
||||
mov rax, rsi
|
||||
cmovl rax, rsi
|
||||
|
||||
.quit:
|
||||
leave
|
||||
ret
|
||||
;----- maxu(unsigned int a, unsigned int b) -----;
|
||||
@ -56,10 +50,8 @@ maxu:
|
||||
|
||||
mov rax, rdi
|
||||
cmp rdi, rsi
|
||||
ja .quit
|
||||
mov rax, rsi
|
||||
cmovb rax, rsi
|
||||
|
||||
.quit:
|
||||
leave
|
||||
ret
|
||||
;----- islower(char* c) -----;
|
||||
|
Reference in New Issue
Block a user