This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Condition Code Status, cc_status
- To: gcc at gcc dot gnu dot org, "Martin v. Loewis" <martin at loewis dot home dot cs dot tu-berlin dot de>
- Subject: Condition Code Status, cc_status
- From: Mueller-Lehnitz at t-online dot de (Anja Müller)
- Date: Sun, 02 Jan 2000 14:21:13 +0100
Hi,
Innerhalb der Definition der Maschinen Macros beschaeftige ich mich
gerade mit dem Condition Code Status. Doch ich weiss nicht so richtig,
was das Makro NOTICE_UPDATE_CC aussagen soll. Aus anderen
Maschinenbeschreibungen konnte ich ersehen, dass hier die Variable
cc_status, bzw. ihre Komponenten cc_status.value1, cc_status.value2 und
cc_status.flags auf irgendwelche Werte gesetzt werden, abhaengig von der
aktuellen Instruktion.
Was bedeuten diese Komponenten ?
In der GCC-Source-Code-Datei condition.h wird nur gesagt, dass in den
Komponenten value1 und value2 zwei gleiche RTL-Ausdruecke gespeichert
werden. Was heisst das genau ?
In den Maschinenbeschreibungen, die ich mir angesehen habe (-> i386.h,
pdp11.h), wird value1 meist auf SET_SRC(exp) und value2 auf
SET_DEST(exp) gesetzt. Warum ?
Warum werden value1 und value2 unter bestimmten Bedingungen oft wieder
auf 0 gesetzt ?
Wofuer muss ich das Makro CC_STATUS_MDEP definieren ?
Muss ich von cc_status.flags die verschiedenen Flags (CC_REVERSED,
CC_NOT_POSITIVE, ...) beruecksichtigen ?
Wo werden denn die einzelnen Status-Bits des Stausregisters meiner
spezifischen Zielmaschine, wie z.B. Overflow, Carry, Zero, Parity ...,
repraesentiert ?
Wie wird der Condition Code Status z.B. bei bedingten (conditional)
Jump-Instruktionen abgefragt ? Muss ich das in den Instruction Patterns
oder sonst irgendwo beachten ?
Ich hoffe, das sie mir einige dieser Fragen beantworten koennen. Vielen
Dank!
Anja