VirtualBox

Changeset 58819 in vbox


Ignore:
Timestamp:
Nov 23, 2015 12:17:01 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
104275
Message:

BIOS: Inlined swap_64 for considerably smaller code.

Location:
trunk/src/VBox/Devices/PC/BIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/inlines.h

    r56292 r58819  
    118118#pragma aux rep_outsd = ".386" "rep outs dx,dword ptr es:[si]" parm [es si] [cx] [dx] value [es si] modify exact [cx si];
    119119
    120 uint16_t __far swap_16(uint16_t val);
     120uint16_t swap_16(uint16_t val);
    121121#pragma aux swap_16 = "xchg ah,al" parm [ax] value [ax] modify exact [ax] nomemory;
    122122
    123 uint32_t __far swap_32(uint32_t val);
     123uint32_t swap_32(uint32_t val);
    124124#pragma aux swap_32 =   \
    125125    "xchg   ah, al"     \
     
    128128    parm [dx ax] value [dx ax] modify exact [dx ax] nomemory;
    129129
     130uint64_t swap_64(uint64_t val);
     131#pragma aux swap_64 =   \
     132    "xchg   ah, al"     \
     133    "xchg   bh, bl"     \
     134    "xchg   ch, cl"     \
     135    "xchg   dh, dl"     \
     136    "xchg   ax, dx"     \
     137    "xchg   bx, cx"     \
     138    parm [ax bx cx dx] value [ax bx cx dx] modify exact [ax bx cx dx] nomemory;
     139
    130140#endif
  • trunk/src/VBox/Devices/PC/BIOS/scsi.c

    r58724 r58819  
    195195
    196196    return 0;
    197 }
    198 
    199 static uint64_t swap_64(uint64_t val)
    200 {
    201     uint64_t rval;
    202 
    203     rval = swap_32(val & 0xffffffff);
    204     rval <<= 32;
    205     rval |= swap_32(val >> 32);
    206 
    207     return rval;
    208197}
    209198
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette