Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Panda
TinyCC
Commits
0d6f8021
Commit
0d6f8021
authored
Apr 14, 2003
by
bellard
Browse files
update
parent
c5ab452d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Changelog
View file @
0d6f8021
version 0.9.18:
- header fix (time.h)
- fixed inline asm without operand case
- fixed 'default:' or 'case x:' with '}' after (incorrect C construct accepted
by gcc)
- added 'A' inline asm constraint.
version 0.9.17:
- PLT generation fix
...
...
TODO
View file @
0d6f8021
...
...
@@ -3,8 +3,6 @@ TODO list:
- '-b' bug.
- atexit (Nigel Horne)
- see -lxxx bug (Michael Charity).
- empty 'default:' in switch.
- fix asm without input/output (no % preprocessing)
- handle inline functions as macros.
- see transparent union pb in /urs/include/sys/socket.h
- precise behaviour of typeof with arrays ? (__put_user macro)
...
...
@@ -14,7 +12,6 @@ TODO list:
variable initialization (',' is considered incorrectly as separator
in preparser) : change func argument code generator ?
- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
- add A x86 asm constraint (linux asm-i386/div64.h)
- transform functions to function pointers in function parameters (net/ipv4/ip_output.c)
- fix function pointer type display
- fix bound exit on RedHat 7.3
...
...
VERSION
View file @
0d6f8021
0.9.17
\ No newline at end of file
0.9.18
\ No newline at end of file
tcctest.c
View file @
0d6f8021
...
...
@@ -1841,6 +1841,20 @@ static __inline__ __const__ unsigned int swab32(unsigned int x)
return
x
;
}
static
__inline__
unsigned
long
long
mul64
(
unsigned
int
a
,
unsigned
int
b
)
{
unsigned
long
long
res
;
__asm__
(
"mull %2"
:
"=A"
(
res
)
:
"a"
(
a
),
"r"
(
b
));
return
res
;
}
static
__inline__
unsigned
long
long
inc64
(
unsigned
long
long
a
)
{
unsigned
long
long
res
;
__asm__
(
"addl $1, %%eax ; adcl $0, %%edx"
:
"=A"
(
res
)
:
"A"
(
a
));
return
res
;
}
unsigned
int
set
;
void
asm_test
(
void
)
...
...
@@ -1849,10 +1863,17 @@ void asm_test(void)
unsigned
int
val
;
printf
(
"inline asm:
\n
"
);
/* test the no operand case */
asm
volatile
(
"xorl %eax, %eax"
);
memcpy1
(
buf
,
"hello"
,
6
);
strncat1
(
buf
,
" worldXXXXX"
,
3
);
printf
(
"%s
\n
"
,
buf
);
/* 'A' constraint test */
printf
(
"mul64=0x%Lx
\n
"
,
mul64
(
0x12345678
,
0xabcd1234
));
printf
(
"inc64=0x%Lx
\n
"
,
inc64
(
0x12345678ffffffff
));
set
=
0xff
;
sigdelset1
(
&
set
,
2
);
sigaddset1
(
&
set
,
16
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment