Back
MASM : COMPLEX : CNORM_MMX
CNORM_MMX:

Syntax:

Description:

CNORM_MM0 normal operation multiplies the contents of Rs0 and Rs1 and subtracts the contents of Rs2 from the multiplication result. Sign of the result converted to opposite, then moved to Rd3 according to BS (bank select). Low bank of register contains the Real part of complex number and High bank contains the Imaginary part. In short, it makes "-(a*b-c)", where "a,b,c" are contents of registers Rs0, Rs1 and Rs2 correspondingly. Sign of final result is "-".

Other CNORM_MMX operations are similar. Except they perform complex conjugation on one or several complex numbers contained in registers. The "~" sign shows elements on which conjugation is performed.

Operations :

  • CNORM_MM0 : -(a*b-c)
  • CNORM_MM1 : -(a*b-c~)
  • CNORM_MM2 : -(a*b~-c)
  • CNORM_MM3 : -(a*b~-c~)
  • CNORM_MM4 : -(a~*b-c)
  • CNORM_MM5 : -(a~*b-c~)
  • CNORM_MM6 : -(a~*b~-c)
  • CNORM_MM7 : -(a~*b~-c~)

Instructions are stack conditioned.

Microcode patterns for other CNORM_MMX complex normal operations (see below) are differ only in MPC field, where the values are:

  • for CNORM_MM0 : CN30
  • for CNORM_MM1 : CN31
  • for CNORM_MM2 : CN32
  • for CNORM_MM3 : CN33
  • for CNORM_MM4 : CN34
  • for CNORM_MM5 : CN35
  • for CNORM_MM6 : CN36
  • for CNORM_MM7 : CN37

Microcode Pattern:

Takes 11 cycles to execute.
    Example: CNORM_MM0 0xA3 3 0xA0 0xA1 0xA2

	  
	 MPC BS3 C3 P3 P2 P1 P0
	-----------------------
	CN30  0  0  00 00 A1 A0
	 -    0  0  00 00 00 00
	 -    0  0  00 A2 00 00
	 -    0  0  00 00 00 00
	 -    0  0  00 00 00 00
	 -    0  0  00 00 00 00
	 -    0  0  00 00 00 00
	 -    0  0  00 00 00 00
	 -    0  0  00 00 00 00
	 -    0  0  00 00 00 00
	 -    3  0  A3 00 00 00

	  
Exceptions :

Configuration Register: 0x30 (CrFiluExc)

Exception No. Mask R/W Access Name
[0] 00000000 00000001 RW ALU Bad Operand (Low Bank)
[1] 00000000 00000002 RW ALU Bad Operand (High Bank)
[2] 00000000 00000004 RW ALU Denormalized Input (Low Bank)
[3] 00000000 00000008 RW ALU Denormalized Input (High Bank)
[4] 00000000 00000010 RW ALU Denormalized Output (Low Bank)
[5] 00000000 00000020 RW ALU Denormalized Output (High Bank)
[6] 00000000 00000040 RW ALU Overflow (Low Bank)
[7] 00000000 00000080 RW ALU Overflow (High Bank)

Example :

Not available at the moment.

APE Group Zeuthen. 2003
$Id: cnorm_mm_masm.php,v 1.2 2005/06/22 12:38:35 pleiter Exp $
$Id: syntax.php,v 1.8 2004/08/04 09:25:34 noe Exp $