~ubuntu-branches/ubuntu/lucid/sdlmame/lucid

« back to all changes in this revision

Viewing changes to src/osd/sdl/osd_cpu.h

  • Committer: Bazaar Package Importer
  • Author(s): Cesare Falco
  • Date: 2009-11-03 17:10:15 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20091103171015-6hop4ory5lxnumpn
Tags: 0.135-0ubuntu1
* New upstream release - Closes (LP: #403212)
* debian/watch: unstable releases are no longer detected
* mame.ini: added the cheat subdirectories to cheatpath so zipped
  cheatfiles will be searched too
* renamed crsshair subdirectory to crosshair to reflect upstream change
* mame.ini: renamed references to crosshair subdirectory (see above)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//============================================================
2
 
//
3
 
//  osd_cpu.h - SDL CPU-specific data types
4
 
//
5
 
//  Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team.
6
 
//  Visit http://mamedev.org for licensing and usage restrictions.
7
 
//
8
 
//============================================================
9
 
 
10
 
/*******************************************************************************
11
 
*                                                                              *
12
 
*   Define size independent data types and operations.                         *
13
 
*                                                                              *
14
 
*   The following types must be supported by all platforms:                    *
15
 
*                                                                              *
16
 
*   UINT8  - Unsigned 8-bit Integer     INT8  - Signed 8-bit integer           *
17
 
*   UINT16 - Unsigned 16-bit Integer    INT16 - Signed 16-bit integer          *
18
 
*   UINT32 - Unsigned 32-bit Integer    INT32 - Signed 32-bit integer          *
19
 
*   UINT64 - Unsigned 64-bit Integer    INT64 - Signed 64-bit integer          *
20
 
*                                                                              *
21
 
*                                                                              *
22
 
*   The macro names for the artithmatic operations are composed as follows:    *
23
 
*                                                                              *
24
 
*   XXX_R_A_B, where XXX - 3 letter operation code (ADD, SUB, etc.)            *
25
 
*                    R   - The type of the result                              *
26
 
*                    A   - The type of operand 1                               *
27
 
*                    B   - The type of operand 2 (if binary operation)         *
28
 
*                                                                              *
29
 
*                    Each type is one of: U8,8,U16,16,U32,32,U64,64            *
30
 
*                                                                              *
31
 
*******************************************************************************/
32
 
#pragma once
33
 
 
34
 
#ifndef OSD_CPU_H
35
 
#define OSD_CPU_H
36
 
 
37
 
/* Combine two 32-bit integers into a 64-bit integer */
38
 
#define COMBINE_64_32_32(A,B)     ((((UINT64)(A))<<32) | (UINT32)(B))
39
 
#define COMBINE_U64_U32_U32(A,B)  COMBINE_64_32_32(A,B)
40
 
 
41
 
/* Return upper 32 bits of a 64-bit integer */
42
 
#define HI32_32_64(A)             (((UINT64)(A)) >> 32)
43
 
#define HI32_U32_U64(A)           HI32_32_64(A)
44
 
 
45
 
/* Return lower 32 bits of a 64-bit integer */
46
 
#define LO32_32_64(A)             ((A) & 0xffffffff)
47
 
#define LO32_U32_U64(A)           LO32_32_64(A)
48
 
 
49
 
#define DIV_64_64_32(A,B)         ((A)/(B))
50
 
#define DIV_U64_U64_U32(A,B)  ((A)/(UINT32)(B))
51
 
 
52
 
#define MOD_32_64_32(A,B)         ((A)%(B))
53
 
#define MOD_U32_U64_U32(A,B)  ((A)%(UINT32)(B))
54
 
 
55
 
#define MUL_64_32_32(A,B)         ((A)*(INT64)(B))
56
 
#define MUL_U64_U32_U32(A,B)  ((A)*(UINT64)(UINT32)(B))
57
 
 
58
 
#endif  /* defined OSD_CPU_H */