(define_insn "" [(set (match_operand:HI 0 "push_operand" "=<") (match_operand:HI 1 "memory_operand" "m"))] "" "push word %1" ) (define_insn "" [(set (match_operand:HI 0 "push_operand" "=<,<") (match_operand:HI 1 "nonmemory_operand" "r,i"))] "" "@ push %1 push word %1" ) (define_expand "movqi" [(set (match_operand:QI 0 "general_operand" "") (match_operand:QI 1 "general_operand" ""))] "" " { /* Don't generate memory->memory moves, go through a register */ if ((reload_in_progress | reload_completed) == 0 && GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM) { operands[1] = force_reg (QImode, operands[1]); } }") (define_insn "" [(set (match_operand:QI 0 "general_operand" "=q,m,m") (match_operand:QI 1 "general_operand" "g,q,n"))] "(GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)" "@ mov %L0,%L1 mov %L0,%L1 mov byte %L0,%L1" ) (define_insn "" [(set (match_operand:QI 0 "general_operand" "=q") (match_operand:HI 1 "general_operand" "q"))] "" "mov %L0,%L1" ) (define_expand "movhi" [(set (match_operand:HI 0 "general_operand" "") (match_operand:HI 1 "general_operand" ""))] "" " { /* Don't generate memory->memory moves, go through a register */ if ((reload_in_progress | reload_completed) == 0 && GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM) { operands[1] = force_reg (HImode, operands[1]); } }") (define_insn "" [(set (match_operand:HI 0 "general_operand" "=r,m,m") (match_operand:HI 1 "general_operand" "g,r,i"))] "(GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)" "@ mov %0,%1 mov %0,%1 mov word %0,%1" ) (define_insn "addhi3" [(set (match_operand:HI 0 "general_operand" "=r,rm") (plus:HI (match_operand:HI 1 "general_operand" "0,0") (match_operand:HI 2 "general_operand" "rm,ri")))] "" "add %0,%2" ) (define_insn "subhi3" [(set (match_operand:HI 0 "general_operand" "=r,rm") (minus:HI (match_operand:HI 1 "general_operand" "0,0") (match_operand:HI 2 "general_operand" "rm,ri")))] "" "sub %0,%2" ) (define_insn "mulhi3" [(set (match_operand:HI 0 "general_operand" "=a") (mult:HI (match_operand:HI 1 "general_operand" "a") (match_operand:HI 2 "general_operand" "rm"))) (clobber (match_scratch:HI 3 "=&d"))] "" "imul word %2" ) (define_insn "divhi3" [(set (match_operand:HI 0 "general_operand" "=a") (div:HI (match_operand:HI 1 "general_operand" "a") (match_operand:HI 2 "general_operand" "rm"))) (clobber (match_scratch:HI 3 "=&d"))] "" "xor dx,dx\;idiv word %2" ) (define_insn "modhi3" [(set (match_operand:HI 0 "general_operand" "=&d") (mod:HI (match_operand:HI 1 "general_operand" "a") (match_operand:HI 2 "general_operand" "rm"))) (clobber (match_scratch:HI 3 "=a"))] "" "xor dx,dx\;idiv word %2" ) (define_insn "udivhi3" [(set (match_operand:HI 0 "general_operand" "=a") (udiv:HI (match_operand:HI 1 "general_operand" "a") (match_operand:HI 2 "general_operand" "rm"))) (clobber (match_scratch:HI 3 "=&d"))] "" "xor dx,dx\;div word %2" ) (define_insn "umodhi3" [(set (match_operand:HI 0 "general_operand" "=&d") (umod:HI (match_operand:HI 1 "general_operand" "a") (match_operand:HI 2 "general_operand" "rm"))) (clobber (match_scratch:HI 3 "=a"))] "" "xor dx,dx\;div word %2" ) (define_insn "neghi2" [(set (match_operand:HI 0 "general_operand" "=rm") (not:HI (match_operand:HI 1 "general_operand" "0")))] "" "neg %0" ) (define_insn "one_cmplhi2" [(set (match_operand:HI 0 "general_operand" "=rm") (neg:HI (match_operand:HI 1 "general_operand" "0")))] "" "not %0" ) (define_insn "andhi3" [(set (match_operand:HI 0 "general_operand" "=r,rm") (and:HI (match_operand:HI 1 "general_operand" "0,0") (match_operand:HI 2 "general_operand" "rm,ri")))] "" "and %0,%2" ) (define_insn "iorhi3" [(set (match_operand:HI 0 "general_operand" "=r,rm") (ior:HI (match_operand:HI 1 "general_operand" "0,0") (match_operand:HI 2 "general_operand" "rm,ri")))] "" "or %0,%2" ) (define_insn "xorhi3" [(set (match_operand:HI 0 "general_operand" "=r,rm") (xor:HI (match_operand:HI 1 "general_operand" "0,0") (match_operand:HI 2 "general_operand" "rm,ri")))] "" "xor %0,%2" ) (define_insn "ashlhi3" [(set (match_operand:HI 0 "general_operand" "=rm,=rm") (ashift:HI (match_operand:HI 1 "general_operand" "0,0") (match_operand:QI 2 "general_operand" "I,c")))] "" "sal %0,%L2" ) (define_insn "cmphi" [(set (cc0) (compare (match_operand:HI 0 "general_operand" "r,rm") (match_operand:HI 1 "general_operand" "rm,ri")))] "" "cmp %0,%1" ) (define_insn "extendqihi2" [(set (match_operand:HI 0 "register_operand" "=a,q,r") (sign_extend:HI (match_operand:QI 1 "register_operand" "0,0,0")))] "" "@ cbw xor %H0,%H0 and %0,0xff" ) (define_insn "beq" [(set (pc) (if_then_else (eq (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "je %l0") (define_insn "bne" [(set (pc) (if_then_else (ne (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jne %l0") (define_insn "bgt" [(set (pc) (if_then_else (gt (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jg %l0") (define_insn "bgtu" [(set (pc) (if_then_else (gtu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "ja %l0") (define_insn "blt" [(set (pc) (if_then_else (lt (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jl %l0") (define_insn "bltu" [(set (pc) (if_then_else (ltu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jb %l0") (define_insn "bge" [(set (pc) (if_then_else (ge (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jge %l0") (define_insn "bgeu" [(set (pc) (if_then_else (geu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jae %l0") (define_insn "ble" [(set (pc) (if_then_else (le (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jle %l0") (define_insn "bleu" [(set (pc) (if_then_else (leu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "jbe %l0") (define_insn "call" [(call (match_operand:QI 0 "indirect_operand" "") (match_operand 1 "general_operand" ""))] "" "call %P0" ) (define_insn "" [(set (match_operand:HI 0 "" "") (call (match_operand:QI 1 "general_operand" "rm") (match_operand 2 "general_operand" "")))] "" "call %P1" ) (define_insn "call_value" [(set (match_operand:HI 0 "" "") (call (match_operand:QI 1 "indirect_operand" "") (match_operand 2 "general_operand" "")))] "" "call %P1" ) (define_insn "nop" [(const_int 0)] "" "nop") (define_insn "jump" [(set (pc) (label_ref (match_operand 0 "" "")))] "" "jmp %0" ) (define_insn "indirect_jump" [(set (pc) (match_operand:HI 0 "general_operand" "rm"))] "" "jmp [%0]" )