mirror of
https://github.com/cc65/cc65.git
synced 2024-12-26 08:32:00 +00:00
Explicitly clear reserved storage with $00.
git-svn-id: svn://svn.cc65.org/cc65/trunk@50 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
c8193d6364
commit
2e532d9ccd
@ -1,8 +1,35 @@
|
||||
/*
|
||||
* codegen.c
|
||||
*
|
||||
* Ullrich von Bassewitz, 08.06.1998
|
||||
*/
|
||||
/*****************************************************************************/
|
||||
/* */
|
||||
/* codegen.c */
|
||||
/* */
|
||||
/* 6502 code generator */
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* (C) 1998 Ullrich von Bassewitz */
|
||||
/* Wacholderweg 14 */
|
||||
/* D-70597 Stuttgart */
|
||||
/* EMail: uz@musoftware.de */
|
||||
/* */
|
||||
/* */
|
||||
/* This software is provided 'as-is', without any expressed or implied */
|
||||
/* warranty. In no event will the authors be held liable for any damages */
|
||||
/* arising from the use of this software. */
|
||||
/* */
|
||||
/* Permission is granted to anyone to use this software for any purpose, */
|
||||
/* including commercial applications, and to alter it and redistribute it */
|
||||
/* freely, subject to the following restrictions: */
|
||||
/* */
|
||||
/* 1. The origin of this software must not be misrepresented; you must not */
|
||||
/* claim that you wrote the original software. If you use this software */
|
||||
/* in a product, an acknowledgment in the product documentation would be */
|
||||
/* appreciated but is not required. */
|
||||
/* 2. Altered source versions must be plainly marked as such, and must not */
|
||||
/* be misrepresented as being the original software. */
|
||||
/* 3. This notice may not be removed or altered from any source */
|
||||
/* distribution. */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
|
||||
|
||||
@ -50,6 +77,7 @@ static char* SegmentHints [4] = {
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Helpers */
|
||||
/*****************************************************************************/
|
||||
@ -892,7 +920,7 @@ void g_getind (unsigned flags, unsigned offs)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void g_leasp (int offs)
|
||||
/* Fetch the address of the specified symbol into the primary register */
|
||||
{
|
||||
@ -905,8 +933,8 @@ void g_leasp (int offs)
|
||||
AddCodeLine ("\tldx\tsp+1");
|
||||
} else {
|
||||
if (FavourSize) {
|
||||
ldyconst (offs); /* Load Y with offset value */
|
||||
AddCodeLine ("\tjsr\tleaysp"); /* Load effective address */
|
||||
ldaconst (offs); /* Load A with offset value */
|
||||
AddCodeLine ("\tjsr\tleaasp"); /* Load effective address */
|
||||
} else {
|
||||
ldaconst (offs);
|
||||
AddCodeLine ("\tclc");
|
||||
@ -3578,9 +3606,9 @@ void g_ge (unsigned flags, unsigned long val)
|
||||
|
||||
|
||||
void g_res (unsigned n)
|
||||
/* reserve static storage, n bytes */
|
||||
/* Reserve static storage, n bytes */
|
||||
{
|
||||
AddCodeLine ("\t.res\t%u", n);
|
||||
AddCodeLine ("\t.res\t%u,$00", n);
|
||||
}
|
||||
|
||||
|
||||
@ -3625,7 +3653,7 @@ void g_defdata (unsigned flags, unsigned long val, unsigned offs)
|
||||
|
||||
|
||||
void g_defbytes (const unsigned char* Bytes, unsigned Count)
|
||||
/* output a row of bytes as a constant */
|
||||
/* Output a row of bytes as a constant */
|
||||
{
|
||||
unsigned Chunk;
|
||||
char Buf [128];
|
||||
@ -3660,7 +3688,7 @@ void g_defbytes (const unsigned char* Bytes, unsigned Count)
|
||||
void g_zerobytes (unsigned n)
|
||||
/* Output n bytes of data initialized with zero */
|
||||
{
|
||||
AddCodeLine ("\t.res\t%u", n);
|
||||
AddCodeLine ("\t.res\t%u,$00", n);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user