| 587 | } |
| 588 | |
| 589 | static __inline void |
| 590 | bus_space_write_multi_4(bus_space_tag_t tag, bus_space_handle_t bsh, |
| 591 | bus_size_t offset, const u_int32_t *addr, size_t count) |
| 592 | { |
| 593 | |
| 594 | if (tag == X86_BUS_SPACE_IO) |
| 595 | outsl(bsh + offset, addr, count); |
| 596 | else { |
| 597 | #ifdef __GNUCLIKE_ASM |
| 598 | __asm __volatile(" \n\ |
| 599 | 1: lodsl \n\ |
| 600 | movl %%eax,(%2) \n\ |
| 601 | loop 1b" : |
| 602 | "=S" (addr), "=c" (count) : |
| 603 | "r" (bsh + offset), "0" (addr), "1" (count) : |
| 604 | "%eax", "memory", "cc"); |
| 605 | #endif |
| 606 | } |
| 607 | } |
| 608 | |
| 609 | #if 0 /* Cause a link error for bus_space_write_multi_8 */ |
| 610 | #define bus_space_write_multi_8(t, h, o, a, c) \ |
no test coverage detected