[ixp1200] ixp1200 absolute register programming problem
Johnson, Erik J
erik.j.johnson at intel.com
Fri Aug 23 11:47:24 EDT 2002
The problem is not in the compiler, the problem is that an absolute register
is not allowed with either a shift specifier (alu_shf) or an immediate
operand. So the real problem is with the 1. The documentation is
misleading, but if you read after the example in the alu[] instruction
documentation, this restriction is hinted at.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Erik J. Johnson
Intel Research & Development
erik.j.johnson at intel.com
NOT SPEAKING FOR INTEL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----Original Message-----
From: xtan at mail [mailto:xtan at csnet1.cs.tsinghua.edu.cn]
Sent: Thursday, August 22, 2002 6:27 PM
To: ixp1200 at CS.Princeton.EDU
Subject: [ixp1200] ixp1200 absolute register programming problem
Hello everybody:
Here is an absolute register programming problem that I encountered
with IXP1200 C (asm) compiler. The detail code goes here:
__declspec(shared gp_reg) a;
void main()
{
__asm alu[a, 1, +, a];
}
The compiler will report an error: (0): error : #0: Inst has bad operands
(d:\cvs\uc\ixp1200\uEngineC\pdev\ixp_cg\ixpasm.c, line 2109)
While the IXP programming guide said the B operand and the dest_reg could
use absolute register leaving A operand a immediate data.
Is there anything wrong with my syntax or it is just a compiler bug?
Besides, using global absolute register is convenient in the communications
between threads, but this failure will lead to an exaggerate code generation
which dramatically decrease the performance.
I will very appreciate if anyone could help me.
Zhanxi Tan
Dep. of CS Tsinghua Univ.
More information about the ixp1200
mailing list