55 * Copyright: Copyright (C) 1984-1998 by Symantec
66 * Copyright (c) 2000-2017 by Digital Mars, All Rights Reserved
77 * Authors: $(LINK2 http://www.digitalmars.com, Walter Bright)
8- * License: Distributed under the Boost Software License, Version 1.0.
9- * http://www.boost.org/LICENSE_1_0.txt
10- * Source: https://github.com/dlang/dmd/blob/master/src/ddmd/backend/cod1.c
8+ * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
9+ * Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/ddmd/backend/cod1.c, backend/cod1.c)
1110 */
1211
1312#if !SPP
@@ -373,7 +372,7 @@ void genstackclean(CodeBuilder& cdb,unsigned numpara,regm_t keepmsk)
373372 !config .windows &&
374373 !(regcon .mvar & fregsaved ) // and no registers will be pushed
375374 )
376- cdb . append ( genregs (CNIL ,0x89 ,BP ,SP ) ); // MOV SP,BP
375+ genregs (cdb ,0x89 ,BP ,SP ); // MOV SP,BP
377376 else
378377#endif
379378 { regm_t scratchm = 0 ;
@@ -668,7 +667,7 @@ void loadea(CodeBuilder& cdb,elem *e,code *cs,unsigned op,unsigned reg,targ_size
668667 code_orrex (cdb .last (), REX_W );
669668 }
670669 else if (reg == 6 ) // if DIV
671- cdb . append ( genregs (CNIL ,0x33 ,DX ,DX ) ); // XOR DX,DX
670+ genregs (cdb ,0x33 ,DX ,DX ); // XOR DX,DX
672671 }
673672
674673 // Eliminate MOV reg,reg
@@ -1024,7 +1023,7 @@ void getlvalue(CodeBuilder& cdb,code *pcs,elem *e,regm_t keepmsk)
10241023 allocreg (cdb ,& idxregs ,& msreg ,TYfptr );
10251024 msreg = findregmsw (idxregs );
10261025 /* MOV msreg,segreg */
1027- cdb . append ( genregs (CNIL ,0x8C ,segfl [f ],msreg ) );
1026+ genregs (cdb ,0x8C ,segfl [f ],msreg );
10281027 }
10291028 opsave = pcs -> Iop ;
10301029 flagsave = pcs -> Iflags ;
@@ -1521,7 +1520,7 @@ void tstresult(CodeBuilder& cdb,regm_t regm,tym_t tym,unsigned saveflag)
15211520 if (sz == 1 )
15221521 {
15231522 assert (regm & BYTEREGS );
1524- cdb . append ( genregs (CNIL ,0x84 ,reg ,reg ) ); // TEST regL,regL
1523+ genregs (cdb ,0x84 ,reg ,reg ); // TEST regL,regL
15251524 if (I64 && reg >= 4 )
15261525 code_orrex (cdb .last (), REX );
15271526 return ;
@@ -1562,14 +1561,14 @@ void tstresult(CodeBuilder& cdb,regm_t regm,tym_t tym,unsigned saveflag)
15621561 cdb .gen2 (0xD1 ,modregrmx (3 ,4 ,reg )); // SHL reg,1
15631562 return ;
15641563 }
1565- cdb . append ( gentstreg (CNIL ,reg ) ); // TEST reg,reg
1564+ gentstreg (cdb ,reg ); // TEST reg,reg
15661565 if (sz == SHORTSIZE )
15671566 cdb .last ()-> Iflags |= CFopsize ; // 16 bit operands
15681567 else if (sz == 8 )
15691568 code_orrex (cdb .last (), REX_W );
15701569 }
15711570 else
1572- cdb . append ( gentstreg (CNIL ,reg ) ); // TEST reg,reg
1571+ gentstreg (cdb ,reg ); // TEST reg,reg
15731572 return ;
15741573 }
15751574
@@ -1585,7 +1584,7 @@ void tstresult(CodeBuilder& cdb,regm_t regm,tym_t tym,unsigned saveflag)
15851584 if (I32 )
15861585 {
15871586 if (tyfv (tym ))
1588- cdb . append ( genregs (CNIL ,0x0FB7 ,scrreg ,reg ) ); // MOVZX scrreg,msreg
1587+ genregs (cdb ,0x0FB7 ,scrreg ,reg ); // MOVZX scrreg,msreg
15891588 else
15901589 { cdb .append (genmovreg (CNIL ,scrreg ,reg )); // MOV scrreg,msreg
15911590 if (tym == TYdouble || tym == TYdouble_alias )
@@ -1599,17 +1598,17 @@ void tstresult(CodeBuilder& cdb,regm_t regm,tym_t tym,unsigned saveflag)
15991598 cdb .gen2 (0xD1 ,modregrm (3 ,4 ,scrreg )); // SHL scrreg,1
16001599 }
16011600 reg = findreglsw (regm );
1602- cdb . append ( genorreg (CNIL ,scrreg ,reg ) ); // OR scrreg,lsreg
1601+ genorreg (cdb ,scrreg ,reg ); // OR scrreg,lsreg
16031602 }
16041603 else if (sz == 8 )
16051604 {
16061605 // !I32
16071606 cdb .append (genmovreg (CNIL ,scrreg ,AX )); // MOV scrreg,AX
16081607 if (tym == TYdouble || tym == TYdouble_alias )
16091608 cdb .gen2 (0xD1 ,modregrm (3 ,4 ,scrreg )); // SHL scrreg,1
1610- cdb . append ( genorreg (CNIL ,scrreg ,BX ) ); // OR scrreg,BX
1611- cdb . append ( genorreg (CNIL ,scrreg ,CX ) ); // OR scrreg,CX
1612- cdb . append ( genorreg (CNIL ,scrreg ,DX ) ); // OR scrreg,DX
1609+ genorreg (cdb ,scrreg ,BX ); // OR scrreg,BX
1610+ genorreg (cdb ,scrreg ,CX ); // OR scrreg,CX
1611+ genorreg (cdb ,scrreg ,DX ); // OR scrreg,DX
16131612 }
16141613 else
16151614 assert (0 );
@@ -1625,7 +1624,7 @@ void tstresult(CodeBuilder& cdb,regm_t regm,tym_t tym,unsigned saveflag)
16251624 getregs (cdb ,mask [reg ]); // we're going to trash reg
16261625 if (tyfloating (tym ) && sz == 2 * intsize )
16271626 cdb .gen2 (0xD1 ,modregrm (3 ,4 ,reg )); // SHL reg,1
1628- cdb . append ( genorreg (CNIL ,reg ,findreglsw (regm ) )); // OR reg,reg+1
1627+ genorreg (cdb ,reg ,findreglsw (regm )); // OR reg,reg+1
16291628 if (I64 )
16301629 code_orrex (cdb .last (), REX_W );
16311630 }
@@ -1634,9 +1633,9 @@ void tstresult(CodeBuilder& cdb,regm_t regm,tym_t tym,unsigned saveflag)
16341633 getregs (cdb ,mAX ); // allocate AX
16351634 if (tym == TYdouble || tym == TYdouble_alias )
16361635 cdb .gen2 (0xD1 ,modregrm (3 ,4 ,AX )); // SHL AX,1
1637- cdb . append ( genorreg (CNIL ,AX ,BX ) ); // OR AX,BX
1638- cdb . append ( genorreg (CNIL ,AX ,CX ) ); // OR AX,CX
1639- cdb . append ( genorreg (CNIL ,AX ,DX ) ); // OR AX,DX
1636+ genorreg (cdb ,AX ,BX ); // OR AX,BX
1637+ genorreg (cdb ,AX ,CX ); // OR AX,CX
1638+ genorreg (cdb ,AX ,DX ); // OR AX,DX
16401639 }
16411640 else
16421641 assert (0 );
@@ -3853,7 +3852,7 @@ void pushParams(CodeBuilder& cdb,elem *e,unsigned stackalign)
38533852 regm_t retregs = allregs ;
38543853 unsigned reg ;
38553854 allocreg (cdb ,& retregs ,& reg ,TYoffset );
3856- cdb . append ( genregs (CNIL ,0x89 ,SP ,reg ) ); // MOV reg,SP
3855+ genregs (cdb ,0x89 ,SP ,reg ); // MOV reg,SP
38573856 if (I64 )
38583857 code_orrex (cdb .last (), REX_W );
38593858 unsigned np = stackpush - e -> EV .Vuns ; // stack delta to parameter
@@ -4145,7 +4144,7 @@ void pushParams(CodeBuilder& cdb,elem *e,unsigned stackalign)
41454144 regm_t retregs ;
41464145 offsetinreg (cdb ,e ,& retregs );
41474146 unsigned reg = findreg (retregs );
4148- cdb . append ( genpush (CNIL ,reg )); // PUSH reg
4147+ genpush (cdb ,reg ); // PUSH reg
41494148 cdb .append (genadjesp (CNIL ,REGSIZE ));
41504149 }
41514150 return ;
@@ -4302,7 +4301,7 @@ void pushParams(CodeBuilder& cdb,elem *e,unsigned stackalign)
43024301 {
43034302 regwithvalue (cdb ,allregs ,value ,& reg ,0 );
43044303 Preg :
4305- cdb . append ( genpush (CNIL ,reg ) ); // PUSH reg
4304+ genpush (cdb ,reg ); // PUSH reg
43064305 }
43074306 code_orflag (cdb .last (),flag ); // operand size
43084307 } while (i );
@@ -4381,7 +4380,7 @@ void pushParams(CodeBuilder& cdb,elem *e,unsigned stackalign)
43814380 retregs = IDXREGS ; // get an index reg
43824381 unsigned reg ;
43834382 allocreg (cdb ,& retregs ,& reg ,TYoffset );
4384- cdb . append ( genregs (CNIL ,0x89 ,SP ,reg ) ); // MOV reg,SP
4383+ genregs (cdb ,0x89 ,SP ,reg ); // MOV reg,SP
43854384 pop87 ();
43864385 cdb .gen2 (op ,modregrm (0 ,r ,regtorm [reg ])); // FSTP [reg]
43874386 }
@@ -4401,13 +4400,13 @@ void pushParams(CodeBuilder& cdb,elem *e,unsigned stackalign)
44014400 stackpush += sz ;
44024401 if (sz <= REGSIZE )
44034402 {
4404- cdb . append ( genpush (CNIL ,findreg (retregs ) )); // PUSH reg
4403+ genpush (cdb ,findreg (retregs )); // PUSH reg
44054404 cdb .append (genadjesp (CNIL ,REGSIZE ));
44064405 }
44074406 else if (sz == REGSIZE * 2 )
44084407 {
4409- cdb . append ( genpush (CNIL ,findregmsw (retregs ) )); // PUSH msreg
4410- cdb . append ( genpush (CNIL ,findreglsw (retregs ) )); // PUSH lsreg
4408+ genpush (cdb ,findregmsw (retregs )); // PUSH msreg
4409+ genpush (cdb ,findreglsw (retregs )); // PUSH lsreg
44114410 cdb .append (genadjesp (CNIL ,sz ));
44124411 }
44134412}
@@ -4496,7 +4495,7 @@ void loaddata(CodeBuilder& cdb,elem *e,regm_t *pretregs)
44964495 if (e -> Eoper == OPconst )
44974496 { /* TRUE: OR SP,SP (SP is never 0) */
44984497 /* FALSE: CMP SP,SP (always equal) */
4499- cdb . append ( genregs (CNIL ,(boolres (e )) ? 0x09 : 0x39 ,SP ,SP ) );
4498+ genregs (cdb ,(boolres (e )) ? 0x09 : 0x39 ,SP ,SP );
45004499 if (I64 )
45014500 code_orrex (cdb .last (), REX_W );
45024501 }
@@ -4651,7 +4650,7 @@ void loaddata(CodeBuilder& cdb,elem *e,regm_t *pretregs)
46514650 if (forregs & mES )
46524651 {
46534652 movregconst (cdb ,reg ,msw ,0 ); // MOV reg,segment
4654- cdb . append ( genregs (CNIL ,0x8E ,0 ,reg ) ); // MOV ES,reg
4653+ genregs (cdb ,0x8E ,0 ,reg ); // MOV ES,reg
46554654 msw = lsw ; // MOV reg,offset
46564655 }
46574656 else
0 commit comments