Nie rozumiem, jak to ma działać.Dlaczego wbudowany asembler GCC wymaga informacji o przenikaniu, ale MSVC nie jest
GCC to wbudowany asembler jest trudny do uzyskania, ale bardzo konkretny w zaznaczaniu informacji typu clobbering, dzięki czemu kompilator wie, co robisz.
Program wbudowany Microsoft Visual C++ jest naprawdę łatwy w użyciu (zawsze wydaje się, że działa), ale nie mam pomysłu, jakie gwarancje lub założenia dotyczą kodu.
Czy VC++ próbuje "automatycznie wykryć", które rejestry są zablokowane? Skąd wiadomo, w jaki sposób zmienione zostaną rejestry i wskaźnik stosu? Czy ma jakieś założenia? Jeśli tak, jak obejść te założenia?
+1, bardzo wyrafinowana odpowiedź na kolejne pytanie OP :) –
# 2 był bardzo przydatnym komentarzem, nie miałem o tym pojęcia! Dzięki! :) – Mehrdad
w 1. powyżej mówi: * "Pomysł polega na generowaniu i unikaniu analizowania" * wydaje mi się jednak, że kompilator odbierający informacje o elementach clobbered wymaga mimo to parsowania, prawda? Wychodząc z - prawdopodobnie niepoprawnego - wrażenia, że "wbudowany montaż może nie mieć na celu zwiększenia niezależności architektury, i całkiem łatwo będzie montować się na platformie", byłoby pięknie, gdyby był słowniczek, który zapewniałby dopracowaną informację wspomaganą przez kompilator , aby pozwolić programistom zapomnieć o rzeczach. Czy pojawiły się pewne zmiany, ponieważ pytanie zadano w 2012 roku? – humanityANDpeace