:
1 68 ?
2 - ?
Power : , , , , , .
, . . , . r r, rD. GPR 31 GPR 0. SIm UIm 32- , .
. :
= (r!0) + d 32 ;
= (r!0) + (r) ;
r, r GPR 31... GPR 1; d 32 32- . GPRO : 0, = d 32 , = (r) . d 32 , r.
. t-adr ( + t-adr).
32- . 32- . , , 32- , 32- t-adr. , 4 8 .
(. 14.1) , . . , SO, EQ, GT, LT CR 0 CR. , OV, SO XER; SO CR 0. addic, addc, adde, addme, addze subfc, subfic, subfe, subfme, subfze XER . addi r = 0 SIm rD, r = /0 r. addis rA = /0 r SIm, , rA = 0 SIm rD.
|
|
14.1
addi(addis) rDrA,SIm add(add., addo, addo.) rDrA,rB addic(addic.) rD,rA,SIm addc(addc., addco, addco.) rD,rA,rB adde(adde., addeo, addeo.) rD,rA,rB addme(addme., addmeo, addmeo.) rD,rA addze(addze., addzeo, addzeo.) rD,rA | rA|O+Slm →rD ( SIm) rA+rB →rD rA+SIm →rD, rA+rB →rD, rA+rB+CA→rD, rA-1+CA → rD, rA+CA → rD, |
subf(subf., subfo, subfo.) rD,rA,rB subfic rD,rA,Slm subfc(subfc., subfco, subfco.) rD,rA,rB subfe(subfe., subfeo, subfeo.) rD,rA,rB subfme(subfme., subfmeo, subfmeo) rD,rA subfze(subfze., subfzeo, subfzeo) rD,rA | -rA+rB →rD -rA+Slm → rD, -rA+rB → rD, -rA+rB+CA → rD, C -rA-1+CA → rD, C -rA+CA → rD, C |
mulli rD,rA,Slm mullw(mullw., mullwo, mullwo) rD,rA,rB mulhw(mulhw.) rD,rA,rB mulhwu(mulhwu.) rD,rA,rB | rA*SIm → rD, 1616 rA*rB → rD, 1616 rA*rB → rD, 3232 rA*rB → rD, 3232 |
divw(divw., divwo, divwo.) rD,rA,rB divwu(divwu., divwuo, divwuo.) rD,rA,rB | rA/rB → rD, 32:32 rA/rB → rD, 32:32 |
neg(neg., nego, negok) rD,rA | -rA → rD |
extsb(exstb.) rA,rS extsh(exsth) rA,rS | rS(.) → rA rS (./) → rA |
. 16- ( mulli, mullw) rD 32- . 32- ( mulhw) ( mulhwu) rD 32 , (r + 1) 32 . 32- ( divw) ( divwu) rD 32- .
neg . extsb rS 32- , rD. extsh 16- ( ) rS.
(. 14.2) , rS, rB (UIm). : , Δ, Δ, -Ͳ, -Ͳ, , , . , . , CR 0 CR. ands., oris., xoris. 16 . cntizw, rS, . rA.
|
|
14.2
andi.(andis.) rA,rS,UIm ori.(oris.) rA,rS,UIm xori.(xoris) rA,rS,UIm | rS ^ UIm →rA, ( UIm) rS v UIm →rA, ( UIm) rS Å UIm →rA, ( UIm) |
and(and.) rA,rS,rB or(or.) rA,rS,rB xor(xor.) rA,rS,rB and(nand.) rA,rS,rB nor(nor.) rA,rS,rB andc(andc.) rA,rS,rB orc(orc.) rA,rS,rB egv(egv.) rA,rS,rB | rS ^ rB →rA rS v rB →rA rS Å rB →rA rS ^ rB →rA rS v rB →rA rS ^ rB →rA rS v rB →rA rS Å rB →rA |
cntizw(cntizw.) rA,rS | 0 rS→rA |
(. 14.3) , rA, rB, (SIm, UIm), . CRi CR. i = 7...2 crdD . 0, R 0. L , 0.
(sew, srw), (sraw, srawi) (rewinm, rewnm, rewimi) rS rA. ʳ Ns, rB. ( sew) ( srw) , , . ( sraw, srawi) .
14.3
cmpi crfD,L,rA,SIm cmp crfD,L,rA,rB cmpli crfD,L,rA,UIm cmpl crfD,L,rA,rB | -rA + Sim ( ) -rA + rB ( ) -rA + Sim ( ) -rA + rB ( ) |
slw(slw.) rA,rS,rB srw(srw.) rA,rS,rB srawi(srwi.) rA,rS,Ns sraw(sraw.) rA,rS,rB | [rS←s(rB)]→rS, [rS→s(rB)]→rA, [rS→s(Ns)]→rA, [rS→s(rB)]→rA, |
riwinm(riwinm.) rA,rS,Ns,Mb,Me riwnm(riwnm.) rA,rS,rB,Mb,Me rlwimi(rlwimi.) rA,rS,Ns,Mb,Me | [rS←r(Ns)] ^ M→rA [rS←r(rB)] ^ M→rA ([rS←r(Ns)] ^ M) v (rA ^ M) →rA |
, M. Mb . b 1, . 0, . rA. rewinm, rewnm rA . rewimi rA , 0.
CR 0 CR . . .
(. 14.4) GPR rD , , (32 ) , rS. , rA rB , rA d 32. ( lbz lbzx) rD . ( lbhz, lnzx) b 15 ( lha, lhax).
|
|
- u, : rA , .
14.4 GPR
lbz(lbzu) rD,d(rA) lbzx(lbzux) rD,rA,rB lhz(lhzu) rD,d(rA) lhzx(lhzux) rD,rA,rB lha(lhau) rD,d(rA) lhax(lhaux) rD,rA,rB lwz(lwzu) rD,d(rA) lwzx(lwzux) rD,rA,rB | (EA)→rD, , (EA→rA) (EA)→rD, , (EA→rA) (EA)→rD, , (EA→rA) (EA)→rD, , (EA→rA) (EA)→rD, , (EA→rA) (EA)→rD, , (EA→rA) (EA)→rD, , (EA→rA) (EA)→rD, , (EA→rA) |
stb(stbu) rS,d(rA) stbx(Stbux) rS,rA,rB sth(sthu) rS,d(rA) sthx(sthux) rS,rA,rB stw(stwu) rS,d(rB) stwx(stwux) rS,rA,rB | rS→(EA), , (EA→rA) rS→(EA), , (EA→rA) rS→(EA), , (EA→rA) rS→(EA), , (EA→rA) rS→(EA), , (EA→rA) rS→(EA), , (EA→rA) |
lhbrx(lwbrx) rD,rA,rB sthbrx(stwbrx) rA,rB | (EA)→rD, (EA)→rD, |
lmw rD,d(rA) stmw rS,d(rA) | (EA)→rD...GPR31, RsGPR31→(EA), |
Lswi(lswx) rD,rA,Nb(rS) stswi(stswx) rS,rA,Nb(rB) | (EA)→rD, rS→(EA), |
lhbrz lwbrz rD . sthbrx, stwbrx rS .
Imw, stmw , rD rS GPR 31. , , . rA , .
lswi, lswx, stswi, stswx n . ʳ Nb ( lswi, stswi) SS R ( lswx, stswx). = (rA) lswi, stswi = (rA!0) + (rB) lswx, stwx. , rD rS. , rA rB , .
, tw, twi, sc rfi (. 14.5). ( b, bl, bc, bcl) .
14.5
b t-adr ba t-adr bl t-adr bla t-adr | PC + (t-adr)→PC (t-adr)→PC PC→LR, PC + (t-adr)→PC PC→LR, (t-adr)→PC |
bc BO,BI,t-adr bca BO,BI,t-adr bcl BO,BI,t-adr bcla BO,BI,t-adr | PC + (t-adr)→PC, = CRi (t-adr)→PC, = CRi PC→LR, PC + (t-adr)→PC, BO = CRi PC→LR, (t-adr)→PC, = Ri |
bclr BO,BI bclrl BO,BI bcctr BO,BI bcctrl BO,BI | LR→PC, BO = CRi PC→LR, BO = CRi CTR→PC, BO = CRi PC→LR, CTR→PC, BO = CRi |
twi TO,rA,SIm tw TO,rA,rB | -rA+Slm, TO, o PC, MSR→SRRO, SRR 1, Ve→PC -rA+rB, TO, o PC, MSR→SRRO, SRR 1, Ve→PC |
sc *rfi | PC, MSR→SSRO, SRR 1, Ve→PC SSRO, SRR 1 →PC, MSR |
|
|
t-adr , . l ( bl, bla, bcl, bcla), LR , . bc, bca, bcl, bcla . CRi CR BO. , , ². CRi , ( bca, bcla) ( b, bcl) . . bcl, bcla, LR , . bclr, bclrl , CRi. LR. bcrfri LR .
bcctr, bcctri R; = Cri, bctrd LR.
, 1 . U . . U .
tw, twi . MSR SRQO SRR 1. CRO, rA SIm ( twi) rB ( tw), 4- . , 1 CRO . rA, rB SIm . sc . rfi , SRR 0, SRR 1 MSR, . .
CR. , . 14.6. mtcrd CR rS, 32- cr, . CR . mfcr CR rD. mcrxr XER ( SO, OV, CA) CRi CR, crft. ϳ SO, OV, CA XER . mcrf CRi CRj, i, j crfS crfD. bi, bj CR i, j , crbA crbB, bk, k crbD.
|
|
crand , cror AΔ, crxor Δ, crnand A-HI, cregv , crande , crorc .
14.6 , CR
mtcrf Mcr,rS mfcr rD mcrxr crfD mcrf crfD,crfS | rS ^ Mcr→CR CR→rD XER( 3 -0) →CRi Cri→CRj |
crand crbD,crbA,crbB cror crbD,crbA,crbB crxor crbD,crbA,crbB cmand crbD,crbA,crbB crnor crbD,crbA,crbB cregv crbD,crbA,crbB crandc crbD,crbA,crbB crorc crbD,crbA,crbB | bi ^ bj→bk bi v bj→bk bi Å bj→bk bi ^ bj→bk bi v bj→bk bi Å bj→bk bi ^ bj→bk bi v bj→bk |
sync, isync, cicio . sync , , . isync , , , , . cicio , . , , . cicio , , , . cciwx cowx . isync, cicio .
2002 Motorola RISC -: 7455, 11- . ֳ . 7455 1000 , 21,3 . 1,6 , - 2,5 . ̳ 1- ( 32 ) 2- 256 . ̳ 7455, 740, 750 , SIMD, .
:
1 RISC -?
2 604?
3 604?
4 RISC- Power?
:
1 604 ?
2 GPR 1, GPR 2 GPR 30 $12345678, $ ABCDH, $EF.
3 , , GPR 10.