Enforce call order of the functions used in the bitshift. Fixes visual C /O2 builds. Thanks h-a-l-9000 and wjp.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3718
This commit is contained in:
parent
cca9bb077a
commit
de75bc83f6
4 changed files with 55 additions and 52 deletions
|
@ -43,16 +43,16 @@ Bitu PageHandler::readb(PhysPt addr) {
|
|||
return 0;
|
||||
}
|
||||
Bitu PageHandler::readw(PhysPt addr) {
|
||||
return
|
||||
(readb(addr+0) << 0) |
|
||||
(readb(addr+1) << 8);
|
||||
Bitu ret = (readb(addr+0) << 0);
|
||||
ret |= (readb(addr+1) << 8);
|
||||
return ret;
|
||||
}
|
||||
Bitu PageHandler::readd(PhysPt addr) {
|
||||
return
|
||||
(readb(addr+0) << 0) |
|
||||
(readb(addr+1) << 8) |
|
||||
(readb(addr+2) << 16) |
|
||||
(readb(addr+3) << 24);
|
||||
Bitu ret = (readb(addr+0) << 0);
|
||||
ret |= (readb(addr+1) << 8);
|
||||
ret |= (readb(addr+2) << 16);
|
||||
ret |= (readb(addr+3) << 24);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void PageHandler::writeb(PhysPt addr,Bitu /*val*/) {
|
||||
|
|
|
@ -427,15 +427,17 @@ void MEM_A20_Enable(bool enabled) {
|
|||
|
||||
/* Memory access functions */
|
||||
Bit16u mem_unalignedreadw(PhysPt address) {
|
||||
return mem_readb_inline(address) |
|
||||
mem_readb_inline(address+1) << 8;
|
||||
Bit16u ret = mem_readb_inline(address);
|
||||
ret |= mem_readb_inline(address+1) << 8;
|
||||
return ret;
|
||||
}
|
||||
|
||||
Bit32u mem_unalignedreadd(PhysPt address) {
|
||||
return mem_readb_inline(address) |
|
||||
(mem_readb_inline(address+1) << 8) |
|
||||
(mem_readb_inline(address+2) << 16) |
|
||||
(mem_readb_inline(address+3) << 24);
|
||||
Bit32u ret = mem_readb_inline(address);
|
||||
ret |= mem_readb_inline(address+1) << 8;
|
||||
ret |= mem_readb_inline(address+2) << 16;
|
||||
ret |= mem_readb_inline(address+3) << 24;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -160,19 +160,19 @@ public:
|
|||
addr = PAGING_GetPhysicalAddress(addr) & vgapages.mask;
|
||||
addr += vga.svga.bank_read_full;
|
||||
addr = CHECKED2(addr);
|
||||
return
|
||||
(readHandler(addr+0) << 0) |
|
||||
(readHandler(addr+1) << 8);
|
||||
Bitu ret = (readHandler(addr+0) << 0);
|
||||
ret |= (readHandler(addr+1) << 8);
|
||||
return ret;
|
||||
}
|
||||
Bitu readd(PhysPt addr) {
|
||||
addr = PAGING_GetPhysicalAddress(addr) & vgapages.mask;
|
||||
addr += vga.svga.bank_read_full;
|
||||
addr = CHECKED2(addr);
|
||||
return
|
||||
(readHandler(addr+0) << 0) |
|
||||
(readHandler(addr+1) << 8) |
|
||||
(readHandler(addr+2) << 16) |
|
||||
(readHandler(addr+3) << 24);
|
||||
Bitu ret = (readHandler(addr+0) << 0);
|
||||
ret |= (readHandler(addr+1) << 8);
|
||||
ret |= (readHandler(addr+2) << 16);
|
||||
ret |= (readHandler(addr+3) << 24);
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -246,19 +246,19 @@ public:
|
|||
addr = PAGING_GetPhysicalAddress(addr) & vgapages.mask;
|
||||
addr += vga.svga.bank_read_full;
|
||||
addr = CHECKED(addr);
|
||||
return
|
||||
(readHandler(addr+0) << 0) |
|
||||
(readHandler(addr+1) << 8);
|
||||
Bitu ret = (readHandler(addr+0) << 0);
|
||||
ret |= (readHandler(addr+1) << 8);
|
||||
return ret;
|
||||
}
|
||||
Bitu readd(PhysPt addr) {
|
||||
addr = PAGING_GetPhysicalAddress(addr) & vgapages.mask;
|
||||
addr += vga.svga.bank_read_full;
|
||||
addr = CHECKED(addr);
|
||||
return
|
||||
(readHandler(addr+0) << 0) |
|
||||
(readHandler(addr+1) << 8) |
|
||||
(readHandler(addr+2) << 16) |
|
||||
(readHandler(addr+3) << 24);
|
||||
Bitu ret = (readHandler(addr+0) << 0);
|
||||
ret |= (readHandler(addr+1) << 8);
|
||||
ret |= (readHandler(addr+2) << 16);
|
||||
ret |= (readHandler(addr+3) << 24);
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -355,24 +355,24 @@ public:
|
|||
addr = PAGING_GetPhysicalAddress(addr) & vgapages.mask;
|
||||
addr += vga.svga.bank_read_full;
|
||||
addr = CHECKED(addr);
|
||||
if (GCC_UNLIKELY(addr & 1))
|
||||
return
|
||||
(readHandler<Bit8u>( addr+0 ) << 0 ) |
|
||||
(readHandler<Bit8u>( addr+1 ) << 8 );
|
||||
else
|
||||
if (GCC_UNLIKELY(addr & 1)) {
|
||||
Bitu ret = (readHandler<Bit8u>( addr+0 ) << 0 );
|
||||
ret |= (readHandler<Bit8u>( addr+1 ) << 8 );
|
||||
return ret;
|
||||
} else
|
||||
return readHandler<Bit16u>( addr );
|
||||
}
|
||||
Bitu readd(PhysPt addr ) {
|
||||
addr = PAGING_GetPhysicalAddress(addr) & vgapages.mask;
|
||||
addr += vga.svga.bank_read_full;
|
||||
addr = CHECKED(addr);
|
||||
if (GCC_UNLIKELY(addr & 3))
|
||||
return
|
||||
(readHandler<Bit8u>( addr+0 ) << 0 ) |
|
||||
(readHandler<Bit8u>( addr+1 ) << 8 ) |
|
||||
(readHandler<Bit8u>( addr+2 ) << 16 ) |
|
||||
(readHandler<Bit8u>( addr+3 ) << 24 );
|
||||
else
|
||||
if (GCC_UNLIKELY(addr & 3)) {
|
||||
Bitu ret = (readHandler<Bit8u>( addr+0 ) << 0 );
|
||||
ret |= (readHandler<Bit8u>( addr+1 ) << 8 );
|
||||
ret |= (readHandler<Bit8u>( addr+2 ) << 16 );
|
||||
ret |= (readHandler<Bit8u>( addr+3 ) << 24 );
|
||||
return ret;
|
||||
} else
|
||||
return readHandler<Bit32u>( addr );
|
||||
}
|
||||
void writeb(PhysPt addr, Bitu val ) {
|
||||
|
@ -588,18 +588,18 @@ public:
|
|||
Bitu readw(PhysPt addr) {
|
||||
addr = vga.svga.bank_read_full + (PAGING_GetPhysicalAddress(addr) & 0xffff);
|
||||
addr = CHECKED4(addr);
|
||||
return
|
||||
(readHandler(addr+0) << 0) |
|
||||
(readHandler(addr+1) << 8);
|
||||
Bitu ret = (readHandler(addr+0) << 0);
|
||||
ret |= (readHandler(addr+1) << 8);
|
||||
return ret;
|
||||
}
|
||||
Bitu readd(PhysPt addr) {
|
||||
addr = vga.svga.bank_read_full + (PAGING_GetPhysicalAddress(addr) & 0xffff);
|
||||
addr = CHECKED4(addr);
|
||||
return
|
||||
(readHandler(addr+0) << 0) |
|
||||
(readHandler(addr+1) << 8) |
|
||||
(readHandler(addr+2) << 16) |
|
||||
(readHandler(addr+3) << 24);
|
||||
Bitu ret = (readHandler(addr+0) << 0);
|
||||
ret |= (readHandler(addr+1) << 8);
|
||||
ret |= (readHandler(addr+2) << 16);
|
||||
ret |= (readHandler(addr+3) << 24);
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue