summaryrefslogtreecommitdiff
path: root/pstartup.a
diff options
context:
space:
mode:
authorJohn van Groningen2003-05-16 14:53:22 +0000
committerJohn van Groningen2003-05-16 14:53:22 +0000
commit925708830090dcdd6a0fa08ce89a1f10cdd89027 (patch)
tree277a0dca8d93f084b3132f370bb90d808aef6747 /pstartup.a
parentmacintosh files (diff)
optimize toString for Int by computing the remainder of 10
using multiplication
Diffstat (limited to 'pstartup.a')
-rw-r--r--pstartup.a17
1 files changed, 14 insertions, 3 deletions
diff --git a/pstartup.a b/pstartup.a
index 49a1dd8..16f7d80 100644
--- a/pstartup.a
+++ b/pstartup.a
@@ -1763,17 +1763,28 @@ calculate_digits:
cmplwi 0,d0,10
blt last_digit
+ if 1
+ lis o0,-13107
+ subi o0,o0,13107
+ mulhwu o0,o0,d0
+ srwi o0,o0,3
+
+ slwi o1,o0,1
+ sub a1,d0,o1
+ slwi o1,o0,3
+ sub a1,a1,o1
+ else
li o1,10
divwu o0,d0,o1
mullw a1,o0,o1
sub a1,d0,a1
+ endif
addi a1,a1,48
+ mr d0,o0
stb a1,0(a2)
- addi a2,a2,1
-
- mr d0,o0
+ addi a2,a2,1
b calculate_digits
last_digit: