Reference: MIPS directives.
The directives .set push
and .set pop
may be used to save and restore the current settings for all the options which are controlled by .set
. The .set push
directive saves the current settings on a stack. The .set pop
directive pops the stack and restores the settings.
These directives can be useful inside an macro which must change an option such as the ISA level or instruction reordering but does not want to change the state of the code which invoked the macro.
Traditional MIPS assemblers do not support these directives.
Reference 1 Regs Reference 1 EntryLo0: low half of TLB entry for even virtual address (VPN) EntryLo1: low half of TLB entry for odd virtual address (VPN) R4000 book. ↩ reference ↩
Reference: https://github.com/MIPT-ILab/mipt-mips/wiki/MIPS-Instruction-Set
Source: https://github.com/MIPT-ILab/mipt-mips/wiki/MIPS-registers http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch05s03.html Number Name Use Preserved across function calls? 0 $zero constant 0 — 1 $at assembler temporary no 2, 3 $v0, $v1 function return values no 4 - 7 $a0 - $a3 function arguments no 8 - 15 $t0 - $t7 temporaries no 16 - 23 $s0 - $s7 temporaries yes 24, 25 $t8, $t9 temporaries no 26, 27 $k0, $k1 reserved for OS kernel — 28 $gp global pointer — 29 $sp stack pointer — 30 $s8 temporaries yes 31 $ra return address —
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?