OSDN Git Service

[General] Tracking to upstream, rev 2015-01-14.
[csp-qt/common_source_project-fm7.git] / source / src / vm / i86.cpp
index 4cd577a..ca144b4 100644 (file)
@@ -8,9 +8,9 @@
        [ i86/v30 ]\r
 */\r
 \r
-// disable warnings C4146 for microsoft visual c++ 2005\r
 #if defined(_MSC_VER) && (_MSC_VER >= 1400)\r
 #pragma warning( disable : 4146 )\r
+#pragma warning( disable : 4996 )\r
 #endif\r
 \r
 #include "i86.h"\r
@@ -33,7 +33,7 @@ typedef enum { ES, CS, SS, DS } SREGS;
 typedef enum { AX, CX, DX, BX, SP, BP, SI, DI } WREGS;\r
 \r
 typedef enum {\r
-#ifdef _BIG_ENDIAN\r
+#ifdef __BIG_ENDIAN__\r
         AH,  AL,  CH,  CL,  DH,  DL,  BH,  BL,\r
        SPH, SPL, BPH, BPL, SIH, SIL, DIH, DIL,\r
 #else\r
@@ -796,15 +796,16 @@ bool I86::debug_write_reg(_TCHAR *reg, uint32 data)
        return true;\r
 }\r
 \r
-void I86::debug_regs_info(_TCHAR *buffer)\r
+void I86::debug_regs_info(_TCHAR *buffer, size_t buffer_len)\r
 {\r
-       _stprintf(buffer, _T("AX=%04X  BX=%04X CX=%04X DX=%04X SP=%04X  BP=%04X  SI=%04X  DI=%04X\nDS=%04X  ES=%04X SS=%04X CS=%04X IP=%04X  FLAG=[%c%c%c%c%c%c%c%c%c]"),\r
+       _stprintf_s(buffer, buffer_len,\r
+       _T("AX=%04X  BX=%04X CX=%04X DX=%04X SP=%04X  BP=%04X  SI=%04X  DI=%04X\nDS=%04X  ES=%04X SS=%04X CS=%04X IP=%04X  FLAG=[%c%c%c%c%c%c%c%c%c]"),\r
        regs.w[AX], regs.w[BX], regs.w[CX], regs.w[DX], regs.w[SP], regs.w[BP], regs.w[SI], regs.w[DI], sregs[DS], sregs[ES], sregs[SS], sregs[CS], (uint16)(pc - base[CS]),\r
        OF ? _T('O') : _T('-'), DF ? _T('D') : _T('-'), IF ? _T('I') : _T('-'), TF ? _T('T') : _T('-'),\r
        SF ? _T('S') : _T('-'), ZF ? _T('Z') : _T('-'), AF ? _T('A') : _T('-'), PF ? _T('P') : _T('-'), CF ? _T('C') : _T('-'));\r
 }\r
 \r
-int I86::debug_dasm(uint32 pc, _TCHAR *buffer)\r
+int I86::debug_dasm(uint32 pc, _TCHAR *buffer, size_t buffer_len)\r
 {\r
        UINT32 eip = (UINT32)(uint16)(pc - base[CS]);\r
        UINT8 ops[16];\r
@@ -961,9 +962,14 @@ void I86::rotate_shift_byte(unsigned ModRM, unsigned count)
                        AuxVal = 1;\r
                        SetSZPF_Byte(dst);\r
                        break;\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1200)\r
+               default:\r
+                       __assume(0);\r
+#else\r
                default:\r
                        //__assume(0);\r
                        break;\r
+#endif\r
                }\r
        } else {\r
                icount -= (ModRM >= 0xc0) ? timing.rot_reg_base + timing.rot_reg_bit : timing.rot_m8_base + timing.rot_m8_bit;\r
@@ -1022,9 +1028,14 @@ void I86::rotate_shift_byte(unsigned ModRM, unsigned count)
                        AuxVal = 1;\r
                        PutbackRMByte(ModRM, (uint8)dst);\r
                        break;\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1200)\r
+               default:\r
+                       __assume(0);\r
+#else\r
                default:\r
                        //__assume(0);\r
                        break;\r
+#endif\r
                }\r
        }\r
 }\r
@@ -1089,9 +1100,14 @@ void I86::rotate_shift_word(unsigned ModRM, unsigned count)
                        AuxVal = 1;\r
                        SetSZPF_Word(dst);\r
                        break;\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1200)\r
+               default:\r
+                       __assume(0);\r
+#else\r
                default:\r
                        //__assume(0);\r
                        break;\r
+#endif\r
                }\r
        } else {\r
                icount -= (ModRM >= 0xc0) ? timing.rot_reg_base + timing.rot_reg_bit : timing.rot_m8_base + timing.rot_m16_bit;\r