This is the mail archive of the cgen@sources.redhat.com mailing list for the CGEN project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 64-bit port using CGEN


"Frank Ch. Eigler" wrote:
> 
> johan.rydberg wrote:
> 
> : [...]
> : First of all, opcode values are truncated to zero:
> :
> : static const CGEN_IFMT ifmt_j = {
> :   64, 64, 0xe000000000000000, { { F (F_OPC) }, { F (F_ABS61) }, { 0 } }
> : };
> : pxs-opc.c:55: warning: large integer implicitly truncated to unsigned type
> 
> Yup, known problem.  I suspect a good solution is to define
> CGEN_INSN_INT to be "long long" for such extra-wide targets.  (That
> will in turn require that pervasive assumptions that CGEN_INSN_INT is
> 32 bits wide be corrected.)

Yes. This is what I have done.  I also had to change some of the mask generation
statements so that it generates a correct mask.
 
> : [...]
> : Second,
> : The genereated insert and extract code aborts when word length is larger than
> : 32 bit.  From /opcodes/cgen-ibld.in: [...]
> 
> Our very own Stan Cox has submitted a patch that aims to work around
> this problem using a different approach than the "long long" idea above:
> 
>         http://sources.redhat.com/ml/cgen/2001-q2/msg00003.html

Ok.  I will try this patch and see if to works for my port.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]