cf7e2d4b0d
Inline the P = [P0, -1, -1, -1] constant into sub and neg instead of going through generic U256.addTo/subTo + P array reads. For sub (add-back P on borrow): when carry from limb 0 is 1, adding P[1..3]=-1 with carry is identity (no-op). When carry is 0, just subtract 1 with borrow propagation through limbs 1-3. Replaces a full 4-limb generic addition with a conditional decrement. For neg (P - a): uses bitwise NOT for limbs 1-3 (since P[i]=-1, P[i]-a[i] = ~a[i]) with simple borrow propagation from limb 0. Replaces a full 4-limb generic subtraction with P array reads. These are called ~500 times per verify. On JVM/HotSpot the gain is marginal (inlining already handles this), but on Android ART the reduced function call depth and eliminated array loads should help. https://claude.ai/code/session_017UbWduFi1sLUsgVUMUH2nx