Changed Zm to 1000.
[fw/sdcc] / src / avr / gen.c
index 651dab24039a843048a1072a0fc72193942024e8..6a0e9a9e6a4f7755b525a65777cfd77039fe873e 100644 (file)
 #include "SDCCglobl.h"
 #include "newalloc.h"
 
-#ifdef HAVE_SYS_ISA_DEFS_H
-#include <sys/isa_defs.h>
-#else
-#ifdef HAVE_MACHINE_ENDIAN_H
-#include <machine/endian.h>
-#else
-#ifdef HAVE_ENDIAN_H
-#include <endian.h>
-#else
-#if !defined(__BORLANDC__) && !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__CYGWIN__)
-#warning "Cannot determine ENDIANESS of this machine assuming LITTLE_ENDIAN"
-#warning "If you running sdcc on an INTEL 80x86 Platform you are okay"
-#endif
-#endif
-#endif
-#endif
-
 #include "common.h"
 #include "SDCCpeeph.h"
 #include "ralloc.h"
@@ -4945,8 +4928,6 @@ genCast (iCode * ic)
 
                /* pointer to generic pointer */
                if (IS_GENPTR (ctype)) {
-                       char *l = zero;
-
                        if (IS_PTR (type))
                                p_type = DCL_TYPE (type);
                        else {
@@ -4962,30 +4943,22 @@ genCast (iCode * ic)
                                        aopGet (AOP (right), offset), offset);
                                offset++;
                        }
-                       /* the last byte depending on type */
-                       switch (p_type) {
-                       case IPOINTER:
-                       case POINTER:
-                               l = zero;
-                               break;
-                       case FPOINTER:
-                               l = one;
-                               break;
-                       case CPOINTER:
-                               l = "0x02";
-                               break;
-                       case PPOINTER:
-                               l = "0x03";
-                               break;
-
-                       default:
-                               /* this should never happen */
-                               werror (E_INTERNAL_ERROR, __FILE__, __LINE__,
-                                       "got unknown pointer type");
-                               exit (1);
+                   
+                   /* the last byte depending on type */
+                   {
+                       int gpVal = pointerTypeToGPByte(p_type, NULL, NULL);
+                       char gpValStr[10];
+                       
+                       if (gpVal == -1)
+                       {
+                           // pointerTypeToGPByte will have bitched.
+                           exit(1);
                        }
-                       aopPut (AOP (result), l, GPTRSIZE - 1);
-                       goto release;
+                       
+                       sprintf(gpValStr, "#0x%d", gpVal);
+                       aopPut (AOP (result), gpValStr, GPTRSIZE - 1);
+                   }               
+                   goto release;
                }
 
                /* just copy the pointers */
@@ -5130,7 +5103,7 @@ genAVRCode (iCode * lic)
        /* if debug information required */
        /*     if (options.debug && currFunc) { */
        if (currFunc) {
-               cdbSymbol (currFunc, cdbFile, FALSE, TRUE);
+               debugFile->writeFunction(currFunc);
                _G.debugLine = 1;
 /*             emitcode ("", ".type %s,@function", currFunc->name); */
                _G.debugLine = 0;