fix int_to_str2 for 0
This commit is contained in:
parent
dae2e00569
commit
e43424b780
|
|
@ -104,7 +104,9 @@ int_to_str2:
|
||||||
test rdi, rdi
|
test rdi, rdi
|
||||||
jnz .convert_loop
|
jnz .convert_loop
|
||||||
mov byte [rsi + r12], '0'
|
mov byte [rsi + r12], '0'
|
||||||
jmp .epilogue
|
inc r13
|
||||||
|
inc r12
|
||||||
|
jmp .reverse
|
||||||
|
|
||||||
.convert_loop:
|
.convert_loop:
|
||||||
mov rax, [rsp + 8] ; buffer length
|
mov rax, [rsp + 8] ; buffer length
|
||||||
|
|
@ -129,6 +131,7 @@ int_to_str2:
|
||||||
test rdi, rdi
|
test rdi, rdi
|
||||||
jnz .convert_loop
|
jnz .convert_loop
|
||||||
|
|
||||||
|
.reverse:
|
||||||
; Reverse the digits
|
; Reverse the digits
|
||||||
mov rdx, r12
|
mov rdx, r12
|
||||||
dec r12 ; last digit index
|
dec r12 ; last digit index
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,11 @@ fn main() {
|
||||||
let value = 1234567890isize;
|
let value = 1234567890isize;
|
||||||
let mut buffer = [0u8; 32];
|
let mut buffer = [0u8; 32];
|
||||||
unsafe {
|
unsafe {
|
||||||
|
let slice = int_to_str2(0, buffer.as_mut_ptr(), buffer.len(), 10);
|
||||||
|
let s = slice.as_str();
|
||||||
|
println!("Integer: {}, String: {}", 0, s);
|
||||||
|
assert_eq!(s, format!("{}", 0));
|
||||||
|
|
||||||
let slice = int_to_str2(value, buffer.as_mut_ptr(), buffer.len(), 10);
|
let slice = int_to_str2(value, buffer.as_mut_ptr(), buffer.len(), 10);
|
||||||
let s = slice.as_str();
|
let s = slice.as_str();
|
||||||
println!("Integer: {}, String: {}", value, s);
|
println!("Integer: {}, String: {}", value, s);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue