On Mon, 5 Nov 2007, H. Peter Anvin wrote:Yeah, there is no point in having two far jumps. One is enough. The point being that since apparently the new boot standards say that the 32-bit code is entered with segments etc set to specific values, then we shouldn't do the jump to that 32-bit standard with a far jump: we should do it as a regular jump, because we'd want to to set up the segments etc in 32-bit mode anyway. At least my assembler does the right thing with just the plain "mov" for segments, but yes, there may be old assemblers that add a useless data size override. So "movl %ecx,%*s" is probably the right thing to do to make sure they don't do anything stupid.. Btw, on that same kind of thread: I think we should move the clearing of the registers into the 32-bit mode too, since that makes the instructions shorter (no operand size override), and makes more sense anyway (then we can also clean %edx/%ecx. Final comment: shouldn't we set up %esp to be correct for the new %ss too? Linus -
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Justin Piszcz | exception Emask 0x0 SAct 0x1 / SErr 0x0 action 0x2 frozen |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | [GIT]: Networking |
| Frans Pop | svc: failed to register lockdv1 RPC service (errno 97). |
| Radu Rendec | htb parallelism on multi-core platforms |
