From mboxrd@z Thu Jan 1 00:00:00 1970 From: Johan Rydberg To: "Frank Ch. Eigler" Cc: cgen@sources.redhat.com Subject: Re: 64-bit port using CGEN Date: Wed, 16 May 2001 08:05:00 -0000 Message-id: <3B029755.6AFE5C1D@netinsight.se> References: <12258.989982603@cygnus.com> <3B01F306.4152A19C.cygnus.local.cgen@netinsight.se> X-SW-Source: 2001-q2/msg00066.html "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.