This is the mail archive of the
sid@sourceware.org
mailing list for the SID project.
[patch][commit] Additional cgen ops
- From: Dave Brolley <brolley at redhat dot com>
- To: sid at sources dot redhat dot com
- Date: Thu, 11 May 2006 10:38:13 -0400
- Subject: [patch][commit] Additional cgen ops
Hi,
I've committed the attached patch which implements the cgen ops
SUBWORDDIHI, SUBWORDDIQI and SUBWORDDFDI. The patch also initializes the
existing member cgen_bi_endian_cpu::branch_was_return in the constructor.
Dave
2006-05-11 Dave Brolley <brolley@redhat.com>
* cgen-ops.h (SUBWORDDIHI, SUBWORDDIQI, SUBWORDDFDI): New functions.
* compCGEN.cxx (cgen_bi_endian_cpu): Initialize branch_was_return.
Index: sid/component/cgen-cpu/cgen-ops.h
===================================================================
RCS file: /cvs/src/src/sid/component/cgen-cpu/cgen-ops.h,v
retrieving revision 1.12
diff -c -p -r1.12 cgen-ops.h
*** sid/component/cgen-cpu/cgen-ops.h 16 Feb 2005 21:19:34 -0000 1.12
--- sid/component/cgen-cpu/cgen-ops.h 11 May 2006 14:31:27 -0000
***************
*** 1,6 ****
// cgen-ops.h - CGEN semantic ops. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2002 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
--- 1,6 ----
// cgen-ops.h - CGEN semantic ops. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2002, 2006 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
*************** SUBWORDDIDF (DI in)
*** 560,565 ****
--- 560,587 ----
return *out;
}
+ inline HI
+ SUBWORDDIHI (DI in, int word)
+ {
+ assert (word >= 0 && word <= 3);
+ return (UHI) (in >> (16 * (3 - word))) & 0xFFFF;
+ }
+
+ inline QI
+ SUBWORDDIQI (DI in, int byte)
+ {
+ assert (byte >= 0 && byte <= 7);
+ return (UQI) (in >> (8 * (7 - byte))) & 0xFF;
+ }
+
+ inline DI
+ SUBWORDDFDI (DF in)
+ {
+ union { DF in; DI out; } x;
+ x.in = in;
+ return x.out;
+ }
+
inline SI
SUBWORDDFSI (DF in, int word)
{
Index: sid/component/cgen-cpu/compCGEN.cxx
===================================================================
RCS file: /cvs/src/src/sid/component/cgen-cpu/compCGEN.cxx,v
retrieving revision 1.17
diff -c -p -r1.17 compCGEN.cxx
*** sid/component/cgen-cpu/compCGEN.cxx 1 Mar 2006 21:07:00 -0000 1.17
--- sid/component/cgen-cpu/compCGEN.cxx 11 May 2006 14:31:27 -0000
***************
*** 1,6 ****
// compCGEN.cxx - CPU components. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
--- 1,6 ----
// compCGEN.cxx - CPU components. -*- C++ -*-
! // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006 Red Hat.
// This file is part of SID and is licensed under the GPL.
// See the file COPYING.SID for conditions for redistribution.
*************** using namespace cgen;
*** 42,47 ****
--- 42,48 ----
// ----------------------------------------------------------------------------
cgen_bi_endian_cpu::cgen_bi_endian_cpu ()
{
+ branch_was_return = false;
warnings_enabled = false;
add_attribute ("enable-warnings?", & warnings_enabled, "setting");
this->engine_type = ENGINE_UNKNOWN;