3.61 Conditional Data Transfer
★★
long cread(long *xp) {
return (xp ? *xp : 0);
}long cread_alt(long *xp) {
return (!xp ? 0 : *xp);
}cread_alt:
movl $0, %eax
testq %rdi, %rdi
cmovne (%rdi), %raxLast updated
★★
long cread(long *xp) {
return (xp ? *xp : 0);
}long cread_alt(long *xp) {
return (!xp ? 0 : *xp);
}cread_alt:
movl $0, %eax
testq %rdi, %rdi
cmovne (%rdi), %raxLast updated