Commit Graph

141 Commits

Author SHA1 Message Date
1b3f4c1b99 TEST clamp() 2025-07-21 16:29:22 +02:00
9641ed1480 TEST max,maxu (shameless copy,paste,replace) 2025-07-21 16:23:40 +02:00
621de1c3db TEST minu(), improved test outputs, default to only showing full output on failure 2025-07-21 16:20:44 +02:00
f8dc652501 Fix %if statement (TEST_tolower => TEST_islower) 2025-07-21 16:09:22 +02:00
d14b90ffef Fix min() tests 2025-07-21 16:06:28 +02:00
34de8f351d Tests: print expected return value and real return value. Also allow printing this only for failed tests (preventing more output to console) 2025-07-21 16:04:25 +02:00
ad559062ef Start rewriting tests 2025-07-21 15:33:54 +02:00
7db299bcbd printf test 18: atoi->itoa 2025-07-21 00:30:17 +02:00
336a178d30 Revert "utoa: call clampu instead of clamp (since utoa=>unsigned to ascii)" -- it's for padding length, max 64, no unsigned tests needed...
This reverts commit e00895105c.
2025-07-20 23:55:01 +02:00
e00895105c utoa: call clampu instead of clamp (since utoa=>unsigned to ascii) 2025-07-20 23:48:07 +02:00
d595ba1903 Little update in printf comment (padding now does take num prefix into account) 2025-07-20 23:39:54 +02:00
8c25b7913b printf(): Print null pointers (arg for %s = 0) as (null), fixes #4 2025-07-20 22:52:17 +02:00
ebee21c457 mov X, 0 -> xor X, X - Fixes #3 2025-07-20 22:38:06 +02:00
6bc6000454 printf: Prevent special characters not being processed if it was proceeded by a percentage sign (ie '%\n') 2025-07-20 12:35:13 +02:00
b0e9193b0a atoi(): Add support for lowercase hexadecimal letters 2025-07-20 12:18:29 +02:00
318ccc960f atoi(): Remove leftover label .getLen 2025-07-20 11:50:03 +02:00
aef72931a3 atoi(): Don't use extra loop for calculating base^n; r9 already holds previous value so just do r9*rsi ( [previous base^n] * base) 2025-07-20 11:47:31 +02:00
3510139c25 Add tests for atoi() 2025-07-20 11:41:20 +02:00
4ed0ae373c Adds atoi 2025-07-20 11:33:07 +02:00
1c5ba65f49 Correctly set padding length when using prefix (fixes #1) 2025-07-17 14:56:35 +02:00
09cf143b2a Fix printf comment: %8x->%#8x 2025-07-16 13:25:59 +02:00
bb53e7967d Account for padding length when inserting prefix while padding with spaces 2025-07-16 13:24:24 +02:00
0a737dc0e5 Use r13 only instead of r13+r15 (bitmasking) 2025-07-15 21:34:36 +02:00
3978805d8f Extra test for %p (or rather prefix+padding): prefix taken into account for padding spaces but not for zeroes. 2025-07-15 16:57:53 +02:00
53f9c1e2f7 Fix tests for printf %p: Don't use random magic number but actual pointers, since that's what %p is for) 2025-07-15 16:50:00 +02:00
e718e1534b printf: Add format specifier %p 2025-07-15 16:39:19 +02:00
70ab8b19c3 Allow printing prefixes for %x,%X,%b and %o (pass ~base to udec) 2025-07-15 16:31:52 +02:00
87fd5d815a Update supported padding specifiers comment (include o[ctal]) 2025-07-15 10:52:09 +02:00
a4855c3b75 printf: Macro process_arg to decrease repeated code 2025-07-15 10:45:01 +02:00
351f8058f9 Replace old X2str references in src/tests.asm 2025-07-15 08:58:03 +02:00
7caa050b71 Revert src/tests.asm (%000064b -> %064b). Was a quick test (assure pad num is calculated correctly with multiple zeroes) 2025-07-15 08:56:49 +02:00
920522e167 printf: increase arg counter (r14) for invalid specifiers, as it's supposed to do (according to func doc) 2025-07-15 08:55:37 +02:00
e593ce76d3 Update supported specifiers in printf comment 2025-07-15 08:19:27 +02:00
dc49e29019 utoa/printf: Support octal (%o) 2025-07-15 08:18:57 +02:00
9f33e36883 Rewrite X2str functions to itoa/utoa ; it was a stupid idea to have seperate functions (=> more maintenance) 2025-07-15 07:58:18 +02:00
954bc21eee Change mas[Dec|Hex|Bin]str msgs 2025-07-14 15:08:54 +02:00
d4dd5b7d80 printf test 12: Use tabs+%0REG_SIZEb instead of %64b for each register; assure full register length is printed if RAX has a different value 2025-07-14 14:22:10 +02:00
38126fed44 Correct printf12 2025-07-14 13:50:35 +02:00
cae828bc9a printf: Add support for \n and \t 2025-07-14 13:48:40 +02:00
c544ef8c58 Add lazy clamp/clampu tests, adds [MIN|MAX]_(U)INT[64|32|16|8] constants 2025-07-14 13:32:37 +02:00
e806e50dc2 X2str(): Fix bug where padding wasn't added for longer (converted) strings 2025-07-14 12:05:00 +02:00
483d9185de Fix printf args always being first arg when using padding, improved/added tests. NEW FOUND BUG: full qword byte misses 3 characters when using padding 2025-07-13 15:03:59 +02:00
1971c5b897 Fix typo (extra -) in printf10Str and printf11Str 2025-07-12 16:36:51 +02:00
efeded5547 printf: Add padding support for %d, %i, %u, %x, %X 2025-07-12 16:33:07 +02:00
b327248e0c printf: Shorten code; MOV RDX, R13 instead of bunch of checks (originally I intended to use NOT R12 if padding with zeroes) 2025-07-12 08:10:43 +02:00
ee17ec68e0 printf(): Allow padding (spaces or zeroes) for %b 2025-07-12 07:48:21 +02:00
971b1cbb86 Adds clamp[u]() 2025-07-12 06:50:55 +02:00
73e3918d39 printf(): Start adding padding support (right now just detect it and calculate padding length) 2025-07-11 00:04:30 +02:00
13d14f7a1f (Finally) use macros in printf() to shorten code / less repeated code 2025-07-10 12:47:01 +02:00
902d962068 Adds bin2str() and printf() format specifier %b 2025-07-10 12:19:54 +02:00