X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fconfig%2F1750a%2Fms1750.inc;h=cb41e95b649beb603f61b5b07d4174a5c53a3929;hp=da2f5a57871020f37eac4625a194fa7434a6f204;hb=9538a3a5d0c66556b19db3aff7e08651d3736ae5;hpb=dff55d3a81b0faf5387cf7bc266b8a91e5574566 diff --git a/gcc/config/1750a/ms1750.inc b/gcc/config/1750a/ms1750.inc index da2f5a57871..cb41e95b649 100644 --- a/gcc/config/1750a/ms1750.inc +++ b/gcc/config/1750a/ms1750.inc @@ -112,3 +112,47 @@ HI SET `1` + 2 POPM R10,R13 ENDMACRO + +; Double Unsigned Compare Register with register + + MACRO DUCR.M + PSHM R13,R14 ; R13 and R14 are assumed not to be input parameters +LOW1 SET `1` + 1 +LOW2 SET `2` + 1 + PSHM R`1`,R`LOW1` + PSHM R`2`,R`LOW2` + LR R13,R`LOW1` + LR R14,R`LOW2` + DSRL R`1`,1 + DSRL R`2`,1 + DCR R`1`,R`2` + BNE +6 + ANDM R13,1 + ANDM R14,1 + CR R13,R14 + POPM R`2`,R`LOW2` + POPM R`1`,R`LOW1` + POPM R13,R14 + ENDMACRO + + +; Double Unsigned Compare register with memory + + MACRO DUC.M + PSHM R13,R14 ; R13 and R14 are assumed not to be input parameters +LOW1 SET `1` + 1 + PSHM R`1`,R`LOW1` + DL R13,`2` + DSRL R`1`,1 + DSRL R13,1 + DCR R`1`,R13 + BNE +10 ; done, go pop the saved regs + DL R13,`2` ; interested in the *low* word (R14) + L R13,1,R15 + ANDM R13,1 + ANDM R14,1 + CR R13,R14 + POPM R`1`,R`LOW1` + POPM R13,R14 + ENDMACRO +