fix int_to_str2 for 0

This commit is contained in:
janis 2025-11-01 01:41:05 +01:00
parent dae2e00569
commit e43424b780
Signed by: janis
SSH key fingerprint: SHA256:bB1qbbqmDXZNT0KKD5c2Dfjg53JGhj7B3CFcLIzSqq8
2 changed files with 9 additions and 1 deletions

View file

@ -104,7 +104,9 @@ int_to_str2:
test rdi, rdi
jnz .convert_loop
mov byte [rsi + r12], '0'
jmp .epilogue
inc r13
inc r12
jmp .reverse
.convert_loop:
mov rax, [rsp + 8] ; buffer length
@ -129,6 +131,7 @@ int_to_str2:
test rdi, rdi
jnz .convert_loop
.reverse:
; Reverse the digits
mov rdx, r12
dec r12 ; last digit index

View file

@ -12,6 +12,11 @@ fn main() {
let value = 1234567890isize;
let mut buffer = [0u8; 32];
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 s = slice.as_str();
println!("Integer: {}, String: {}", value, s);