This is the mail archive of the
cgen@sourceware.org
mailing list for the CGEN project.
dni format description
- From: Petronela Agache <petronela dot silvia at gmail dot com>
- To: cgen at sourceware dot org, cgen at sources dot redhat dot com
- Date: Thu, 5 Aug 2010 11:23:07 +0300
- Subject: dni format description
Hello,
My name is Petronela, i would like to get more info about the format
field from pmacros. For example the following insn is used in
m32r.cpu:
(dni addx "addx"
((PIPE OS) (IDOC ALU))
"addx $dr,$sr"
(+ OP1_0 OP2_9 dr sr)
(parallel ()
(set dr (addc dr sr condbit))
(set condbit (add-cflag dr sr condbit)))
()
)
What (+ OP1_0 OP2_9 dr sr) means ? OP1_* and OP2_* are defined in the
following way:
(define-normal-insn-enum insn-op1 "insn format enums" () OP1_ f-op1
("0" "1" "2" "3" "4" "5" "6" "7"
"8" "9" "10" "11" "12" "13" "14" "15")
)
(define-normal-insn-enum insn-op2 "op2 enums" () OP2_ f-op2
("0" "1" "2" "3" "4" "5" "6" "7"
"8" "9" "10" "11" "12" "13" "14" "15")
)
My understanding is that destination register is always R0 and source
register is always R9 for this type of insn. Is this correct ? Does
this not restrict the hardware usage ? Since this insn can be executed
on all R* registers.
Thank you