OSDev

для всех
Текущее время: 27 апр 2024, 17:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Очередной баг в QEMU
СообщениеДобавлено: 26 ноя 2012, 14:23 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Только что наткнулся на тотальный бред. Не знаю как, когда и при каких обстоятельствах, но в куему может не работать xchg rax, r8.
Пример:
Код:
  DebugOut r8, clRed        ; дебаг-вывод
  DebugOut rax, clGreen
  xchg rax, r8                  ; тот самый xchg
  DebugOut r8, clRed
  DebugOut rax, clGreen
  mov rbx, MemDefTab
  call MemFree                 ; освобождение памяти
  mov rax, r8                   ; восстановление rax

Макрос DebugOut просто выводит содержимое регистра выбранным цветом, выводятся числа в столбик.
Вывод:
Вложение:
Комментарий к файлу: Дебаг-вывод
XCHG.png
XCHG.png [ 1.39 КБ | Просмотров: 3303 ]


В дебагАуте багов нет, потому что я его пользую уже больше года и выводил всё, что только можно. На всякий случай, его код:
Код:
macro DebugOut v1, v2=clWhite
{
  push rax rbx rcx r14 rcx
  call GetColor
  xchg [rsp], rcx
  mov  rax, v1
  mov   cl, v2
  mov  r14, SetColor
  call r14
  mov  rcx, rax

  mov  rax, DebugVar
  mov  rbx, [rax]
  mov  r14, 12
  add  [rax], r14
  mov  rax, 300
  mov  r14, RCXOutHex
  call r14

  pop rcx
  call SetColor
  pop r14 rcx rbx rax
}

Как видно, все регистры тут сохранены, а R8 не используется вовсе.
Черт, полностью отпало желание разрабатывать под куему и его аналогами-эмуляторами. 2 часа потратил на поиск в коде ошибки, которой нет. На реальном железе и в VMWare все идеально работает. Жаль только, что на ноутбуке без эмулятора никак.
Куему у меня какая-то старая (та, которая с QEMU-Manager'ом идет, совсем из консоли сидеть с эмулятором как-то не хочется), но все же выпускать программу с ТАКИМИ багами - это не дело.

UPD:
Да, баг нашли и пофиксили:
Цитата:
target-i386: fix xchg rax,r8

только вот в QEMU-Managere версия та, которая была, и обновить ее не так просто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередной баг в QEMU
СообщениеДобавлено: 27 ноя 2012, 01:17 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
А как насчёт qemu-kvm? В связи с распространением процов с аппаратной поддержкой виртуализации на такие вещи (эмуляция сравнительно редких инструкций) в qemu забили. Впрочем, там по жизни забивают на то что не нужно для традиционных ОС, ибо скорость нужна (во многих смыслах).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB