Jump to content

    
Sign in to follow this  
vv40in

спецы по sparc32! вопрос по alignment!

Recommended Posts

sparcv8.pdf (p.46):

:help:

Alignment Restrictions:

 

Halfword accesses must be aligned on a 2-byte boundary, word accesses (which include instruction fetches) must be aligned on a 4-byte boundary, and doubleword accesses must be aligned on an 8-byte boundary. An improperly aligned address causes a load or store instruction to generate a mem_address_not_aligned trap.

 

то, о чем говорится ниже - найдено в ядре Linux!

 

в моем случае, как я вижу из лога, 8-байтная величина располагается по адресу не кратному 8. после обращения к такой переменной происходит зависание.

 

даже если аллокатор выделит память с указателем кратным 8, то при копировании такой структуры в др.область, которая не выровнена по 8, при обращении к переменной опять же произойдет трап!

 

я не специалист в sparc, не знаю возможно ли обработать trap так, чтобы заполнить переменную правильным значением и вернуться на следующий шаг.

(да и вообще не знаю как писать обработчики tarp-ов :help: )

 

и я уверен, что 64-битная проблема встретится и дальше.

спаркологи! поможите чем можете! что мне делать? :help:

как добиться загрузки ядра?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this