| 8956 | } |
| 8957 | |
| 8958 | static uae_u64 fetch64(struct rgabuf *r) |
| 8959 | { |
| 8960 | uae_u64 v; |
| 8961 | uaecptr p = r->pv; |
| 8962 | uaecptr pm = p & ~7; |
| 8963 | uaecptr pm1, pm2; |
| 8964 | if (p & 4) { |
| 8965 | pm1 = pm + 4; |
| 8966 | pm2 = pm + 4; |
| 8967 | } else { |
| 8968 | pm1 = pm; |
| 8969 | pm2 = pm + 4; |
| 8970 | } |
| 8971 | if (p & 2) { |
| 8972 | uae_u32 v1 = chipmem_lget_indirect(pm1) & 0x0000ffff; |
| 8973 | uae_u32 v2 = chipmem_lget_indirect(pm2) & 0x0000ffff; |
| 8974 | v1 |= v1 << 16; |
| 8975 | v2 |= v2 << 16; |
| 8976 | v = (((uae_u64)v1) << 32) | v2; |
| 8977 | } else { |
| 8978 | v = ((uae_u64)chipmem_lget_indirect(pm1)) << 32; |
| 8979 | v |= chipmem_lget_indirect(pm2); |
| 8980 | } |
| 8981 | #ifdef DEBUGGER |
| 8982 | if (memwatch_enabled) { |
| 8983 | debug_getpeekdma_value_long((uae_u32)(v >> 32), p - pm1); |
| 8984 | debug_getpeekdma_value_long((uae_u32)(v >> 0), p - pm2); |
| 8985 | } |
| 8986 | if (debug_dma) { |
| 8987 | record_dma_read_value_wide(v, true); |
| 8988 | } |
| 8989 | #endif |
| 8990 | return v; |
| 8991 | } |
| 8992 | |
| 8993 | static void process_copper(struct rgabuf *r) |
| 8994 | { |
no test coverage detected