Currently the way we declare Registers uses up a lot of space. The
definition:
const Register noreg = as_Register(-1);
results in a private definition of noreg in every file that sees it
plus a static construtor call to initialize it. Since sparc has a lot
of registers and register_<arch>.hpp is seen by almost all files, roughly 220, this results in a lot wasted space. There are about 125 registers declared in total, including the ones used by the interpreter, which total about 125 * 220 * 4 = 110k of local definitions of Register. In addition everyone of these has a static constructor that is run at library load time. The code for these totals roughly 120k.
###@###.### 2002-02-25
definition:
const Register noreg = as_Register(-1);
results in a private definition of noreg in every file that sees it
plus a static construtor call to initialize it. Since sparc has a lot
of registers and register_<arch>.hpp is seen by almost all files, roughly 220, this results in a lot wasted space. There are about 125 registers declared in total, including the ones used by the interpreter, which total about 125 * 220 * 4 = 110k of local definitions of Register. In addition everyone of these has a static constructor that is run at library load time. The code for these totals roughly 120k.
###@###.### 2002-02-25
- relates to
-
JDK-8041796 Register classes should not use their encodings as this pointers
-
- Closed
-