From: Ullrich von Bassewitz (uz_at_musoftware.de)
Date: 2003-01-27 20:19:35
Hi!
On Mon, Jan 20, 2003 at 10:06:53AM +0100, Spiro Trikaliotis wrote:
> func1(x); // actual no need to save and restore
> func2(x); // accu and x (reuse)
>
> wouldn't it be possible to make it as follows, if x were declared as
> const unsigned char x = 10;
>
> this could be made to
>
> GET(x)
> PUSH() ; pushes X on stack
> PUSH() ; pushes X again on stack
> CALL FUNC1
> CALL FUNC2
While this is possible, it is currently far beyond the capabilities of cc65.
> BTW: What does the standard say about aliasing?
ISO/IEC 9899:1999 (E) says in 6.7.3 (Type qualifiers):
5 If an attempt is made to modify an object defined with a const-qualified
type through use of an lvalue with non-const-qualified type, the behavior
is undefined. If an attempt is made to refer to an object defined with a
volatile-qualified type through use of an lvalue with
non-volatile-qualified type, the behavior is undefined.
Regards
Uz
--
Ullrich von Bassewitz uz_at_musoftware.de
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-01-27 20:19:38 CET