File: ppc.py

package info (click to toggle)
skiboot 7.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 35,624 kB
  • sloc: ansic: 221,198; sh: 11,580; cpp: 5,767; python: 3,421; makefile: 1,773; asm: 1,503; perl: 1,479; tcl: 1,188; pascal: 107
file content (28 lines) | stat: -rw-r--r-- 566 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/python -i

# Just some helper functions to convert PPC bits (in the docs) to integer
# values we can actually use in code.

def ppcbit(i):
    return 1 << (63 - i)

def ppcmask(a,b):
    mask = 0
    for i in range(a, b + 1):
        mask += ppcbit(i)
    return mask

def ppcfield(a, b, v):
    return (v & ppcmask(a,b)) >> (63 - b)

def ppcbit32(i):
    return 1 << (31 - i)

def ppcmask32(a,b):
    mask = 0
    for i in range(a, b + 1):
        mask += ppcbit32(i)
    return mask

def ppcfield32(a, b, v):
    return (v & ppcmask32(a,b)) >> (31 - b)