diff options
| author | Russell King <rmk@flint.arm.linux.org.uk> | 2003-05-28 16:18:25 +0100 |
|---|---|---|
| committer | Russell King <rmk@flint.arm.linux.org.uk> | 2003-05-28 16:18:25 +0100 |
| commit | 0b6583d7d7d0fbbd65053d50d2d39aca7cec4c73 (patch) | |
| tree | cd551277b1108e6ddff5a4987229f73284ba83ec /include/asm-arm | |
| parent | 015498d534572f8a9c3bf5f1dfc02bd02bfb2c9d (diff) | |
[ARM] Fix GCC3.3 build error
GCC 3.3 complains that r2 overlaps input operands when a u64 pointer
is passed into __put_user(). Fix this by using ip as a temporary
register instead.
Diffstat (limited to 'include/asm-arm')
| -rw-r--r-- | include/asm-arm/uaccess.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/asm-arm/uaccess.h b/include/asm-arm/uaccess.h index a5281acd7fb1..23bf0cbc1c76 100644 --- a/include/asm-arm/uaccess.h +++ b/include/asm-arm/uaccess.h @@ -144,13 +144,13 @@ extern int __put_user_bad(void); register int __e asm("r0"); \ switch (sizeof(*(__p))) { \ case 1: \ - __put_user_x(__r1, __p, __e, 1, "r2", "lr"); \ + __put_user_x(__r1, __p, __e, 1, "ip", "lr"); \ break; \ case 2: \ - __put_user_x(__r1, __p, __e, 2, "r2", "lr"); \ + __put_user_x(__r1, __p, __e, 2, "ip", "lr"); \ break; \ case 4: \ - __put_user_x(__r1, __p, __e, 4, "r2", "lr"); \ + __put_user_x(__r1, __p, __e, 4, "ip", "lr"); \ break; \ case 8: \ __put_user_x(__r1, __p, __e, 8, "ip", "lr"); \ |
