|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
Here's a short answer.gcc = 32- or 64-bit code compiler, end of story. Doesn't do 8- or 16-bit code at all. Doesn't handle segmented architecture too well, from what I understand. 8086/88 = 16-bit segmented architecture with no mode of "flat" addressing or limitless segment size. Big problem.
bcc = 16-bit capable compiler taken from the Minix system, designed with the 16-bit real-mode 8086 in mind, handles the ugly intricate details that gcc can smile and avoid due to the use of flat protected mode memory blahblahblah.
Assembly is likely used to optimize certain functions or to ensure that the function behaves correctly independent of changes in bcc and the 8086 libc. ELKS is not intended to be portable across CPUs at all; only 8086 CPUs are targeted, with 80286 protected-mode code that doesn't (and likely will never) work fully. Linux itself started with a lot of asm in the code, and as it grew like a virus in popularity, the arch-specific asm chunks were moved around so that new architectures could be ported to with more ease. ELKS isn't that popular, thus size and speed optimized assembly routines are totally acceptable, especially since we're constantly hitting those damned segment limits already.
That's my take, but I'm not a C programmer. Also, don't send mail to list subscribers if you send it to the ELKS list, because duplicate messages are a big irritant of mine. Keep in mind that we get the list, and thus we're already getting one copy.
Jody Vikas Kumar wrote:
I had a question. What is the advantage of using bcc over gcc. Why is bcc being used in some parts of the code vs gcc in other parts of the code. A large part of the code where bcc is used to compile uses a lot of assembly, rather than C. Why was it written this way ? Any pointers ? Vikas On 6/5/06, Jody <jbruchon@xxxxxxxxx> wrote:Has anyone been doing any programming on ELKS as of late? - To unsubscribe from this list: send the line "unsubscribe linux-8086" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html- To unsubscribe from this list: send the line "unsubscribe linux-8086" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
- To unsubscribe from this list: send the line "unsubscribe linux-8086" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html