|
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 |
|
|
e0bd8bcdbd
|
Adds min(), minu(), max(), maxu()
|
2025-07-10 11:58:29 +02:00 |
|
|
34d7fee8dc
|
Adds tolower(), toupper()
|
2025-07-10 11:42:35 +02:00 |
|
|
3951e50ab0
|
Force self to sub/add rsp before/after push/pop (instead of after/before push/pop) -- prevents popping wrong values, eventually (in callee, like what printf does)
|
2025-07-10 01:38:25 +02:00 |
|
|
2d1a4b9d56
|
convert.asm: Avoid stack usage for reversing string - use second buffer instead
|
2025-07-10 01:37:26 +02:00 |
|
|
d919a0be05
|
FIX: Stack alignment in tests.asm
|
2025-07-10 01:22:44 +02:00 |
|
|
2b3439c380
|
convert.asm: MOV -> LEA
|
2025-07-10 00:56:56 +02:00 |
|
|
467b5b7a0b
|
hex2str: Perform test r9,r9 only once (instead of for each number in loop .convert)
|
2025-07-10 00:22:36 +02:00 |
|
|
7d559d61da
|
Fix strcmp() behaviour (ret=-1 --> ret=0)
|
2025-07-10 00:01:26 +02:00 |
|
|
08389a5bb2
|
Adds strcmp() (note: much different than strcmp in C)
|
2025-07-09 23:44:40 +02:00 |
|
|
791cccc262
|
Improved strlen test (output), test islower/isupper
|
2025-07-09 22:58:51 +02:00 |
|
|
2a4f3b2558
|
Adds islower()/isupper()
|
2025-07-09 22:57:33 +02:00 |
|
|
368457f5c3
|
Remove leftover code in udec2str/hex2str
|
2025-07-09 12:17:00 +02:00 |
|
|
e592ad5c96
|
FIX: Stack alignment in printf()
|
2025-07-09 11:56:01 +02:00 |
|
|
3eb71845a7
|
hex2str: cmp -> test
|
2025-07-09 11:44:22 +02:00 |
|
|
12827bb1a1
|
Add %i in printf test
|
2025-07-09 11:41:21 +02:00 |
|
|
881d88ec4e
|
hex2str: Fix logic for arg uppercase (0=tolower, anything else=upper)
|
2025-07-09 11:35:03 +02:00 |
|
|
e80b14c051
|
printf: Support %i,%x,%X
|
2025-07-09 11:34:19 +02:00 |
|
|
af34e3208c
|
Adds hex2str
|
2025-07-09 11:16:04 +02:00 |
|
|
f8df1242fc
|
Rename int2str/uint2str -> dec2str/udec2str
|
2025-07-08 17:49:38 +02:00 |
|
|
ee14dbb853
|
printf() don't restore rcx and r8 for (u)int2str()
|
2025-07-08 17:40:02 +02:00 |
|