64-битные регистры в 32-битные окна

Я только что установил mingw32 на свой 32-битный Vista, чтобы поэкспериментировать со встроенной сборкой gcc. К сожалению, 32-битный компилятор gcc не распознает 64-битные регистры, например %% rax.

Прежде чем я потрачу много времени на попытки собрать новую цепочку инструментов, у меня есть несколько вопросов:

  1. Есть ли какой-нибудь режим процессора на x86 (Intel Core Duo, T5800), который предотвратит это из-за использования 64-битных регистров при работе Vista32 (то есть, это безнадежная причина)?

  2. Предполагая, что ответ на № 1: «Конечно, вы можете использовать% rax и т. д. под 32-битными окнами», может ли gcc быть настроенным как на распознавание 64-битных регистров, так и на создание исполняемого файла, который будет работать в 32-битных окнах? Я знаю, что у gcc есть опция -m64, но моя версия, поставляемая с mingw32, не имеет встроенной 64-битной поддержки. Я определенно готов перестроить gcc, если он может создавать 32-битные приложения, которые имеют доступ к 64-битным регистров, но я не хочу испытывать эту боль, если это все равно не сработает.

Кроме того: на самом деле это первый шаг к изучению инструкций SSE2 (да, я знаю, встроенные функции компилятора существуют, но я хотел бы понять это с уровня машины.)

Заранее благодарим за любой ответ!

-jim

14
задан Jim 13 August 2011 в 01:06
поделиться