Fixed a small error.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3969 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -110,9 +110,9 @@ if you don't help. Look at this example:
|
|||||||
</verb></tscreen>
|
</verb></tscreen>
|
||||||
|
|
||||||
The expression is parsed from left to right, that means, the compiler sees 'i',
|
The expression is parsed from left to right, that means, the compiler sees 'i',
|
||||||
and puts it contents into the secondary register. Next is OFFS, which is
|
and puts it contents into the secondary register. Next is OFFS, which is
|
||||||
constant. The compiler emits code to add a constant to the secondary register.
|
constant. The compiler emits code to add a constant to the secondary register.
|
||||||
Same thing again for the constant 3. So the code produced contains a fetch
|
Same thing again for the constant 3. So the code produced contains a fetch
|
||||||
of 'i', two additions of constants, and a store (into 'i'). Unfortunately, the
|
of 'i', two additions of constants, and a store (into 'i'). Unfortunately, the
|
||||||
compiler does not see, that "OFFS + 3" is a constant for itself, since it does
|
compiler does not see, that "OFFS + 3" is a constant for itself, since it does
|
||||||
it's evaluation from left to right. There are some ways to help the compiler
|
it's evaluation from left to right. There are some ways to help the compiler
|
||||||
@@ -163,7 +163,7 @@ The compiler produces optimized code, if the value of a pointer is a constant.
|
|||||||
So, to access direct memory locations, use
|
So, to access direct memory locations, use
|
||||||
|
|
||||||
<tscreen><verb>
|
<tscreen><verb>
|
||||||
#define VDC_DATA 0xD601
|
#define VDC_STATUS 0xD601
|
||||||
*(char*)VDC_STATUS = 0x01;
|
*(char*)VDC_STATUS = 0x01;
|
||||||
</verb></tscreen>
|
</verb></tscreen>
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ That will be translated to
|
|||||||
|
|
||||||
<tscreen><verb>
|
<tscreen><verb>
|
||||||
lda #$01
|
lda #$01
|
||||||
sta $D600
|
sta $D601
|
||||||
</verb></tscreen>
|
</verb></tscreen>
|
||||||
|
|
||||||
The constant value detection works also for struct pointers and arrays, if the
|
The constant value detection works also for struct pointers and arrays, if the
|
||||||
|
|||||||
Reference in New Issue
Block a user