📄 insts.lisp
字号:
(:printer x-19 ((op 31) (xo 4))) (:attributes branch) (:delay 0) :pinned (:emitter (emit-x-form-inst segment 31 (valid-tcond-encoding tcond) (reg-tn-encoding ra) (reg-tn-encoding rb) 4 0))) (define-4-xo-instructions subfc 31 8 :always-writes-xer t) (define-4-xo-instructions addc 31 10 :always-writes-xer t) (define-2-xo-oe-instructions mulhwu 31 11 :cost 5) (define-instruction mfcr (segment rd) (:printer x-4 ((op 31) (xo 19))) (:delay 1) (:dependencies (reads :ccr) (writes rd)) (:emitter (emit-x-form-inst segment 31 (reg-tn-encoding rd) 0 0 19 0))) (define-x-instruction lwarx 31 20) (define-x-instruction lwzx 31 23) (define-2-x-5-instructions slw 31 24) (define-2-x-10-instructions cntlzw 31 26) (define-2-x-5-instructions and 31 28) (define-instruction cmplw (segment crf ra &optional (rb nil rb-p)) (:printer x-14 ((op 31) (xo 32) (l 0)) '(:name :tab bf "," ra "," rb)) (:delay 1) (:dependencies (reads ra) (if rb-p (reads rb) (reads crf)) (reads :xer) (writes :ccr)) (:emitter (unless rb-p (setq rb ra ra crf crf :cr0)) (emit-x-form-inst segment 31 (valid-cr-field-encoding crf) (reg-tn-encoding ra) (reg-tn-encoding rb) 32 0))) (define-4-xo-instructions subf 31 40) ; dcbst (define-x-instruction lwzux 31 55 :other-dependencies ((writes rt))) (define-2-x-5-instructions andc 31 60) (define-2-xo-oe-instructions mulhw 31 75 :cost 5) (define-x-instruction lbzx 31 87) (define-4-xo-a-instructions neg 31 104) (define-x-instruction lbzux 31 119 :other-dependencies ((writes rt))) (define-2-x-5-instructions nor 31 124) (define-4-xo-instructions subfe 31 136 :always-reads-xer t :always-writes-xer t) (define-instruction-macro sube (rt ra rb) `(inst subfe ,rt ,rb ,ra)) (define-instruction-macro sube. (rt ra rb) `(inst subfe. ,rt ,rb ,ra)) (define-instruction-macro subeo (rt ra rb) `(inst subfeo ,rt ,rb ,ra)) (define-instruction-macro subeo. (rt ra rb) `(inst subfeo ,rt ,rb ,ra)) (define-4-xo-instructions adde 31 138 :always-reads-xer t :always-writes-xer t) (define-instruction mtcrf (segment mask rt) (:printer xfx-fxm ((op 31) (xo 144))) (:delay 1) (:dependencies (reads rt) (writes :ccr)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash mask 1) 144 0))) (define-x-5-st-instruction stwcx. 31 150 t :other-dependencies ((writes :ccr))) (define-x-5-st-instruction stwx 31 151 nil) (define-x-5-st-instruction stwux 31 183 nil :other-dependencies ((writes ra))) (define-4-xo-a-instructions subfze 31 200 :always-reads-xer t :always-writes-xer t) (define-4-xo-a-instructions addze 31 202 :always-reads-xer t :always-writes-xer t) (define-x-5-st-instruction stbx 31 215 nil) (define-4-xo-a-instructions subfme 31 232 :always-reads-xer t :always-writes-xer t) (define-4-xo-a-instructions addme 31 234 :always-reads-xer t :always-writes-xer t) (define-4-xo-instructions mullw 31 235 :cost 5) (define-x-5-st-instruction stbux 31 247 nil :other-dependencies ((writes ra))) (define-4-xo-instructions add 31 266) (define-x-instruction lhzx 31 279) (define-2-x-5-instructions eqv 31 284) (define-x-instruction lhzux 31 311 :other-dependencies ((writes ra))) (define-2-x-5-instructions xor 31 316) (define-instruction mfmq (segment rt) (:printer xfx ((op 31) (xo 339) (spr 0)) '(:name :tab rt)) (:delay 1) (:dependencies (reads :xer) (writes rt)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 0 5) 339 0))) (define-instruction mfxer (segment rt) (:printer xfx ((op 31) (xo 339) (spr 1)) '(:name :tab rt)) (:delay 1) (:dependencies (reads :xer) (writes rt)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 1 5) 339 0))) (define-instruction mflr (segment rt) (:printer xfx ((op 31) (xo 339) (spr 8)) '(:name :tab rt)) (:delay 1) (:dependencies (reads :lr) (writes rt)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 8 5) 339 0))) (define-instruction mfctr (segment rt) (:printer xfx ((op 31) (xo 339) (spr 9)) '(:name :tab rt)) (:delay 1) (:dependencies (reads rt) (reads :ctr)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 9 5) 339 0))) (define-x-instruction lhax 31 343) (define-x-instruction lhaux 31 375 :other-dependencies ((writes ra))) (define-x-5-st-instruction sthx 31 407 nil) (define-2-x-5-instructions orc 31 412) (define-x-5-st-instruction sthux 31 439 nil :other-dependencies ((writes ra))) (define-instruction or (segment ra rs rb) (:printer x-5 ((op 31) (xo 444) (rc 0)) '((:cond ((rs :same-as rb) 'mr) (t :name)) :tab ra "," rs (:unless (:same-as rs) "," rb))) (:delay 1) (:cost 1) (:dependencies (reads rb) (reads rs) (writes ra)) (:emitter (emit-x-form-inst segment 31 (reg-tn-encoding rs) (reg-tn-encoding ra) (reg-tn-encoding rb) 444 0))) (define-instruction or. (segment ra rs rb) (:printer x-5 ((op 31) (xo 444) (rc 1)) '((:cond ((rs :same-as rb) 'mr.) (t :name)) :tab ra "," rs (:unless (:same-as rs) "," rb))) (:delay 1) (:cost 1) (:dependencies (reads rb) (reads rs) (writes ra) (writes :ccr)) (:emitter (emit-x-form-inst segment 31 (reg-tn-encoding rs) (reg-tn-encoding ra) (reg-tn-encoding rb) 444 1))) (define-instruction-macro mr (ra rs) `(inst or ,ra ,rs ,rs)) (define-instruction-macro mr. (ra rs) `(inst or. ,ra ,rs ,rs)) (define-4-xo-instructions divwu 31 459 :cost 36) ; This is a 601-specific instruction class. (define-4-xo-instructions div 31 331 :cost 36) ; This is a 601-specific instruction. (define-instruction mtmq (segment rt) (:printer xfx ((op 31) (xo 467) (spr (ash 0 5))) '(:name :tab rt)) (:delay 1) (:dependencies (reads rt) (writes :xer)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 0 5) 467 0))) (define-instruction mtxer (segment rt) (:printer xfx ((op 31) (xo 467) (spr (ash 1 5))) '(:name :tab rt)) (:delay 1) (:dependencies (reads rt) (writes :xer)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 1 5) 467 0))) (define-instruction mtlr (segment rt) (:printer xfx ((op 31) (xo 467) (spr (ash 8 5))) '(:name :tab rt)) (:delay 1) (:dependencies (reads rt) (writes :lr)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 8 5) 467 0))) (define-instruction mtctr (segment rt) (:printer xfx ((op 31) (xo 467) (spr (ash 9 5))) '(:name :tab rt)) (:delay 1) (:dependencies (reads rt) (writes :ctr)) (:emitter (emit-xfx-form-inst segment 31 (reg-tn-encoding rt) (ash 9 5) 467 0))) (define-2-x-5-instructions nand 31 476) (define-4-xo-instructions divw 31 491 :cost 36) (define-instruction mcrxr (segment crf) (:printer x-18 ((op 31) (xo 512))) (:delay 1) (:dependencies (reads :xer) (writes :ccr) (writes :xer)) (:emitter (emit-x-form-inst segment 31 (valid-cr-field-encoding crf) 0 0 512 0))) (define-instruction lswx (segment rs ra rb) (:printer x ((op 31) (xo 533) (rc 0))) (:delay 1) :pinned (:cost 8) (:emitter (emit-x-form-inst sb!assem:segment 31 (reg-tn-encoding rs) (reg-tn-encoding ra) (reg-tn-encoding rb) 533 0))) (define-x-instruction lwbrx 31 534) (define-x-20-instruction lfsx 31 535) (define-2-x-5-instructions srw 31 536) (define-x-20-instruction lfsux 31 567 :other-dependencies ((writes ra))) (define-instruction lswi (segment rt ra rb) (:printer x-1 ((op 31) (xo 597) (rc 0))) :pinned (:delay 8) (:cost 8) (:emitter (emit-x-form-inst sb!assem:segment 31 (reg-tn-encoding rt) (reg-tn-encoding ra) rb 597 0))) (define-instruction sync (segment) (:printer x-27 ((op 31) (xo 598))) (:delay 1) :pinned (:emitter (emit-x-form-inst segment 31 0 0 0 598 0))) (define-x-20-instruction lfdx 31 599) (define-x-20-instruction lfdux 31 631 :other-dependencies ((writes ra))) (define-instruction stswx (segment rs ra rb) (:printer x-5 ((op 31) (xo 661))) :pinned (:cost 8) (:delay 1) (:emitter (emit-x-form-inst sb!assem:segment 31 (reg-tn-encoding rs) (reg-tn-encoding ra) (reg-tn-encoding rb) 661 0))) (define-x-5-st-instruction stwbrx 31 662 nil) (define-x-23-st-instruction stfsx 31 663) (define-x-23-st-instruction stfsux 31 695 :other-dependencies ((writes ra))) (define-instruction stswi (segment rs ra nb) (:printer x-8 ((op 31) (xo 725))) :pinned (:delay 1) (:emitter (emit-x-form-inst segment 31 (reg-tn-encoding rs) (reg-tn-encoding ra) nb 725 0))) (define-x-23-st-instruction stfdx 31 727) (define-x-23-st-instruction stfdux 31 759 :other-dependencies ((writes ra))) (define-x-instruction lhbrx 31 790) (define-2-x-5-instructions sraw 31 792) (define-instruction srawi (segment ra rs rb) (:printer x-9 ((op 31) (xo 824) (rc 0))) (:cost 1) (:delay 1) (:dependencies (reads rs) (writes ra)) (:emitter (emit-x-form-inst segment 31 (reg-tn-encoding rs) (reg-tn-encoding ra) rb 824 0))) (define-instruction srawi. (segment ra rs rb) (:printer x-9 ((op 31) (xo 824) (rc 1))) (:cost 1) (:delay 1) (:dependencies (reads rs) (writes ra) (writes :ccr)) (:emitter (emit-x-form-inst segment 31 (reg-tn-encoding rs) (reg-tn-encoding ra) rb 824 1))) (define-instruction eieio (segment) (:printer x-27 ((op 31) (xo 854))) :pinned (:delay 1) (:emitter (emit-x-form-inst segment 31 0 0 0 854 0))) (define-x-5-st-instruction sthbrx 31 918 nil) (define-2-x-10-instructions extsb 31 954) (define-2-x-10-instructions extsh 31 922) ; Whew. (define-instruction lwz (segment rt ra si) (:declare (type (or fixup (signed-byte 16)) si)) (:printer d ((op 32))) (:delay 2) (:cost 2) (:dependencies (reads ra) (writes rt) (reads :memory)) (:emitter (when (typep si 'fixup) (note-fixup segment :l si) (setq si 0)) (emit-d-form-inst segment 32 (reg-tn-encoding rt) (reg-tn-encoding ra) si))) (define-d-instruction lwzu 33 :other-dependencies ((writes ra))) (define-d-instruction lbz 34) (define-d-instruction lbzu 35 :other-dependencies ((writes ra))) (define-d-rs-instruction stw 36) (define-d-rs-instruction stwu 37 :other-dependencies ((writes ra))) (define-d-rs-instruction stb 38) (define-d-rs-instruction stbu 39 :other-dependencies ((writes ra))) (define-d-instruction lhz 40) (define-d-instruction lhzu 41 :other-dependencies ((writes ra))) (define-d-instruction lha 42) (define-d-instruction lhau 43 :other-dependencies ((writes ra))) (define-d-rs-instruction sth 44) (define-d-rs-instruction sthu 45 :other-dependencies ((writes ra))) (define-d-instruction lmw 46 :pinned t) (define-d-rs-instruction stmw 47 :pinned t) (define-d-frt-instruction lfs 48) (define-d-frt-instruction lfsu 49 :other-dependencies ((writes ra))) (define-d-frt-instruction lfd 50) (define-d-frt-instruction lfdu 51 :other-dependencies ((writes ra))) (define-d-frs-instruction stfs 52) (define-d-frs-instruction stfsu 53 :other-dependencies ((writes ra))) (define-d-frs-instruction stfd 54) (define-d-frs-instruction stfdu 55 :other-dependencies ((writes ra))) (define-2-a-tab-instructions fdivs 59 18 :cost 17) (define-2-a-tab-instructions fsubs 59 20) (define-2-a-tab-instructions fadds 59 21) (define-2-a-tac-instructions fmuls 59 25) (define-2-a-instructions fmsubs 59 28 :cost 4) (define-2-a-instructions fmadds
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -