according to www.linux-foundation.org/spec/refspecs/elf/x86_64-SysV-psABI.pdf the registers should be in the order rax, rbx, rcx, rdx, gcc puts them in rax, rdx, rcx, rbx.
You have to becareful when fixing this though. As the unwinder depends on the order and if you change it you change the ABI.
You are looking at obsolete version of the psABI. Please see http://www.x86-64.org/viewvc/trunk/x86-64-ABI/low-level-sys-info.tex?revision=214&view=markup General Purpose Register RAX & 0 &\RAX\\ General Purpose Register RDX & 1 &\RDX\\ General Purpose Register RCX & 2 &\RCX\\ General Purpose Register RBX & 3 &\RBX\\ General Purpose Register RSI & 4 &\RSI\\ General Purpose Register RDI & 5 &\RDI\\ Frame Pointer Register RBP & 6 &\RBP\\ Stack Pointer Register RSP & 7 &\RSP\\ Extended Integer Registers 8-15 & 8-15 &\reg{r8}--\reg{r15}\\ Return Address RA & 16&\\ SSE Registers 0--7 & 17-24 & \reg{xmm0}--\reg{xmm7} \\ Extended SSE Registers 8--15 & 25-32 & \reg{xmm8}--\reg{xmm15} \\ Floating Point Registers 0--7 & 33-40 & \reg{st0}--\reg{st7} \\ MMX Registers 0--7 & 41-48 & \reg{mm0}--\reg{mm7} \\ Flag Register & 49 & \reg{rFLAGS} \\ Segment Register ES & 50 & \reg{es} \\ Segment Register CS & 51 & \reg{cs} \\ Segment Register SS & 52 & \reg{ss} \\ Segment Register DS & 53 & \reg{ds} \\ Segment Register FS & 54 & \reg{fs} \\ Segment Register GS & 55 & \reg{gs} \\ Reserved & 56-57 & \\ FS Base address & 58 & \reg{fs.base} \\ GS Base address & 59 & \reg{gs.base} \\ Reserved & 60-61 & \\ Task Register & 62 & \reg{tr} \\ LDT Register & 63 & \reg{ldtr} \\ 128-bit Media Control and Status & 64 & \reg{mxcsr} \\ x87 Control Word & 65 & \reg{fcw} \\ x87 Status Word & 66 & \reg{fsw} \\ http://www.x86-64.org/viewvc/trunk/x86-64-ABI/low-level-sys-info.tex?r1=164&r2=165&view=patch