From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19500 invoked by alias); 29 Aug 2011 06:28:43 -0000 Received: (qmail 19492 invoked by uid 22791); 29 Aug 2011 06:28:41 -0000 X-SWARE-Spam-Status: No, hits=0.8 required=5.0 tests=BAYES_50,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from callisto.FEITH.COM (HELO callisto.FEITH.COM) (192.251.93.152) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 29 Aug 2011 06:28:27 +0000 Received: from callisto.FEITH.COM (localhost [127.0.0.1]) by callisto.FEITH.COM (8.14.5/8.14.4) with ESMTP id p7T6SQfN035216 for ; Mon, 29 Aug 2011 02:28:26 -0400 (EDT) (envelope-from john@callisto.FEITH.COM) Received: (from john@localhost) by callisto.FEITH.COM (8.14.5/8.14.5/Submit) id p7T6SP8V035215 for cgen@sources.redhat.com; Mon, 29 Aug 2011 02:28:25 -0400 (EDT) (envelope-from john) Date: Mon, 29 Aug 2011 06:28:00 -0000 From: John Wehle Message-Id: <201108290628.p7T6SP8V035215@callisto.FEITH.COM> To: cgen@sources.redhat.com Subject: sid-20110801 Patch for cgen setter error Mailing-List: contact cgen-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cgen-owner@sourceware.org X-SW-Source: 2011-q3/txt/msg00008.txt.bz2 Generating sim files from a cpu file containing: (define-operand (name drli) (comment "destination register") (type h-gr) (index f-dli) (setter () (set (reg h-gr f-dli) newval)) ) works fine, however generating sid files gives: Generating tomibf-semantics.cxx ... Canonicalizing instruction semantics ... Done canonicalization. Analyzing instruction set ... Performing sanity checks ... Done analysis. Computing sformat argument buffers ... ERROR: send: not an object VOID Backtrace: In ../../../../../../src/sid/src/sid/component/cgen-cpu/tomi/../../../../cgen/cos.scm: 255: 0 [error "send: not an object" VOID] In unknown file: ?: 1 [/object-error "send" VOID "not an object"] In ../../../../../../src/sid/src/sid/component/cgen-cpu/tomi/../../../../cgen/cos.scm: 245: 2 [apply # #] 244: 3* (if (not #) (apply /object-error #)) 1112: 4* [/object-check VOID "send"] In unknown file: ?: 5 [send VOID get-name] In ../../../../../../src/sid/src/sid/component/cgen-cpu/tomi/../../../../cgen/utils-cgen.scm: 213: 6 [obj-name VOID] In ../../../../../../src/sid/src/sid/component/cgen-cpu/tomi/../../../../cgen/rtl-c.scm: 322: 7* [obj:name VOID] 322: 8* [rtx-canonicalize #f ... 322: 9 (let* ((canonical-rtl #) (estate #)) (rtl-c-with-estate estate mode ...)) In ./../../../../../../src/sid/src/sid/component/cgen-cpu/tomi/../../../../cgen/sid.scm: 1098: 10 [rtl-c VOID (tomi) ...] 1096: 11 (let ((args #) (expr #)) (rtl-c (quote VOID) (obj-isa-list op) ...)) 1095: 12* (if (op:setter op) (let (# #) (rtl-c # # ...)) ...) If I comment out the setter, then the sid files generate fine. The problem appears to be a typo in sid.scm. Patch enclosed. -- John john@cybersashi.com ------------------------8<------------------------------8<--------------- --- sid.scm.ORIGINAL 2010-01-24 19:40:29.000000000 -0500 +++ sid.scm 2011-08-29 00:46:05.000000000 -0400 @@ -1095,7 +1095,7 @@ (if (op:setter op) (let ((args (car (op:setter op))) (expr (cadr (op:setter op)))) - (rtl-c 'VOID + (rtl-c VOID (obj-isa-list op) (if (= (length args) 0) (list (list 'newval mode "opval")) -------------------------------------------------------------------------