VirtualBox

Changeset 41653 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Jun 11, 2012 2:41:04 PM (13 years ago)
Author:
vboxsync
Message:

BIOS: Remove signed 32-bit multiply/divide routines (unnecessary).

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS-new/eltorito.c

    r39651 r41653  
    366366    bios_dsk->drqp.sect_sz = 512;
    367367
    368     bios_dsk->drqp.skip_a = 2048 - nbsectors * 512L % 2048;
     368    bios_dsk->drqp.skip_a = 2048 - nbsectors * 512UL % 2048;
    369369
    370370    if (device > BX_MAX_ATA_DEVICES)
     
    552552
    553553        bios_dsk->drqp.skip_b = before * 512;
    554         bios_dsk->drqp.skip_a = 2048 - nbsectors * 512L % 2048 - bios_dsk->drqp.skip_b;
     554        bios_dsk->drqp.skip_a = 2048 - nbsectors * 512UL % 2048 - bios_dsk->drqp.skip_b;
    555555
    556556        if (device > BX_MAX_ATA_DEVICES)
  • trunk/src/VBox/Devices/PC/BIOS-new/support.asm

    r41607 r41653  
    7373                ret
    7474
    75 ;;
    76 ; 32-bit signed division.
    77 ;
    78 ; @param    dx:ax   Dividend.
    79 ; @param    cx:bx   Divisor.
    80 ; @returns  dx:ax   Quotient.
    81 ;           cx:bx   Reminder.
    82 ;
    83 __I4D:
    84                 pushf
    85                 push    eax
    86                 push    edx
    87                 push    ecx
    88 
    89                 rol     eax, 16
    90                 mov     ax, dx
    91                 ror     eax, 16
    92                 xor     edx, edx
    93 
    94                 shr     ecx, 16
    95                 mov     cx, bx
    96 
    97                 idiv    ecx                 ; eax:edx / ecx -> eax=quotient, edx=reminder.
    98 
    99                 mov     bx, dx
    100                 pop     ecx
    101                 shr     edx, 16
    102                 mov     cx, dx
    103 
    104                 pop     edx
    105                 ror     eax, 16
    106                 mov     dx, ax
    107                 add     sp, 2
    108                 pop     ax
    109                 rol     eax, 16
    110 
    111                 popf
    112                 ret
    11375
    11476;;
     
    13597
    13698                mul     ecx                 ; eax * ecx -> edx:eax
    137 
    138                 pop     ebx
    139                 pop     ecx
    140 
    141                 pop     edx
    142                 ror     eax, 16
    143                 mov     dx, ax
    144                 add     sp, 2
    145                 pop     ax
    146                 rol     eax, 16
    147 
    148                 popf
    149                 ret
    150 
    151 
    152 ;;
    153 ; 32-bit unsigned multiplication.
    154 ;
    155 ; @param    dx:ax   Factor 1.
    156 ; @param    cx:bx   Factor 2.
    157 ; @returns  dx:ax   Result.
    158 ;
    159 __I4M:
    160                 pushf
    161                 push    eax
    162                 push    edx
    163                 push    ecx
    164                 push    ebx
    165 
    166                 rol     eax, 16
    167                 mov     ax, dx
    168                 ror     eax, 16
    169                 xor     edx, edx
    170 
    171                 shr     ecx, 16
    172                 mov     cx, bx
    173 
    174                 imul    ecx                 ; eax * ecx -> edx:eax
    17599
    176100                pop     ebx
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