| 318 | } |
| 319 | |
| 320 | static __inline void |
| 321 | bus_space_read_multi_4(bus_space_tag_t tag, bus_space_handle_t bsh, |
| 322 | bus_size_t offset, u_int32_t *addr, size_t count) |
| 323 | { |
| 324 | |
| 325 | if (tag == X86_BUS_SPACE_IO) |
| 326 | insl(bsh + offset, addr, count); |
| 327 | else { |
| 328 | #ifdef __GNUCLIKE_ASM |
| 329 | __asm __volatile(" \n\ |
| 330 | 1: movl (%2),%%eax \n\ |
| 331 | stosl \n\ |
| 332 | loop 1b" : |
| 333 | "=D" (addr), "=c" (count) : |
| 334 | "r" (bsh + offset), "0" (addr), "1" (count) : |
| 335 | "%eax", "memory"); |
| 336 | #endif |
| 337 | } |
| 338 | } |
| 339 | |
| 340 | #if 0 /* Cause a link error for bus_space_read_multi_8 */ |
| 341 | #define bus_space_read_multi_8 !!! bus_space_read_multi_8 unimplemented !!! |
no test coverage detected