C++ Weekly - Ep 138 - Will It C++? MIPS Architecture (1985)

preview_player
Показать описание
☟☟ Awesome T-Shirts! Sponsors! Books! ☟☟

T-SHIRTS AVAILABLE!

WANT MORE JASON?

SUPPORT THE CHANNEL

GET INVOLVED

JASON'S BOOKS

► C++23 Best Practices

► C++ Best Practices

JASON'S PUZZLE BOOKS

► Object Lifetime Puzzlers Book 1

► Object Lifetime Puzzlers Book 2

► Object Lifetime Puzzlers Book 3

► Copy and Reference Puzzlers Book 1

► Copy and Reference Puzzlers Book 2

► Copy and Reference Puzzlers Book 3

► OpCode Puzzlers Book 1


RECOMMENDED BOOKS

AWESOME PROJECTS

O'Reilly VIDEOS

Рекомендации по теме
Комментарии
Автор

Worth noting the MIPS has the unusual "branch delay slot". Which means the instruction after any branch is always executed before the branch is taken. The examples on screen at the 8 minute mark show this up: the "jr $ra" (jump to the return address) actually precede the "addu $2, $5, $4". Which is fun :)

MattGodbolt
Автор

I programmed for MIPS devices circa 2000 when developing software for WinCE PDA devices. I believe it was Casio at the time that had a MIPS PDA. I did learn it assembly language somewhat at the time and grew to kind of like it. Still have a book on MIPS instruction set. But WinCE PDAs did not become a lasting phenomena. At the time, by coupling these WinCE PDA devices to a GPS and AT&T CDPD packet-based modems, we were able to get a device that could do turn-by-turn vehicle navigation with audible driving instructions and visible navigation display. Also could support some voice recognition commands. Communicated with a data center server to overlay traffic condition reports onto the route being navigated. All of this in 2000/2001 using Microsoft's PDA devices and their AutoPC in-dash devices.

It was a vehicle navigation app that was very much like the experience that Google maps and others deliver today. But we we're perhaps close to a decade ahead of when this became common place on smart phones.

TheSulross
Автор

Until comparatively recently, most of the set-top-box SoCs were MIPS too. (The chip-makers that are left in that market have now switched to ARM/AArch64.) I've been writing in C++ for them since 2007. The most-modern GCC I've used on them was 6.3, but I suspect that newer versions work too. (Oh, and you actually want --sysroot rather than using -I.)

quboid
Автор

It's funny. I thought I could have a go with MIPS on an old router and here you are doing just the same. :)

edgeeffect
Автор

Correction : the return 0 is for lamda, and not for main. Strange that compiler didn't complain that main has no return.

sahilsingh
Автор

You can also just select MIPS gcc in compiler explorer right? Why do you use x86 clang with the MIPS option instead?

benflowers
Автор

Those specs are -more than- almost enough to run a windows 2000 server with sql server 2000 .(256mb ram would be ideal) ^_^
EDIT: Speaking of which, does the latest gcc still compile on windows 2000? O_o

DamianReloaded