// SPDX-License-Identifier: GPL-2.0 /*---------------------------------------------------------------------------+ | reg_mul.c | | | | Multiply one FPU_REG by another, put the result in a destination FPU_REG. | | | | Copyright (C) 1992,1993,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | Returns the tag of the result if no exceptions or errors occurred. | | |
+---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------+ | The destination may be any FPU_REG, including one of the source FPU_REGs. |
+---------------------------------------------------------------------------*/
/* Multiply two registers to give a register result. The sources are st(deststnr) and (b,tagb,signb). The destination is st(deststnr).
*/ /* This routine must be called with non-empty source registers */ int FPU_mul(FPU_REG const *b, u_char tagb, int deststnr, int control_w)
{
FPU_REG *a = &st(deststnr);
FPU_REG *dest = a;
u_char taga = FPU_gettagi(deststnr);
u_char saved_sign = getsign(dest);
u_char sign = (getsign(a) ^ getsign(b)); int tag;
if (!(taga | tagb)) { /* Both regs Valid, this should be the most common case. */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.