various bugfixes
[picodrive.git] / cpu / fame / famec.c
index 8c71c07..474fa94 100644 (file)
@@ -306,44 +306,38 @@ static u32 flag_I;
 #define POST_IO                 \\r
 //    CCnt = io_cycle_counter;\r
 \r
-#ifndef FAME_BIG_ENDIAN\r
+#define READ_BYTE_F(A, D)           \\r
+       D = m68kcontext.read_byte(A) & 0xFF;\r
+\r
+#define READ_WORD_F(A, D)           \\r
+       D = m68kcontext.read_word(A) & 0xFFFF;\r
 \r
-       #define READ_BYTE_F(A, D)           \\r
-               D = m68kcontext.read_byte(A) & 0xFF;\r
+#define READ_LONG_F(A, D)           \\r
+       D = m68kcontext.read_long(A);\r
 \r
-       #define READ_WORD_F(A, D)           \\r
-               D = m68kcontext.read_word(A) & 0xFFFF;\r
+#define READSX_LONG_F READ_LONG_F\r
 \r
-       #define READ_LONG_F(A, D)               \\r
-               D = m68kcontext.read_word((A)) << 16;          \\r
-               D |= m68kcontext.read_word((A) + 2) & 0xFFFF;\r
+#define WRITE_LONG_F(A, D)          \\r
+       m68kcontext.write_long(A, D);\r
 \r
-       #define READSX_LONG_F(A, D)             \\r
-               D = m68kcontext.read_word((A)) << 16;          \\r
-               D |= m68kcontext.read_word((A) + 2) & 0xFFFF;\r
+#define WRITE_LONG_DEC_F(A, D)          \\r
+       m68kcontext.write_word((A) + 2, (D) & 0xFFFF);    \\r
+       m68kcontext.write_word((A), (D) >> 16);\r
 \r
-       #define WRITE_LONG_F(A, D)              \\r
-               m68kcontext.write_word((A), (D) >> 16);        \\r
-               m68kcontext.write_word((A) + 2, (D) & 0xFFFF);\r
+#define PUSH_32_F(D)                        \\r
+       AREG(7) -= 4;                               \\r
+       m68kcontext.write_long(AREG(7), D);\r
 \r
-       #define WRITE_LONG_DEC_F(A, D)          \\r
-               m68kcontext.write_word((A), (D) >> 16); \\r
-               m68kcontext.write_word((A) + 2, (D) & 0xFFFF);\r
+#define POP_32_F(D)                         \\r
+       D = m68kcontext.read_long(AREG(7));         \\r
+       AREG(7) += 4;\r
+\r
+#ifndef FAME_BIG_ENDIAN\r
 \r
        #define FETCH_LONG(A)               \\r
                (A) = PC[1] | (PC[0] << 16);    \\r
                PC += 2;\r
 \r
-    #define PUSH_32_F(D)                            \\r
-       AREG(7) -= 4;                                   \\r
-       m68kcontext.write_word(AREG(7), (D) >> 16);     \\r
-       m68kcontext.write_word(AREG(7) + 2, (D) & 0xFFFF);\r
-\r
-    #define POP_32_F(D)                         \\r
-       D = m68kcontext.read_word(AREG(7)) << 16;          \\r
-       D |= m68kcontext.read_word(AREG(7) + 2) & 0xFFFF;  \\r
-       AREG(7) += 4;\r
-\r
        #define GET_SWORD           \\r
                (s16)(*PC)\r
 \r
@@ -372,37 +366,10 @@ static u32 flag_I;
 \r
 #else\r
 \r
-       #define READ_BYTE_F(A, D)           \\r
-               D = m68kcontext.read_byte(A) & 0xFF;\r
-\r
-       #define READ_WORD_F(A, D)           \\r
-               D = m68kcontext.read_word(A) & 0xFFFF;\r
-\r
-       #define READ_LONG_F(A, D)           \\r
-               D = m68kcontext.read_long(A);\r
-\r
-       #define READSX_LONG_F(A, D)         \\r
-               D = m68kcontext.read_long(A);\r
-\r
-       #define WRITE_LONG_F(A, D)          \\r
-               m68kcontext.write_long(A, D);\r
-\r
-       #define WRITE_LONG_DEC_F(A, D)          \\r
-               m68kcontext.write_word((A) + 2, (D) >> 16);    \\r
-               m68kcontext.write_word((A), (D) & 0xFFFF);\r
-\r
        #define FETCH_LONG(A)               \\r
                (A) = PC[0] | (PC[1] << 16);    \\r
                PC += 2;\r
 \r
-       #define PUSH_32_F(D)                        \\r
-               AREG(7) -= 4;                               \\r
-               m68kcontext.write_long(AREG(7), D);\r
-\r
-       #define POP_32_F(D)                         \\r
-               D = m68kcontext.read_long(AREG(7));         \\r
-               AREG(7) += 4;\r
-\r
        #define GET_SWORD                           \\r
                ((s16)(((*PC & 0xFF) << 8) | (*PC >> 8)))\r
 \r