|
@@ -712,7 +712,8 @@ static void cpu_ioreq_pio(ioreq_t *req)
|
|
|
|
|
|
for (i = 0; i < req->count; i++) {
|
|
for (i = 0; i < req->count; i++) {
|
|
tmp = do_inp(req->addr, req->size);
|
|
tmp = do_inp(req->addr, req->size);
|
|
- cpu_physical_memory_write(req->data + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_write(
|
|
|
|
+ req->data + (sign * i * (int64_t)req->size),
|
|
(uint8_t *) &tmp, req->size);
|
|
(uint8_t *) &tmp, req->size);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -723,7 +724,8 @@ static void cpu_ioreq_pio(ioreq_t *req)
|
|
for (i = 0; i < req->count; i++) {
|
|
for (i = 0; i < req->count; i++) {
|
|
uint32_t tmp = 0;
|
|
uint32_t tmp = 0;
|
|
|
|
|
|
- cpu_physical_memory_read(req->data + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_read(
|
|
|
|
+ req->data + (sign * i * (int64_t)req->size),
|
|
(uint8_t*) &tmp, req->size);
|
|
(uint8_t*) &tmp, req->size);
|
|
do_outp(req->addr, req->size, tmp);
|
|
do_outp(req->addr, req->size, tmp);
|
|
}
|
|
}
|
|
@@ -740,12 +742,14 @@ static void cpu_ioreq_move(ioreq_t *req)
|
|
if (!req->data_is_ptr) {
|
|
if (!req->data_is_ptr) {
|
|
if (req->dir == IOREQ_READ) {
|
|
if (req->dir == IOREQ_READ) {
|
|
for (i = 0; i < req->count; i++) {
|
|
for (i = 0; i < req->count; i++) {
|
|
- cpu_physical_memory_read(req->addr + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_read(
|
|
|
|
+ req->addr + (sign * i * (int64_t)req->size),
|
|
(uint8_t *) &req->data, req->size);
|
|
(uint8_t *) &req->data, req->size);
|
|
}
|
|
}
|
|
} else if (req->dir == IOREQ_WRITE) {
|
|
} else if (req->dir == IOREQ_WRITE) {
|
|
for (i = 0; i < req->count; i++) {
|
|
for (i = 0; i < req->count; i++) {
|
|
- cpu_physical_memory_write(req->addr + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_write(
|
|
|
|
+ req->addr + (sign * i * (int64_t)req->size),
|
|
(uint8_t *) &req->data, req->size);
|
|
(uint8_t *) &req->data, req->size);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -754,16 +758,20 @@ static void cpu_ioreq_move(ioreq_t *req)
|
|
|
|
|
|
if (req->dir == IOREQ_READ) {
|
|
if (req->dir == IOREQ_READ) {
|
|
for (i = 0; i < req->count; i++) {
|
|
for (i = 0; i < req->count; i++) {
|
|
- cpu_physical_memory_read(req->addr + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_read(
|
|
|
|
+ req->addr + (sign * i * (int64_t)req->size),
|
|
(uint8_t*) &tmp, req->size);
|
|
(uint8_t*) &tmp, req->size);
|
|
- cpu_physical_memory_write(req->data + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_write(
|
|
|
|
+ req->data + (sign * i * (int64_t)req->size),
|
|
(uint8_t*) &tmp, req->size);
|
|
(uint8_t*) &tmp, req->size);
|
|
}
|
|
}
|
|
} else if (req->dir == IOREQ_WRITE) {
|
|
} else if (req->dir == IOREQ_WRITE) {
|
|
for (i = 0; i < req->count; i++) {
|
|
for (i = 0; i < req->count; i++) {
|
|
- cpu_physical_memory_read(req->data + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_read(
|
|
|
|
+ req->data + (sign * i * (int64_t)req->size),
|
|
(uint8_t*) &tmp, req->size);
|
|
(uint8_t*) &tmp, req->size);
|
|
- cpu_physical_memory_write(req->addr + (sign * i * req->size),
|
|
|
|
|
|
+ cpu_physical_memory_write(
|
|
|
|
+ req->addr + (sign * i * (int64_t)req->size),
|
|
(uint8_t*) &tmp, req->size);
|
|
(uint8_t*) &tmp, req->size);
|
|
}
|
|
}
|
|
}
|
|
}
|