📄 ns32k.md
字号:
(const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"bfs %l0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"bfc %l0\"; else return \"bne %l0\";}")(define_insn "bgt" [(set (pc) (if_then_else (gt (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "bgt %l0")(define_insn "bgtu" [(set (pc) (if_then_else (gtu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "bhi %l0")(define_insn "blt" [(set (pc) (if_then_else (lt (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "blt %l0")(define_insn "bltu" [(set (pc) (if_then_else (ltu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "blo %l0")(define_insn "bge" [(set (pc) (if_then_else (ge (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "bge %l0")(define_insn "bgeu" [(set (pc) (if_then_else (geu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "bhs %l0")(define_insn "ble" [(set (pc) (if_then_else (le (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "ble %l0")(define_insn "bleu" [(set (pc) (if_then_else (leu (cc0) (const_int 0)) (label_ref (match_operand 0 "" "")) (pc)))] "" "bls %l0")(define_insn "" [(set (pc) (if_then_else (eq (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"bfs %l0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"bfc %l0\"; else return \"bne %l0\";}")(define_insn "" [(set (pc) (if_then_else (ne (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"bfc %l0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"bfs %l0\"; else return \"beq %l0\";}")(define_insn "" [(set (pc) (if_then_else (gt (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "ble %l0")(define_insn "" [(set (pc) (if_then_else (gtu (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "bls %l0")(define_insn "" [(set (pc) (if_then_else (lt (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "bge %l0")(define_insn "" [(set (pc) (if_then_else (ltu (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "bhs %l0")(define_insn "" [(set (pc) (if_then_else (ge (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "blt %l0")(define_insn "" [(set (pc) (if_then_else (geu (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "blo %l0")(define_insn "" [(set (pc) (if_then_else (le (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "bgt %l0")(define_insn "" [(set (pc) (if_then_else (leu (cc0) (const_int 0)) (pc) (label_ref (match_operand 0 "" ""))))] "" "bhi %l0");; Subtract-and-jump and Add-and-jump insns.;; These can actually be used for adding numbers in the range -8 to 7(define_insn "" [(set (pc) (if_then_else (ne (minus:SI (match_operand:SI 0 "general_operand" "+g") (match_operand:SI 1 "general_operand" "i")) (const_int 0)) (label_ref (match_operand 2 "" "")) (pc))) (set (match_dup 0) (minus:SI (match_dup 0) (match_dup 1)))] "GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) > -8 && INTVAL (operands[1]) <= 8" "acbd %$%n1,%0,%l2")(define_insn "" [(set (pc) (if_then_else (ne (plus:SI (match_operand:SI 0 "general_operand" "+g") (match_operand:SI 1 "general_operand" "i")) (const_int 0)) (label_ref (match_operand 2 "" "")) (pc))) (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 1)))] "GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) >= -8 && INTVAL (operands[1]) < 8" "acbd %1,%0,%l2");; Reversed(define_insn "" [(set (pc) (if_then_else (eq (minus:SI (match_operand:SI 0 "general_operand" "+g") (match_operand:SI 1 "general_operand" "i")) (const_int 0)) (pc) (label_ref (match_operand 2 "" "")))) (set (match_dup 0) (minus:SI (match_dup 0) (match_dup 1)))] "GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) > -8 && INTVAL (operands[1]) <= 8" "acbd %$%n1,%0,%l2")(define_insn "" [(set (pc) (if_then_else (eq (plus:SI (match_operand:SI 0 "general_operand" "+g") (match_operand:SI 1 "general_operand" "i")) (const_int 0)) (pc) (label_ref (match_operand 2 "" "")))) (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 1)))] "GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) >= -8 && INTVAL (operands[1]) < 8" "acbd %1,%0,%l2")(define_insn "call" [(call (match_operand:QI 0 "general_operand" "g") (match_operand:QI 1 "general_operand" "g"))] "" "*{#ifndef JSR_ALWAYS if (GET_CODE (operands[0]) == MEM) { rtx temp = XEXP (operands[0], 0); if (CONSTANT_ADDRESS_P (temp)) {#ifdef GAS_SYNTAX operands[0] = temp; return \"bsr %0\";#else#ifdef GNX_V3 return \"bsr %0\";#else return \"bsr %?%a0\";#endif#endif } if (GET_CODE (XEXP (operands[0], 0)) == REG)#if defined(GNX_V3) || defined(GAS_SYNTAX) return \"jsr %0\";#else return \"jsr %a0\";#endif }#endif /* not JSR_ALWAYS */ return \"jsr %0\";}")(define_insn "call_value" [(set (match_operand 0 "" "=fg") (call (match_operand:QI 1 "general_operand" "g") (match_operand:QI 2 "general_operand" "g")))] "" "*{#ifndef JSR_ALWAYS if (GET_CODE (operands[1]) == MEM) { rtx temp = XEXP (operands[1], 0); if (CONSTANT_ADDRESS_P (temp)) {#ifdef GAS_SYNTAX operands[1] = temp; return \"bsr %1\";#else#ifdef GNX_V3 return \"bsr %1\";#else return \"bsr %?%a1\";#endif#endif } if (GET_CODE (XEXP (operands[1], 0)) == REG)#if defined(GNX_V3) || defined(GAS_SYNTAX) return \"jsr %1\";#else return \"jsr %a1\";#endif }#endif /* not JSR_ALWAYS */ return \"jsr %1\";}")(define_insn "return" [(return)] "0" "ret 0")(define_insn "abssf2" [(set (match_operand:SF 0 "general_operand" "=fm<") (abs:SF (match_operand:SF 1 "general_operand" "fmF")))] "TARGET_32081" "absf %1,%0")(define_insn "absdf2" [(set (match_operand:DF 0 "general_operand" "=fm<") (abs:DF (match_operand:DF 1 "general_operand" "fmF")))] "TARGET_32081" "absl %1,%0")(define_insn "abssi2" [(set (match_operand:SI 0 "general_operand" "=g<") (abs:SI (match_operand:SI 1 "general_operand" "rmn")))] "" "absd %1,%0")(define_insn "abshi2" [(set (match_operand:HI 0 "general_operand" "=g<") (abs:HI (match_operand:HI 1 "general_operand" "g")))] "" "absw %1,%0")(define_insn "absqi2" [(set (match_operand:QI 0 "general_operand" "=g<") (abs:QI (match_operand:QI 1 "general_operand" "g")))] "" "absb %1,%0")(define_insn "nop" [(const_int 0)] "" "nop");;(define_insn "tablejump";; [(set (pc);; (plus:SI (match_operand:SI 0 "general_operand" "g");; (pc)))];; "";; "cased %0")(define_insn "tablejump" [(set (pc) (plus:SI (pc) (match_operand:HI 0 "general_operand" "g"))) (use (label_ref (match_operand 1 "" "")))] "" "*{ ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LI\", CODE_LABEL_NUMBER (operands[1])); return \"casew %0\";}");;(define_insn "";; [(set (pc);; (plus:SI (match_operand:QI 0 "general_operand" "g");; (pc)))];; "";; "caseb %0");; Scondi instructions(define_insn "seq" [(set (match_operand:SI 0 "general_operand" "=g<") (eq (cc0) (const_int 0)))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"sfcd %0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"sfsd %0\"; else return \"seqd %0\";}")(define_insn "" [(set (match_operand:HI 0 "general_operand" "=g<") (eq (cc0) (const_int 0)))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"sfcw %0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"sfsw %0\"; else return \"seqw %0\";}")(define_insn "" [(set (match_operand:QI 0 "general_operand" "=g<") (eq (cc0) (const_int 0)))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"sfcb %0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"sfsb %0\"; else return \"seqb %0\";}")(define_insn "sne" [(set (match_operand:SI 0 "general_operand" "=g<") (ne (cc0) (const_int 0)))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"sfsd %0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"sfcd %0\"; else return \"sned %0\";}")(define_insn "" [(set (match_operand:HI 0 "general_operand" "=g<") (ne (cc0) (const_int 0)))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"sfsw %0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"sfcw %0\"; else return \"snew %0\";}")(define_insn "" [(set (match_operand:QI 0 "general_operand" "=g<") (ne (cc0) (const_int 0)))] "" "*{ if (cc_prev_status.flags & CC_Z_IN_F) return \"sfsb %0\"; else if (cc_prev_status.flags & CC_Z_IN_NOT_F) return \"sfcb %0\"; else return \"sneb %0\";}")(define_insn "sgt" [(set (match_operand:SI 0 "general_operand" "=g<") (gt (cc0) (const_int 0)))] "" "sgtd %0")(define_insn "" [(set (match_operand:HI 0 "general_operand" "=g<") (gt (cc0) (const_int 0)))] "" "sgtw %0")(define_insn "" [(set (match_operand:QI 0 "general_operand" "=g<") (gt (cc0) (const_int 0)))] "" "sgtb %0")(define_insn "sgtu" [(set (match_operand:SI 0 "general_operand" "=g<") (gtu (cc0) (const_int 0)))] "" "shid %0")(define_insn "" [(set (match_operand:HI 0 "general_operand" "=g<") (gtu (cc0) (const_int 0)))] "" "shiw %0")(define_insn "" [(set (match_operand:QI 0 "general_operand" "=g<") (gtu (cc0) (const_int 0)))] "" "shib %0")(define_insn "slt" [(set (match_operand:SI 0 "general_operand" "=g<") (lt (cc0) (const_int 0)))] "" "sltd %0")(define_insn "" [(set (match_operand:HI 0 "general_operand" "=g<") (lt (cc0) (const_int 0)))]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -