- 论坛徽章:
- 0
|
回复 #2 cjaizss 的帖子
i386.md里有这样的指令定义:
(define_insn "addhi3_carry"
[(set (match_operand:HI 0 "nonimmediate_operand" "=rm,r")
(plus:HI (plus:HI (match_operand:HI 3 "ix86_carry_flag_operator" "")
(match_operand:HI 1 "nonimmediate_operand" "%0,0"))
(match_operand:HI 2 "general_operand" "ri,rm")))
(clobber (reg:CC FLAGS_REG))]
"ix86_binary_operator_ok (PLUS, HImode, operands)"
"adc{w}\t{%2, %0|%0, %2}"
[(set_attr "type" "alu")
(set_attr "pent_pair" "pu")
(set_attr "mode" "HI")])
(
我想知道, 在我们写汇编代码时,如何能使gcc使用这个定义? 现在想做个实验,真是太困难了:
就是让gcc智能的判断, 加法(乘法)等符合交换律的指令, 我不介意结果写到哪里, 但是如果它发现交换两个操作数会更高效,那么就交换一下。 |
|