Previous 199869 Revisions Next

r34748 Friday 30th January, 2015 at 20:10:42 UTC by Couriersud
Merge branch 'master' of https://github.com/mamedev/mame.git
[3rdparty/sqlite3]sqlite3.h
[src/emu/cpu]drcbex64.h drcbex86.h uml.h
[src/emu/cpu/amis2000]amis2000.c amis2000.h amis2000op.inc
[src/emu/ui]inputmap.c mainmenu.c
[src/lib/util]bitmap.c
[src/osd/windows]winprefix.h

trunk/3rdparty/sqlite3/sqlite3.h
r243259r243260
256256typedef sqlite_int64 sqlite3_int64;
257257typedef sqlite_uint64 sqlite3_uint64;
258258
259/* pointer-sized values */
260#ifdef PTR64
261typedef sqlite3_uint64                      FPTR;
262#else
263typedef unsigned int                        FPTR;
264#endif
265
259266/*
260267** If compiling for a processor that lacks floating point support,
261268** substitute integer for floating-point.
r243259r243260
43824389*/
43834390typedef void (*sqlite3_destructor_type)(void*);
43844391#define SQLITE_STATIC      ((sqlite3_destructor_type)0)
4385#define SQLITE_TRANSIENT   ((sqlite3_destructor_type)-1)
4392#define SQLITE_TRANSIENT   ((sqlite3_destructor_type)(FPTR)-1)
43864393
43874394/*
43884395** CAPI3REF: Setting The Result Of An SQL Function
trunk/src/emu/cpu/amis2000/amis2000.c
r243259r243260
134134   // zerofill
135135   memset(m_callstack, 0, sizeof(m_callstack));
136136   m_pc = 0;
137   m_ppr = 0;
138   m_pbr = 0;
139   m_pp_index = 0;
137140   m_skip = false;
138141   m_op = 0;
139142   m_f = 0;
r243259r243260
148151   // register for savestates
149152   save_item(NAME(m_callstack));
150153   save_item(NAME(m_pc));
154   save_item(NAME(m_ppr));
155   save_item(NAME(m_pbr));
156   save_item(NAME(m_pp_index));
151157   save_item(NAME(m_skip));
152158   save_item(NAME(m_op));
153159   save_item(NAME(m_f));
r243259r243260
182188void amis2000_device::device_reset()
183189{
184190   m_pc = 0;
191   m_skip = false;
192   m_op = 0;
185193}
186194
187195
r243259r243260
197205   while (m_icount > 0)
198206   {
199207      m_icount--;
208     
209      // increase PP prefix count
210      if ((m_op & 0xf0) == 0x60)
211      {
212         if (m_pp_index < 2)
213            m_pp_index++;
214      }
215      else
216         m_pp_index = 0;
200217
201218      debugger_instruction_hook(this, m_pc);
202219      m_op = m_program->read_byte(m_pc);
trunk/src/emu/cpu/amis2000/amis2000.h
r243259r243260
7272   
7373   UINT8 m_bu_bits;
7474   UINT16 m_bu_mask;
75   UINT8 m_callstack_bits;
75   UINT8 m_callstack_bits;     // number of program counter bits held in callstack
7676   UINT16 m_callstack_mask;
7777   UINT8 m_callstack_depth;    // callstack levels: 3 on 2000/2150, 5 on 2200/2400
7878   UINT16 m_callstack[5];      // max 5
7979
80   UINT16 m_pc;
81   bool m_skip;
80   UINT16 m_pc;                // 13-bit program counter
81   UINT8 m_ppr;                // prepared page register (PP 1)
82   UINT8 m_pbr;                // prepared bank register (PP 2)
83   UINT8 m_pp_index;           // number of handled PP prefixes
84   bool m_skip;                // skip next opcode, including PP prefixes
8285   UINT8 m_op;
8386   UINT8 m_f;                  // generic flags: 2 on 2000/2150, 6 on 2200/2400
8487   UINT8 m_carry;              // carry flag
r243259r243260
99102   
100103   UINT8 ram_r();
101104   void ram_w(UINT8 data);
105   void pop_callstack();
106   void push_callstack();
102107   void op_illegal();
103108   
104109   void op_lai();
trunk/src/emu/cpu/amis2000/amis2000op.inc
r243259r243260
1414   m_data->write_byte(address, data & 0xf);
1515}
1616
17void amis2000_device::pop_callstack()
18{
19   m_pc = (m_pc & ~m_callstack_mask) | (m_callstack[0] & m_callstack_mask);
20   for (int i = 0; i < m_callstack_depth-1; i++)
21   {
22      m_callstack[i] = m_callstack[i+1];
23      m_callstack[i+1] = 0;
24   }
25}
26
27void amis2000_device::push_callstack()
28{
29   for (int i = m_callstack_depth-1; i >= 1; i--)
30   {
31      m_callstack[i] = m_callstack[i-1];
32   }
33   m_callstack[0] = m_pc & m_callstack_mask;
34}
35
1736void amis2000_device::op_illegal()
1837{
1938   logerror("%s unknown opcode $%02X at $%04X\n", tag(), m_op, m_pc);
r243259r243260
207226void amis2000_device::op_pp()
208227{
209228   // PP _X: prepare page/bank with _X
210   op_illegal();
229   UINT8 param = ~m_op & 0x0f;
230   if (m_pp_index == 0)
231      m_ppr = param;
232   else
233      m_pbr = param & 7;
211234}
212235
213236void amis2000_device::op_jmp()
214237{
215238   // JMP X: jump to X(+PP)
216   op_illegal();
239   UINT16 mask = 0x3f;
240   UINT16 param = m_op & mask;
241   if (m_pp_index > 0)
242   {
243      param |= m_ppr << 6;
244      mask |= 0x3c0;
245   }
246   if (m_pp_index > 1)
247   {
248      param |= m_pbr << 10;
249      mask |= 0x1c00;
250   }
251   m_pc = (m_pc & ~mask) | param;
217252}
218253
219254void amis2000_device::op_jms()
220255{
221256   // JMS X: call to X(+PP)
222   op_illegal();
257   m_icount--;
258   push_callstack();
259   if (m_pp_index == 0)
260   {
261      // subroutines default location is page 15
262      m_ppr = 0xf;
263      m_pp_index++;
264   }
265   op_jmp();
223266}
224267
225268void amis2000_device::op_rt()
226269{
227270   // RT: return from subroutine
228   op_illegal();
271   pop_callstack();
229272}
230273
231274void amis2000_device::op_rts()
232275{
233276   // RTS: return from subroutine and skip next
234   op_illegal();
277   op_rt();
278   m_skip = true;
235279}
236280
237281void amis2000_device::op_nop()
trunk/src/emu/cpu/drcbex64.h
r243259r243260
7373      static inline be_parameter make_ireg(int regnum) { assert(regnum >= 0 && regnum < x64emit::REG_MAX); return be_parameter(PTYPE_INT_REGISTER, regnum); }
7474      static inline be_parameter make_freg(int regnum) { assert(regnum >= 0 && regnum < x64emit::REG_MAX); return be_parameter(PTYPE_FLOAT_REGISTER, regnum); }
7575      static inline be_parameter make_vreg(int regnum) { assert(regnum >= 0 && regnum < x64emit::REG_MAX); return be_parameter(PTYPE_VECTOR_REGISTER, regnum); }
76      static inline be_parameter make_memory(void *base) { return be_parameter(PTYPE_MEMORY, reinterpret_cast<be_parameter_value>(base)); }
77      static inline be_parameter make_memory(const void *base) { return be_parameter(PTYPE_MEMORY, reinterpret_cast<be_parameter_value>(const_cast<void *>(base))); }
76      static inline be_parameter make_memory(void *base) { return be_parameter(PTYPE_MEMORY, static_cast<be_parameter_value>(reinterpret_cast<FPTR>(base))); }
77      static inline be_parameter make_memory(const void *base) { return be_parameter(PTYPE_MEMORY, static_cast<be_parameter_value>(reinterpret_cast<FPTR>(const_cast<void *>(base)))); }
7878
7979      // operators
8080      bool operator==(const be_parameter &rhs) const { return (m_type == rhs.m_type && m_value == rhs.m_value); }
trunk/src/emu/cpu/drcbex86.h
r243259r243260
7373      static inline be_parameter make_ireg(int regnum) { assert(regnum >= 0 && regnum < x86emit::REG_MAX); return be_parameter(PTYPE_INT_REGISTER, regnum); }
7474      static inline be_parameter make_freg(int regnum) { assert(regnum >= 0 && regnum < x86emit::REG_MAX); return be_parameter(PTYPE_FLOAT_REGISTER, regnum); }
7575      static inline be_parameter make_vreg(int regnum) { assert(regnum >= 0 && regnum < x86emit::REG_MAX); return be_parameter(PTYPE_VECTOR_REGISTER, regnum); }
76      static inline be_parameter make_memory(void *base) { return be_parameter(PTYPE_MEMORY, reinterpret_cast<be_parameter_value>(base)); }
77      static inline be_parameter make_memory(const void *base) { return be_parameter(PTYPE_MEMORY, reinterpret_cast<be_parameter_value>(const_cast<void *>(base))); }
76      static inline be_parameter make_memory(void *base) { return be_parameter(PTYPE_MEMORY, static_cast<be_parameter_value>(reinterpret_cast<FPTR>(base))); }
77      static inline be_parameter make_memory(const void *base) { return be_parameter(PTYPE_MEMORY, static_cast<be_parameter_value>(reinterpret_cast<FPTR>(const_cast<void *>(base)))); }
7878
7979      // operators
8080      bool operator==(const be_parameter &rhs) const { return (m_type == rhs.m_type && m_value == rhs.m_value); }
trunk/src/emu/cpu/uml.h
r243259r243260
305305      parameter(UINT64 val) : m_type(PTYPE_IMMEDIATE), m_value(val) { }
306306      parameter(operand_size size, memory_scale scale) : m_type(PTYPE_SIZE_SCALE), m_value((scale << 4) | size) { assert(size >= SIZE_BYTE && size <= SIZE_DQWORD); assert(scale >= SCALE_x1 && scale <= SCALE_x8); }
307307      parameter(operand_size size, memory_space space) : m_type(PTYPE_SIZE_SPACE), m_value((space << 4) | size) { assert(size >= SIZE_BYTE && size <= SIZE_DQWORD); assert(space >= SPACE_PROGRAM && space <= SPACE_IO); }
308      parameter(code_handle &handle) : m_type(PTYPE_CODE_HANDLE), m_value(reinterpret_cast<parameter_value>(&handle)) { }
308      parameter(code_handle &handle) : m_type(PTYPE_CODE_HANDLE), m_value(static_cast<parameter_value>(reinterpret_cast<FPTR>(&handle))) { }
309309      parameter(code_label &label) : m_type(PTYPE_CODE_LABEL), m_value(label) { }
310310
311311      // creators for types that don't safely default
r243259r243260
313313      static inline parameter make_freg(int regnum) { assert(regnum >= REG_F0 && regnum < REG_F_END); return parameter(PTYPE_FLOAT_REGISTER, regnum); }
314314      static inline parameter make_vreg(int regnum) { assert(regnum >= REG_V0 && regnum < REG_V_END); return parameter(PTYPE_VECTOR_REGISTER, regnum); }
315315      static inline parameter make_mapvar(int mvnum) { assert(mvnum >= MAPVAR_M0 && mvnum < MAPVAR_END); return parameter(PTYPE_MAPVAR, mvnum); }
316      static inline parameter make_memory(void *base) { return parameter(PTYPE_MEMORY, reinterpret_cast<parameter_value>(base)); }
317      static inline parameter make_memory(const void *base) { return parameter(PTYPE_MEMORY, reinterpret_cast<parameter_value>(const_cast<void *>(base))); }
316      static inline parameter make_memory(void *base) { return parameter(PTYPE_MEMORY, static_cast<parameter_value>(reinterpret_cast<FPTR>(base))); }
317      static inline parameter make_memory(const void *base) { return parameter(PTYPE_MEMORY, static_cast<parameter_value>(reinterpret_cast<FPTR>(const_cast<void *>(base)))); }
318318      static inline parameter make_size(operand_size size) { assert(size >= SIZE_BYTE && size <= SIZE_DQWORD); return parameter(PTYPE_SIZE, size); }
319      static inline parameter make_string(const char *string) { return parameter(PTYPE_STRING, reinterpret_cast<parameter_value>(const_cast<char *>(string))); }
320      static inline parameter make_cfunc(c_function func) { return parameter(PTYPE_C_FUNCTION, reinterpret_cast<parameter_value>(func)); }
319      static inline parameter make_string(const char *string) { return parameter(PTYPE_STRING, static_cast<parameter_value>(reinterpret_cast<FPTR>(const_cast<char *>(string)))); }
320      static inline parameter make_cfunc(c_function func) { return parameter(PTYPE_C_FUNCTION, static_cast<parameter_value>(reinterpret_cast<FPTR>(func))); }
321321      static inline parameter make_rounding(float_rounding_mode mode) { assert(mode >= ROUND_TRUNC && mode <= ROUND_DEFAULT); return parameter(PTYPE_ROUNDING, mode); }
322322
323323      // operators
trunk/src/emu/ui/inputmap.c
r243259r243260
7373   /* process the menu */
7474   const ui_menu_event *menu_event = process(0);
7575   if (menu_event != NULL && menu_event->iptkey == IPT_UI_SELECT)
76      ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_input_general(machine(), container, int((long long)(menu_event->itemref)-1))));
76      ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_input_general(machine(), container, int((long long)((FPTR)menu_event->itemref)-1))));
7777}
7878
7979
trunk/src/emu/ui/mainmenu.c
r243259r243260
151151   /* process the menu */
152152   const ui_menu_event *menu_event = process(0);
153153   if (menu_event != NULL && menu_event->iptkey == IPT_UI_SELECT) {
154      switch((long long)(menu_event->itemref)) {
154      switch((long long)((FPTR) menu_event->itemref)) {
155155      case INPUT_GROUPS:
156156         ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_input_groups(machine(), container)));
157157         break;
trunk/src/lib/util/bitmap.c
r243259r243260
4949inline void bitmap_t::compute_base(int xslop, int yslop)
5050{
5151   m_base = m_alloc + (m_rowpixels * yslop + xslop) * (m_bpp / 8);
52   UINT64 aligned_base = ((reinterpret_cast<UINT64>(m_base) + (BITMAP_OVERALL_ALIGN - 1)) / BITMAP_OVERALL_ALIGN) * BITMAP_OVERALL_ALIGN;
52   UINT64 aligned_base = ((static_cast<UINT64>(reinterpret_cast<FPTR>(m_base)) + (BITMAP_OVERALL_ALIGN - 1)) / BITMAP_OVERALL_ALIGN) * BITMAP_OVERALL_ALIGN;
5353   m_base = reinterpret_cast<void *>(aligned_base);
5454}
5555
trunk/src/osd/windows/winprefix.h
r243259r243260
3131#pragma warning (disable: 5025 5026 5027)
3232#define _CRT_STDIO_LEGACY_WIDE_SPECIFIERS
3333#endif
34#define strtoll _strtoi64
3435#endif
3536
3637#ifdef __GNUC__


Previous 199869 Revisions Next


© 1997-2024 The MAME Team