Penguin

Differences between version 6 and previous revision of amd64.

Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History

Newer page: version 6 Last edited on Monday, January 31, 2005 4:00:18 pm by CraigBox Revert
Older page: version 5 Last edited on Wednesday, July 28, 2004 9:42:37 pm by AristotlePagaltzis Revert
@@ -1,8 +1,16 @@
-[AMD]'s [64bit] architecture, used in their Opteron and Athlon64 [CPU]s. Also known as __x86-64__. 
+[AMD]'s [64bit] architecture, used in their Opteron and Athlon64 [CPU]s. Also known as __x86-64__. They are [AMD]'s attempt to compete with [Intel]'s [ia64] and gain a foothold in the server market. Read [more at amd.com | http://www.amd.com/us-en/Processors/ProductInformation/,,30_118_9331,00.html]  
  
-[AMD]'s attempt to compete with [Intel]'s [ia64] and gain a foothold in the server market
+This promises to be a major revolution in archetecture of the 80x86 line of processors, such that we've not seen since the 8086 to the 80286 and the 80286 to the 80386
  
-Read [more at amd.com | http ://www .amd .com/us-en/Processors/ProductInformation/ ,,30 _118_9331 ,00 .html
+-----  
+Some things to beware of :  
+!!use gcc3 .4 and above!  
+gcc3 .3 and below cannot generate correct code for the amd64. If you have mysterious problems with programs crashing unexpectantly in what is normal code , then it's almost certain that you are not using a recent enough compiler. mozilla shows this problem and will crash on startup.  
+  
+This poses a problem as a lot of programs won't compile with the newer gcc3.4 compiler , as they voilate some rules of the C specification that gcc3.4 now enforces where earlier compilers didn't. This problem should disappear with time, but if it is a pain when it does surface. I have personally solved this issue in the past by using the gcc2.96 cpp to preprocess code, and the gcc3.4 executable to generate the actual executable. Other hand hacking may be required.  
+  
+!!Some code isn't 64bit clean.  
+It's difficult to write portable code in C that deals properly with archetectures of difference sizes. For instance using a uint64 _t to make sure a type is 64bits long , then trying to printf it causes problems . See [CPortabilityNotes ].  
  
 ---- 
-CategoryHardware 
+CategoryProgramming, CategoryHardware