GNOME Terminal Bold Font

Enable bold font for GNOME Terminal:

0x01

# Get profile id
dconf dump /org/gnome/terminal/legacy/
 
# Set bold font
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font "'Monospace Bold 14'"

0x02
Preferences->Profiles->->Colors:
Select “Show bold text in bright colors”

Reserved IP addresses

IPv4:

0.0.0.0/8
10.0.0.0/8
100.64.0.0/10
127.0.0.0/8
169.254.0.0/16
172.16.0.0/12
192.0.0.0/24
192.0.2.0/24
192.88.99.0/24
192.168.0.0/16
198.18.0.0/15
198.51.100.0/24
203.0.113.0/24
224.0.0.0/4
240.0.0.0/4
255.255.255.255/32

IPv6:

::/128
::1/128
::ffff:0:0/96
::ffff:0:0:0/96
64:ff9b::/96
100::/64
2001::/32
2001:20::/28
2001:db8::/32
2002::/16
fc00::/7
fe80::/10
ff00::/8

OpenJDK Guide

Java Virtual Machine Guide: https://docs.oracle.com/en/java/javase/11/vm/native-memory-tracking.html#GUID-710CAEA1-7C6D-4D80-AB0C-B0958E329407

HostSpot Virtual Machine Garbage Collection Tuning Guide: https://docs.oracle.com/en/java/javase/11/gctuning/garbage-collector-implementation.html#GUID-23844E39-7499-400C-A579-032B68E53073

OpenJDK Developers’ Guide: https://openjdk.java.net/guide/index.html

HotSpot Runtime Overview: https://openjdk.java.net/groups/hotspot/docs/RuntimeOverview.html

Java Coding Style: https://www.oracle.com/java/technologies/javase/codeconventions-contents.html

HotSpot Coding Style: https://github.com/openjdk/jdk/blob/master/doc/hotspot-style.md

HotSpot VM Options: https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html

PrintAssembly: https://wiki.openjdk.java.net/display/HotSpot/PrintAssembly

HotSpot Glossary of Terms: https://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html

Building the JDK: https://openjdk.java.net/groups/build/doc/building.html

Building jtreg: http://openjdk.java.net/jtreg/build.html

JVM Allocate Prefetch Options: https://www.opsian.com/blog/jvms-allocateprefetch-options/

LoongArch LP64 ABI: 寄存器使用约定

GPR

Index Alias Usage Preserved across calls
0 $zero Constant zero Unused
1 $ra Return address No
2 $tp TLS Unused
3 $sp Stack pointer Yes
4-11 $a0-$a7 Argument registers No
4-5 $v0-$v1 Return value No
12-20 $t0-$t8 Temporary registers No
21 $x Reserved Unused
22 $fp Frame pointer Yes
23-31 $s0-$s8 Subroutine register variables Yes

FPR

Index Alias Usage Preserved across calls
0-7 $fa0-$fa7 Argument registers No
0-1 $fv0-$fv1 Return value No
8-23 $ft0-$ft15 Temporary registers No
24-31 $fs0-$fs7 Soubroutine register variables Yes

Over!

Catch exception thrown from memory references

By default an exception can only occur during a function call or a throw. If we needs to catch excpetions thrown from trapping instructions, using the `-fnon-call-exceptions`.

Docs:

-fnon-call-exceptions

Generate code that allows trapping instructions to throw exceptions. Note that this requires platform-specific runtime support that does not exist everywhere. Moreover, it only allows trapping instructions to throw exceptions, i.e. memory references or floating point instructions. It does not allow exceptions to be thrown from arbitrary signal handlers such as SIGALRM. 

Example:

#include <iostream>
 
#include <signal.h>
 
using namespace std;
 
static void
sigsegv_handler (int signo)
{
    throw 0;
}
 
int
main (int argc, char *argv[])
{
    int *ptr = nullptr;
    int res;
 
    signal (SIGSEGV, sigsegv_handler);
 
    try {
        res = *ptr;
    } catch (...) {
        cout << "exception" << endl;
    }
 
    return res;
}
g++ -fnon-call-exceptions -o sig sig.cpp

Refernces:
[1] https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html