[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 05/11] hw/scsi/lsi53c895a: Use sextract32 for sign-ex
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 05/11] hw/scsi/lsi53c895a: Use sextract32 for sign-extension |
Date: |
Thu, 12 Sep 2013 13:17:08 +0200 |
From: Peter Maydell <address@hidden>
Use sextract32() for doing sign-extension rather than rolling
our own implementation.
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/scsi/lsi53c895a.c | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index 0c36842..a26b20b 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -998,12 +998,6 @@ bad:
s->msg_action = 0;
}
-/* Sign extend a 24-bit value. */
-static inline int32_t sxt24(int32_t n)
-{
- return (n << 8) >> 8;
-}
-
#define LSI_BUF_SIZE 4096
static void lsi_memcpy(LSIState *s, uint32_t dest, uint32_t src, int count)
{
@@ -1083,7 +1077,7 @@ again:
/* Table indirect addressing. */
/* 32-bit Table indirect */
- offset = sxt24(addr);
+ offset = sextract32(addr, 0, 24);
pci_dma_read(pci_dev, s->dsa + offset, buf, 8);
/* byte count is stored in bits 0:23 only */
s->dbc = cpu_to_le32(buf[0]) & 0xffffff;
@@ -1183,13 +1177,13 @@ again:
uint32_t id;
if (insn & (1 << 25)) {
- id = read_dword(s, s->dsa + sxt24(insn));
+ id = read_dword(s, s->dsa + sextract32(insn, 0, 24));
} else {
id = insn;
}
id = (id >> 16) & 0xf;
if (insn & (1 << 26)) {
- addr = s->dsp + sxt24(addr);
+ addr = s->dsp + sextract32(addr, 0, 24);
}
s->dnad = addr;
switch (opcode) {
@@ -1385,7 +1379,7 @@ again:
if (cond == jmp) {
if (insn & (1 << 23)) {
/* Relative address. */
- addr = s->dsp + sxt24(addr);
+ addr = s->dsp + sextract32(addr, 0, 24);
}
switch ((insn >> 27) & 7) {
case 0: /* Jump */
@@ -1438,7 +1432,7 @@ again:
int i;
if (insn & (1 << 28)) {
- addr = s->dsa + sxt24(addr);
+ addr = s->dsa + sextract32(addr, 0, 24);
}
n = (insn & 7);
reg = (insn >> 16) & 0xff;
--
1.8.3.1
- [Qemu-devel] [PULL 00/11] SCSI patches for 2013-09-11, Paolo Bonzini, 2013/09/12
- [Qemu-devel] [PULL 02/11] spapr-vscsi: add task management, Paolo Bonzini, 2013/09/12
- [Qemu-devel] [PULL 04/11] scsi: Fix scsi_bus_legacy_add_drive() scsi-generic with serial, Paolo Bonzini, 2013/09/12
- [Qemu-devel] [PULL 05/11] hw/scsi/lsi53c895a: Use sextract32 for sign-extension,
Paolo Bonzini <=
- [Qemu-devel] [PULL 01/11] scsi: prefer UUID to VM name for the initiator name, Paolo Bonzini, 2013/09/12
- [Qemu-devel] [PULL 06/11] hw/scsi/lsi53c895a: Use deposit32 rather than handcoded shift/mask, Paolo Bonzini, 2013/09/12
- [Qemu-devel] [PULL 03/11] virtio-scsi: Make type virtio-scsi-common abstract, Paolo Bonzini, 2013/09/12
- [Qemu-devel] [PULL 07/11] iscsi: add logical block provisioning information to iscsilun, Paolo Bonzini, 2013/09/12
- [Qemu-devel] [PULL 08/11] iscsi: add .bdrv_get_block_status, Paolo Bonzini, 2013/09/12
[Qemu-devel] [PULL 09/11] iscsi: split discard requests in multiple parts, Paolo Bonzini, 2013/09/12