You need some cleverness to code an add(x, y) method with only bitwise operators.
Then, you need to code a multiply(x, y) method using some more bit shifting cleverness and your new add method.
Then, do repeated squaring using your new multiply method.