Changeset 4874


Ignore:
Timestamp:
Jul 11, 2006, 1:23:45 PM (18 years ago)
Author:
Gary Byers
Message:

Destination and 1st source arg overlap (2-address instructions) in natural logical,
arithmetic operations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/X86/x862.lisp

    r4816 r4874  
    80108010              (with-imm-target (xreg) (yreg :natural)
    80118011                (x862-two-targeted-reg-forms seg x xreg y yreg)
    8012                 (! %natural+ xreg xreg yreg))
     8012                (! %natural+ xreg yreg))
    80138013              (<- xreg))
    80148014            (let* ((other (if u31x y x)))
    80158015              (with-imm-target () (other-reg :natural)
    80168016                (x862-one-targeted-reg-form seg other other-reg)
    8017                 (! %natural+-c other-reg other-reg (or u31x u31y))
     8017                (! %natural+-c other-reg (or u31x u31y))
    80188018                (<- other-reg))))
    80198019          (^))))))
     
    80588058              (with-imm-target (xreg) (yreg :natural)
    80598059                (x862-two-targeted-reg-forms seg x xreg y yreg)
    8060                 (! %natural-logior xreg xreg yreg))
     8060                (! %natural-logior xreg yreg))
    80618061              (<- xreg))
    80628062            (let* ((other (if u31x y x)))
    80638063              (with-imm-target () (other-reg :natural)
    80648064                (x862-one-targeted-reg-form seg other other-reg)
    8065                 (! %natural-logior-c other-reg other-reg constant)
     8065                (! %natural-logior-c other-reg constant)
    80668066                (<- other-reg))))
    80678067          (^))))))
     
    80838083              (with-imm-target (xreg) (yreg :natural)
    80848084                (x862-two-targeted-reg-forms seg x xreg y yreg)
    8085                 (! %natural-logxor xreg xreg yreg))
     8085                (! %natural-logxor xreg yreg))
    80868086              (<- xreg))
    80878087            (let* ((other (if u32x y x)))
    80888088              (with-imm-target () (other-reg :natural)
    80898089                (x862-one-targeted-reg-form seg other other-reg)
    8090                 (! %natural-logxor-c other-reg other-reg constant)
     8090                (! %natural-logxor-c other-reg constant)
    80918091                (<- other-reg))))
    80928092          (^))))))
     
    81088108              (with-imm-target (xreg) (yreg :natural)
    81098109                (x862-two-targeted-reg-forms seg x xreg y yreg)
    8110                 (! %natural-logand xreg xreg yreg))
     8110                (! %natural-logand xreg yreg))
    81118111              (<- xreg))
    81128112            (let* ((other (if u31x y x)))
    81138113              (with-imm-target () (other-reg :natural)
    81148114                (x862-one-targeted-reg-form seg other other-reg)
    8115                 (! %natural-logand-c other-reg other-reg constant)
     8115                (! %natural-logand-c other-reg constant)
    81168116                (<- other-reg))))
    81178117          (^))))))
Note: See TracChangeset for help on using the changeset viewer.