Diff for /qemu/dyngen-exec.h between versions 1.1.1.6 and 1.1.1.7

version 1.1.1.6, 2018/04/24 16:50:48 version 1.1.1.7, 2018/04/24 17:20:56
Line 14 Line 14
  * Lesser General Public License for more details.   * Lesser General Public License for more details.
  *   *
  * You should have received a copy of the GNU Lesser General Public   * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software   * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA  
  */   */
 #if !defined(__DYNGEN_EXEC_H__)  #if !defined(__DYNGEN_EXEC_H__)
 #define __DYNGEN_EXEC_H__  #define __DYNGEN_EXEC_H__
Line 31 Line 30
    point because host CPU registers are used as global variables. Some     point because host CPU registers are used as global variables. Some
    host headers do not allow that. */     host headers do not allow that. */
 #include <stddef.h>  #include <stddef.h>
   #include <stdint.h>
   
 #ifdef __OpenBSD__  #ifdef __OpenBSD__
 #include <sys/types.h>  #include <sys/types.h>
 #else  
 typedef unsigned char uint8_t;  
 typedef unsigned short uint16_t;  
 typedef unsigned int uint32_t;  
 // Linux/Sparc64 defines uint64_t  
 #if !(defined (__sparc_v9__) && defined(__linux__)) && !(defined(__APPLE__) && defined(__x86_64__))  
 /* XXX may be done for all 64 bits targets ? */  
 #if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || defined(__alpha__) || defined(_ARCH_PPC64)  
 typedef unsigned long uint64_t;  
 #else  
 typedef unsigned long long uint64_t;  
 #endif  
 #endif  
   
 /* if Solaris/__sun__, don't typedef int8_t, as it will be typedef'd  
    prior to this and will cause an error in compliation, conflicting  
    with /usr/include/sys/int_types.h, line 75 */  
 #ifndef __sun__  
 typedef signed char int8_t;  
 #endif  
 typedef signed short int16_t;  
 typedef signed int int32_t;  
 // Linux/Sparc64 defines int64_t  
 #if !(defined (__sparc_v9__) && defined(__linux__)) && !(defined(__APPLE__) && defined(__x86_64__))  
 #if defined (__x86_64__) || defined(__ia64) || defined(__s390x__) || defined(__alpha__) || defined(_ARCH_PPC64)  
 typedef signed long int64_t;  
 #else  
 typedef signed long long int64_t;  
 #endif  
 #endif  
 #endif  #endif
   
 /* XXX: This may be wrong for 64-bit ILP32 hosts.  */  /* XXX: This may be wrong for 64-bit ILP32 hosts.  */
 typedef void * host_reg_t;  typedef void * host_reg_t;
   
 #define INT8_MIN                (-128)  #ifdef HOST_BSD
 #define INT16_MIN               (-32767-1)  
 #define INT32_MIN               (-2147483647-1)  
 #define INT64_MIN               (-(int64_t)(9223372036854775807)-1)  
 #define INT8_MAX                (127)  
 #define INT16_MAX               (32767)  
 #define INT32_MAX               (2147483647)  
 #define INT64_MAX               ((int64_t)(9223372036854775807))  
 #define UINT8_MAX               (255)  
 #define UINT16_MAX              (65535)  
 #define UINT32_MAX              (4294967295U)  
 #define UINT64_MAX              ((uint64_t)(18446744073709551615))  
   
 #ifdef _BSD  
 typedef struct __sFILE FILE;  typedef struct __sFILE FILE;
 #else  #else
 typedef struct FILE FILE;  typedef struct FILE FILE;
Line 97  extern int printf(const char *, ...); Line 54  extern int printf(const char *, ...);
 #define AREG0 "ebp"  #define AREG0 "ebp"
 #define AREG1 "ebx"  #define AREG1 "ebx"
 #define AREG2 "esi"  #define AREG2 "esi"
 #define AREG3 "edi"  
 #elif defined(__x86_64__)  #elif defined(__x86_64__)
 #define AREG0 "r14"  #define AREG0 "r14"
 #define AREG1 "r15"  #define AREG1 "r15"
 #define AREG2 "r12"  #define AREG2 "r12"
 #define AREG3 "r13"  
 //#define AREG4 "rbp"  
 //#define AREG5 "rbx"  
 #elif defined(_ARCH_PPC)  #elif defined(_ARCH_PPC)
 #define AREG0 "r27"  #define AREG0 "r27"
 #define AREG1 "r24"  #define AREG1 "r24"
 #define AREG2 "r25"  #define AREG2 "r25"
 #define AREG3 "r26"  
 /* XXX: suppress this hack */  
 #if defined(CONFIG_USER_ONLY)  
 #define AREG4 "r16"  
 #define AREG5 "r17"  
 #define AREG6 "r18"  
 #define AREG7 "r19"  
 #define AREG8 "r20"  
 #define AREG9 "r21"  
 #define AREG10 "r22"  
 #define AREG11 "r23"  
 #endif  
 #elif defined(__arm__)  #elif defined(__arm__)
 #define AREG0 "r7"  #define AREG0 "r7"
 #define AREG1 "r4"  #define AREG1 "r4"
 #define AREG2 "r5"  #define AREG2 "r5"
 #define AREG3 "r6"  
 #elif defined(__hppa__)  #elif defined(__hppa__)
 #define AREG0 "r17"  #define AREG0 "r17"
 #define AREG1 "r14"  #define AREG1 "r14"
 #define AREG2 "r15"  #define AREG2 "r15"
 #define AREG3 "r16"  
 #elif defined(__mips__)  #elif defined(__mips__)
 #define AREG0 "fp"  #define AREG0 "fp"
 #define AREG1 "s0"  #define AREG1 "s0"
 #define AREG2 "s1"  #define AREG2 "s1"
 #define AREG3 "s2"  
 #define AREG4 "s3"  
 #define AREG5 "s4"  
 #define AREG6 "s5"  
 #define AREG7 "s6"  
 #define AREG8 "s7"  
 #elif defined(__sparc__)  #elif defined(__sparc__)
 #ifdef HOST_SOLARIS  #ifdef HOST_SOLARIS
 #define AREG0 "g2"  #define AREG0 "g2"
 #define AREG1 "g3"  #define AREG1 "g3"
 #define AREG2 "g4"  #define AREG2 "g4"
 #define AREG3 "g5"  
 #define AREG4 "g6"  
 #else  #else
 #ifdef __sparc_v9__  #ifdef __sparc_v9__
 #define AREG0 "g5"  #define AREG0 "g5"
Line 157  extern int printf(const char *, ...); Line 88  extern int printf(const char *, ...);
 #define AREG0 "g6"  #define AREG0 "g6"
 #define AREG1 "g1"  #define AREG1 "g1"
 #define AREG2 "g2"  #define AREG2 "g2"
 #define AREG3 "g3"  
 #define AREG4 "l0"  
 #define AREG5 "l1"  
 #define AREG6 "l2"  
 #define AREG7 "l3"  
 #define AREG8 "l4"  
 #define AREG9 "l5"  
 #define AREG10 "l6"  
 #define AREG11 "l7"  
 #endif  #endif
 #endif  #endif
 #elif defined(__s390__)  #elif defined(__s390__)
 #define AREG0 "r10"  #define AREG0 "r10"
 #define AREG1 "r7"  #define AREG1 "r7"
 #define AREG2 "r8"  #define AREG2 "r8"
 #define AREG3 "r9"  
 #elif defined(__alpha__)  #elif defined(__alpha__)
 /* Note $15 is the frame pointer, so anything in op-i386.c that would  /* Note $15 is the frame pointer, so anything in op-i386.c that would
    require a frame pointer, like alloca, would probably loose.  */     require a frame pointer, like alloca, would probably loose.  */
 #define AREG0 "$15"  #define AREG0 "$15"
 #define AREG1 "$9"  #define AREG1 "$9"
 #define AREG2 "$10"  #define AREG2 "$10"
 #define AREG3 "$11"  
 #define AREG4 "$12"  
 #define AREG5 "$13"  
 #define AREG6 "$14"  
 #elif defined(__mc68000)  #elif defined(__mc68000)
 #define AREG0 "%a5"  #define AREG0 "%a5"
 #define AREG1 "%a4"  #define AREG1 "%a4"
 #define AREG2 "%d7"  #define AREG2 "%d7"
 #define AREG3 "%d6"  
 #define AREG4 "%d5"  
 #elif defined(__ia64__)  #elif defined(__ia64__)
 #define AREG0 "r7"  #define AREG0 "r7"
 #define AREG1 "r4"  #define AREG1 "r4"
 #define AREG2 "r5"  #define AREG2 "r5"
 #define AREG3 "r6"  
 #else  #else
 #error unsupported CPU  #error unsupported CPU
 #endif  #endif

Removed from v.1.1.1.6  
changed lines
  Added in v.1.1.1.7


unix.superglobalmegacorp.com