1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
Index: js/src/prmjtime.c
===================================================================
RCS file: /cvsroot/mozilla/js/src/prmjtime.c,v
retrieving revision 3.55
diff -u -p -d -8 -r3.55 prmjtime.c
--- js/src/prmjtime.c 13 Nov 2006 21:33:06 -0000 3.55
+++ js/src/prmjtime.c 17 Nov 2006 21:30:44 -0000
@@ -341,44 +341,47 @@ PRMJ_basetime(JSInt64 tsecs, PRMJTime *p
JSInt32 yday = 0;
JSInt32 mday = 0;
JSInt32 wday = 6; /* start on a Sunday */
JSInt32 days = 0;
JSInt32 seconds = 0;
JSInt32 minutes = 0;
JSInt32 hours = 0;
JSInt32 isleap = 0;
+
+ /* Temporaries used for various computations */
JSInt64 result;
JSInt64 result1;
JSInt64 result2;
+
JSInt64 base;
/* Some variables for intermediate result storage to make computing isleap
easier/faster */
JSInt32 fourCenturyBlocks;
JSInt32 centuriesLeft;
JSInt32 fourYearBlocksLeft;
JSInt32 yearsLeft;
/* Since leap years work by 400/100/4 year intervals, precompute the length
of those in seconds if they start at the beginning of year 1. */
JSInt64 fourYears;
JSInt64 century;
JSInt64 fourCenturies;
+ JSLL_UI2L(result, PRMJ_DAY_SECONDS);
+
JSLL_I2L(fourYears, PRMJ_FOUR_YEARS_DAYS);
- JSLL_MUL(fourYears, fourYears, PRMJ_DAY_SECONDS);
+ JSLL_MUL(fourYears, fourYears, result);
JSLL_I2L(century, PRMJ_CENTURY_DAYS);
- JSLL_MUL(century, century, PRMJ_DAY_SECONDS);
+ JSLL_MUL(century, century, result);
JSLL_I2L(fourCenturies, PRMJ_FOUR_CENTURIES_DAYS);
- JSLL_MUL(fourCenturies, fourCenturies, PRMJ_DAY_SECONDS);
-
- JSLL_UI2L(result,0);
+ JSLL_MUL(fourCenturies, fourCenturies, result);
/* get the base time via UTC */
base = PRMJ_ToExtendedTime(0);
JSLL_UI2L(result, PRMJ_USEC_PER_SEC);
JSLL_DIV(base,base,result);
JSLL_ADD(tsecs,tsecs,base);
/* Compute our |year|, |isleap|, and part of |days|. When this part is
|