On 24-Nov-12, at 9:19 PM, Steven Bosscher wrote:

+;; This machine description is inspired by sparc.md and (to a lesser
+;; extend) mips.md.

Change "extend" to "extent".  Don't need parentheses.

+
+;; Possible improvements, if anyone is still interested in working on
+;; improving this machine description in 2012:

Please remove the "if anyone ..." part.

+;;
+;; * With PA2.0, most computational instructions can conditionally nullify +;; the execution of the following instruction. Nullification is performed

Add statement to effect that nullification is a very efficient for
it does not cause the instruction pipeline to stall.

+;; conditionally based on the outcome of a test specified in the opcode. +;; The test result is stored in PSW[N] and can only be used to nullify the
+;;   instruction following immediately after the test.  For example:
+;;
+;;     ldi 10,%r26                     ldi 10,%r26
+;;     ldi 5,%r25                      ldi 5,%r25
+;;     sub,< %r26,%r25,%r28         sub,> %r26,%r25,%r28
+;;     sub   %r28,%r25,%r28            sub   %r28,%r25,%r28
+;;     ; %r28 == 0                     ; %r28 == 5

Find the parallel layout somewhat confusing.  Maybe we just need one.

+;;
+;; This could be tricky to implement because the result of the test has +;; to be propagated one instruction forward, which, in the worst case, +;; would involve (1) adding a fake register for PSW[N]; (2) adding the +;; variants of the computational instructions that set or consume this +;; fake register. The cond_exec infrastructure is probably not helpful
+;;   for this.
+;;

Another improvement might be to implement the static branch prediction
hints for conditional branches (Section I-3 in PA-RISC 2.0 Architecture).


;;- See file "rtl.def" for documentation on define_insn, match_*, et. al.



Dave
--
John David Anglin       dave.ang...@bell.net



Reply via email to