Fix 030 code. Seems we need to force gas to understand we want 030 code there, -m68030 didn't help.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26470 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -62,17 +62,23 @@ set_tt(int which, addr_t pa, size_t len, uint32 perms)
|
|||||||
}
|
}
|
||||||
TRACE(("mmu_030:set_tt: 0x%08lx\n", ttr));
|
TRACE(("mmu_030:set_tt: 0x%08lx\n", ttr));
|
||||||
|
|
||||||
|
/* as seen in linux and BSD code,
|
||||||
|
* we need to use .chip pseudo op here as -m68030 doesn't seem to help gas grok it.
|
||||||
|
*/
|
||||||
switch (which) {
|
switch (which) {
|
||||||
case 0:
|
case 0:
|
||||||
asm volatile( \
|
asm volatile( \
|
||||||
"pmove %0,%%tt0\n" \
|
".chip 68030\n\t" \
|
||||||
: : "d"(ttr));
|
"pmove %%tt0,(%0)\n\t" \
|
||||||
|
".chip 68k\n\t" \
|
||||||
|
: : "a"(&ttr));
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
asm volatile( \
|
asm volatile( \
|
||||||
"pmove %0,%%tt1\n" \
|
".chip 68030\n\t" \
|
||||||
: : "d"(ttr));
|
"pmove (%0),%%tt1\n" \
|
||||||
|
".chip 68k\n\t" \
|
||||||
|
: : "a"(&ttr));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
|
|||||||
Reference in New Issue
Block a user