Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 3 of 3 for RLWINM (0.15 sec)

  1. src/cmd/compile/internal/ssa/_gen/PPC64.rules

    (MOVBZreg (SRWconst x [s])) && mergePPC64AndSrwi(0xFF,s) != 0 => (RLWINM [mergePPC64AndSrwi(0xFF,s)] x)
    (MOVBZreg (RLWINM [r] y)) && mergePPC64AndRlwinm(0xFF,r) != 0 => (RLWINM [mergePPC64AndRlwinm(0xFF,r)] y)
    (MOVHZreg (RLWINM [r] y)) && mergePPC64AndRlwinm(0xFFFF,r) != 0 => (RLWINM [mergePPC64AndRlwinm(0xFFFF,r)] y)
    (MOVWZreg (RLWINM [r] y)) && mergePPC64MovwzregRlwinm(r) != 0 => (RLWINM [mergePPC64MovwzregRlwinm(r)] y)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 53.2K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/rewrite.go

    // Combine (ANDconst [m] (SRWconst [s])) into (RLWINM [y]) or return 0
    func mergePPC64AndSrwi(m, s int64) int64 {
    	mask := mergePPC64RShiftMask(m, s, 32)
    	if !isPPC64WordRotateMask(mask) {
    		return 0
    	}
    	return encodePPC64RotateMask((32-s)&31, mask, 32)
    }
    
    // Test if a word shift right feeding into a CLRLSLDI can be merged into RLWINM.
    // Return the encoded RLWINM constant, or 0 if they cannot be merged.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 64.2K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ppc64/ssa.go

    		p = s.Prog(obj.ANOP)
    		pbover.To.SetTarget(p)
    
    	case ssa.OpPPC64CLRLSLWI:
    		r := v.Reg()
    		r1 := v.Args[0].Reg()
    		shifts := v.AuxInt
    		p := s.Prog(v.Op.Asm())
    		// clrlslwi ra,rs,mb,sh will become rlwinm ra,rs,sh,mb-sh,31-sh as described in ISA
    		p.From = obj.Addr{Type: obj.TYPE_CONST, Offset: ssa.GetPPC64Shiftmb(shifts)}
    		p.AddRestSourceConst(ssa.GetPPC64Shiftsh(shifts))
    		p.Reg = r1
    		p.To.Type = obj.TYPE_REG
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 19:59:38 UTC 2024
    - 55.4K bytes
    - Viewed (0)
Back to top