Why use separate registers for pointers? They're the same data type internally; they don't need any special handling.