mirror of
https://github.com/python/cpython.git
synced 2025-12-07 17:57:56 +00:00
Added work-arounds for MPW 3.{1,2?} code generation bug.
This commit is contained in:
parent
e3db862e5b
commit
7d8b509575
1 changed files with 17 additions and 0 deletions
|
|
@ -104,10 +104,27 @@ fixstate(g, d, s)
|
||||||
}
|
}
|
||||||
for (ibit = 0; ibit < g->g_ll.ll_nlabels; ibit++) {
|
for (ibit = 0; ibit < g->g_ll.ll_nlabels; ibit++) {
|
||||||
if (testbit(d1->d_first, ibit)) {
|
if (testbit(d1->d_first, ibit)) {
|
||||||
|
#ifdef applec
|
||||||
|
#define MPW_881_bug /* Undefine if bug below is fixed */
|
||||||
|
#endif
|
||||||
|
#ifdef MPW_881_BUG
|
||||||
|
/* In 881 mode MPW 3.1 has a code
|
||||||
|
generation bug which seems to
|
||||||
|
set the upper bits; fix this by
|
||||||
|
explicitly masking them off */
|
||||||
|
int temp;
|
||||||
|
#endif
|
||||||
if (accel[ibit] != -1)
|
if (accel[ibit] != -1)
|
||||||
printf("XXX ambiguity!\n");
|
printf("XXX ambiguity!\n");
|
||||||
|
#ifdef MPW_881_BUG
|
||||||
|
temp = 0xFFFF &
|
||||||
|
(a->a_arrow | (1 << 7) |
|
||||||
|
((type - NT_OFFSET) << 8));
|
||||||
|
accel[ibit] = temp;
|
||||||
|
#else
|
||||||
accel[ibit] = a->a_arrow | (1 << 7) |
|
accel[ibit] = a->a_arrow | (1 << 7) |
|
||||||
((type - NT_OFFSET) << 8);
|
((type - NT_OFFSET) << 8);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue