Liste des Groupes | Revenir à c arch |
EricP wrote:
CARRY Rc,{{OI}}I added a bunch of instructions for dealing with double-width>
operations.
The main ISA design decision is whether to have register pair
specifiers,
R0, R2, R4,... or two separate {r_high,r_low} registers.
In either case the main uArch issue is that now instructions have an
extra
source register and two dest registers, which has a number of
consequences.
But once you bite the bullet on that it simplifies a lot of things,
like how to deal with carry or overflow without flags,
full width multiplies, divide producing both quotient and remainder.
Very nice!
>
This means that you can do integer IMAC(), right?
>
(hi, lo) = imac(a, b, c); // == a*b+c
The only thing even nicer from the perspective of writing arbitraryCARRY Rc,{{OI}{OI}}
precision library code would be IMAA, i.e. a*b+c+d since that is the
largest combination which is guaranteed to never overflow the double
register target field.
Terje
Les messages affichés proviennent d'usenet.