История изменений
Исправление KivApple, (текущая версия) :
Лол, это уже может быть крайне неудобно.
Тупо игноришь второй регистр результата, если он тебе не нужен. При желании можешь проверить его на ноль, если боишься переполнения. Если не боишься, можешь не проверять. Ни одной лишней команды, зато получаешь очень быструю длинную арифметику. В чём проблема?
Это весьма стреляние в ногу.
Открою тебе секрет - в Си как правило никак не проверяется переполнение ни при сложении, ни при умножении, ни при делении. Единственное исключение, которое может возникнуть - деление на ноль. Так что никакой угрозы безопасности - программисту в любом случае придётся думать головой. Зато ускорение популярной операции.
А как же какая-то байда в линуксе (что-то там ABI), которая позволяет использовать 32-bit-адресуемым приложениям 64-bit-команды?
Ничего такого мне неизвестно. Я лишь знаю, что 64-битное ядро можешь запускать 32-битные приложения. Однако при этом им будет недоступно не только больше 4 ГБ памяти (впрочем, у каждого приложения это могут быть разные 4 ГБ, так что в сумме они смогут сожрать больше), но и 64-битные инструкции.
Исправление KivApple, :
Лол, это уже может быть крайне неудобно.
Тупо игноришь второй регистр результата, если он тебе не нужен. При желании можешь проверить его на ноль, если боишься переполнения. Если не боишься, можешь не проверять. В чём проблема?
Это весьма стреляние в ногу.
Открою тебе секрет - в Си как правило никак не проверяется переполнение ни при сложении, ни при умножении, ни при делении. Единственное исключение, которое может возникнуть - деление на ноль. Так что никакой угрозы безопасности - программисту в любом случае придётся думать головой. Зато ускорение популярной операции.
А как же какая-то байда в линуксе (что-то там ABI), которая позволяет использовать 32-bit-адресуемым приложениям 64-bit-команды?
Ничего такого мне неизвестно. Я лишь знаю, что 64-битное ядро можешь запускать 32-битные приложения. Однако при этом им будет недоступно не только больше 4 ГБ памяти (впрочем, у каждого приложения это могут быть разные 4 ГБ, так что в сумме они смогут сожрать больше), но и 64-битные инструкции.
Исходная версия KivApple, :
Лол, это уже может быть крайне неудобно.
Тупо игноришь второй регистр результата, если он тебе не нужен. При желании можешь проверить его на ноль, если боишься переполнения. В чём проблема?
Это весьма стреляние в ногу.
Открою тебе секрет - в Си как правило никак не проверяется переполнение ни при сложении, ни при умножении, ни при делении. Единственное исключение, которое может возникнуть - деление на ноль. Так что никакой угрозы безопасности - программисту в любом случае придётся думать головой. Зато ускорение популярной операции.
А как же какая-то байда в линуксе (что-то там ABI), которая позволяет использовать 32-bit-адресуемым приложениям 64-bit-команды?
Ничего такого мне неизвестно. Я лишь знаю, что 64-битное ядро можешь запускать 32-битные приложения. Однако при этом им будет недоступно не только больше 4 ГБ памяти (впрочем, у каждого приложения это могут быть разные 4 ГБ, так что в сумме они смогут сожрать больше), но и 64-битные инструкции.