/programs/develop/ktcc/trunk/libc/start/start.asm |
---|
33,6 → 33,7 |
; or al, [params+buf_len-1] |
; jnz .crash |
; check if path written by OS |
mov [argc], 0 |
mov eax, [hparams] |
test eax, eax |
jz .without_path |
/programs/develop/ktcc/trunk/libctest/float2.c |
---|
0,0 → 1,42 |
#include <stdio.h> |
#include <math.h> |
main() |
{ |
int i; |
for (i = 0; i < 10; i++) |
{ |
printf("------------------------------------------------------\n"); |
printf ( "remainder of 5.3 / 2 is %f\n", remainder (5.3,2) ); |
printf ( "remainder of 18.5 / 4.2 is %f\n", remainder (18.5,4.2) ); |
//remainder of 5.3 / 2 is -0.700000 |
//remainder of 18.5 / 4.2 is 1.700000 |
printf ( "fmod of 5.3 / 2 is %f\n", fmod (5.3,2) ); |
printf ( "fmod of 18.5 / 4.2 is %f\n", fmod (18.5,4.2) ); |
// fmod of 5.3 / 2 is 1.300000 |
// fmod of 18.5 / 4.2 is 1.700000 |
double param, fractpart, intpart, result; |
int n; |
param = 3.14159265; |
fractpart = modf (param , &intpart); |
printf ("%f = %f + %f \n", param, intpart, fractpart); |
//3.141593 = 3.000000 + 0.141593 |
param = 0.95; |
n = 4; |
result = ldexp (param , n); |
printf ("%f * 2^%d = %f\n", param, n, result); |
//0.950000 * 2^4 = 15.200000 |
param = 8.0; |
result = frexp (param , &n); |
printf ("%f = %f * 2^%d\n", param, result, n); |
//8.000000 = 0.500000 * 2^4 |
param = 50; |
result = frexp (param , &n); |
printf ("%f = %f * 2^%d\n", param, result, n); |
} |
} |
/programs/develop/ktcc/trunk/readme.txt |
---|
2,3 → 2,6 |
source/readme.* |
source/changelog |
source/tcc-doc.info or .texi |
building Kolibri version |
>make -f Makefile.kos32 |
/programs/develop/ktcc/trunk/source/Makefile.kos32 |
---|
3,8 → 3,13 |
SDK_DIR:= $(abspath ../../../sdk) |
LDFLAGS = -static -nostdlib -T $(SDK_DIR)/sources/newlib/static.lds |
#gcc 4.8 |
#LDFLAGS = -static -nostdlib -T $(SDK_DIR)/sources/newlib/static.lds |
LDFLAGS = -static -S -nostdlib -T $(SDK_DIR)/lib/app-dynamic.lds \ |
--image-base 0 |
CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 |
INCLUDES= -I $(SDK_DIR)/sources/newlib/libc/include |
20,7 → 25,8 |
default: tcc |
tcc: $(OBJECTS) |
$(LD) $(LDFLAGS) $(LIBPATH) -o tcc $(OBJECTS) -lgcc_eh -lc -lgcc -lc |
#gcc4.8 $(LD) $(LDFLAGS) $(LIBPATH) -o tcc $(OBJECTS) -lgcc_eh -lc -lgcc -lc |
$(LD) $(LDFLAGS) $(LIBPATH) -o tcc $(OBJECTS) -lgcc -ldll -lc.dll |
kos32-objcopy tcc -O binary |
%.o : %.c $(SOURCES) |
/programs/develop/ktcc/trunk/source/libtcc.c |
---|
777,8 → 777,13 |
/* default case: stderr */ |
if (s1->ppfp) /* print a newline during tcc -E */ |
fprintf(s1->ppfp, "\n"), fflush(s1->ppfp); |
#ifndef TCC_TARGET_MEOS |
fprintf(stderr, "%s\n", buf); |
fflush(stderr); /* print error/warning now (win32) */ |
#else |
fprintf(stdout, "%s\n", buf); |
fflush(stdout); /* print error/warning now (win32) */ |
#endif |
} else { |
s1->error_func(s1->error_opaque, buf); |
} |
2483,7 → 2488,7 |
tt = 0.001; |
if (total_bytes < 1) |
total_bytes = 1; |
fprintf(stderr, "%d idents, %d lines, %d bytes, %0.3f s, %d lines/s, %0.1f MB/s\n", |
fprintf(stdout, "%d idents, %d lines, %d bytes, %0.3f s, %d lines/s, %0.1f MB/s\n", |
tok_ident - TOK_IDENT, total_lines, total_bytes, |
tt, (int)(total_lines / tt), |
total_bytes / tt / 1000000.0); |