--- /dev/null
+2001-08-29 Michael Hope <michaelh@juju.net.nz>
+
+ * link/z80/aslink.h: Fixed long file name support. Is now based off PATH_MAX instead of a constant.
+
+ * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
+
+
/*
* Extensions: P. Felber
*/
+#include <linux/limits.h>
#define VERSION "V01.75"
#endif /* SDK */
/* #define NCPS 32 */ /* characters per symbol */
#define NDATA 16 /* actual data */
-#define NINPUT 128 /* Input buffer size */
+#define NINPUT PATH_MAX /* Input buffer size */
#define NHASH 64 /* Buckets in hash table */
#define HMASK 077 /* Hash mask */
#define NLPP 60 /* Lines per page */
#define NTXT 16 /* T values */
-/** PENDING: Taking this to 256 causes a segfault. */
-#define FILSPC 100 /* File spec length */
+#define FILSPC PATH_MAX /* File spec length */
/*
* The "R_" relocation constants define values used in
*/
enum {
- DISABLE_DEBUG = 1
+ DISABLE_DEBUG = 0
};
static char *_z80_return[] =
if (genPlusIncr (ic) == TRUE)
goto release;
- emitDebug ("; genPlusIncr failed");
+ emitDebug ("; Can't optimise plus by inc, falling back to the normal way");
size = getDataSize (IC_RESULT (ic));
if (isPair (AOP (IC_RESULT (ic))))
{
char *left, *right;
-
left = aopGetLitWordLong (AOP (IC_LEFT (ic)), 0, FALSE);
right = aopGetLitWordLong (AOP (IC_RIGHT (ic)), 0, FALSE);
- if (left && right)
+
+ if (AOP_TYPE(IC_LEFT(ic)) == AOP_LIT && AOP_TYPE(IC_RIGHT(ic)) == AOP_LIT &&
+ left && right)
{
/* It's a pair */
/* PENDING: fix */
}
else if (size == 4)
{
- emitDebug ("; WARNING: This add is probably broken.\n");
+ wassertl (0, "Hit bad case for add");
}
}
}