I have allocated a Header word along with 8 header bits in the reference count garbage collector implementation. I didn't use that header word allocated except it is allocated for each object. But when I run the implementation I end up with exceptions. It would be great help if someone summarizes the reason for this exception. 
Exception in thread "MainThread": JikesRVM: internal error: recursive use of hardware exception registers (exiting)

-- Stack --
(0x67507c6c 1132)   at [0x67507c6c, 0x5b308f54] Ljava/nio/charset/Charset; provider()Ljava/nio/charset/spi/CharsetProvider; at line 247
(0x67507c90 1130)   at [0x67507c90, 0x5b3090fc] Ljava/nio/charset/Charset; charsetForName(Ljava/lang/String;)Ljava/nio/charset/Charset; at line 208
(0x67507cb0 1129)   at [0x67507cb0, 0x5b0274ef] Ljava/nio/charset/Charset; forName(Ljava/lang/String;)Ljava/nio/charset/Charset; at line 188
(0x67507cdc 1396)   at [0x67507cdc, 0x5b089ebf] Ljava/lang/String; getBytes(Ljava/lang/String;)[B at line 733
(0x67507d0c 11899)   at [0x67507d0c, 0x5b08a174] Ljava/io/PrintStream; writeChars(Ljava/lang/String;II)V at line 342
(0x67507d3c 11896)   at [0x67507d3c, 0x5b089b26] Ljava/io/PrintStream; print(Ljava/lang/String;Z)V at line 295
(0x67507d64 11906)   at [0x67507d64, 0x5b0c04c3] Ljava/io/PrintStream; print(Ljava/lang/String;)V at line 422
(0x67507d88 156)   at [0x67507d88, 0x5b0c052c] Ljava/lang/Throwable; printStackTrace(Ljava/io/PrintStream;)V at line 363
(0x67507da8 155)   at [0x67507da8, 0x5b1d8686] Ljava/lang/Throwable; printStackTrace()V at line 352
(0x67507dc8 13080)   at [0x67507dc8, 0x5b339a47] Lorg/jikesrvm/scheduler/RVMThread; handleUncaughtException(Ljava/lang/Throwable;)V at line 4723
(0x67507de8 8645)   at [0x67507de8, 0x5b339ce0] Lorg/jikesrvm/runtime/RuntimeEntrypoints; handleUncaughtException(Ljava/lang/Throwable;)V at line 1071
(0x67507e34 8644)   at [0x67507e34, 0x5b33ab25] Lorg/jikesrvm/runtime/RuntimeEntrypoints; deliverException(Ljava/lang/Throwable;Lorg/jikesrvm/ArchitectureSpecific$Registers;)V at line 1066
(0x67507e74 8632)   at [0x67507e74, 0x5b2c7f0c] Lorg/jikesrvm/runtime/RuntimeEntrypoints; deliverHardwareException(II)V at line 796
(0x67507e90 1)   at [0x67507e90, 0x5b2c7f0c] <hardware trap>
(0x6753af70 4857)   at [0x6753af70, 0x5b2cd788] Ljava/security/VMAccessController; popContext()V at line 135
(0x6753af90 4436)   at [0x6753af90, 0x5b1dceb9] Ljava/security/AccessController; doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; at line 100
(0x6753afb0 13031)   at [0x6753afb0, 0x5b1dd152] Lorg/jikesrvm/scheduler/RVMThread; callSystemExit(I)V at line 2786
(0x6753afdc 13030)   at [0x6753afdc, 0x5b33152f] Lorg/jikesrvm/scheduler/RVMThread; terminate()V at line 2754
(0x6753affc 13115)   at [0x6753affc, 0x08050376] Lorg/jikesrvm/scheduler/RVMThread; startoff()V at line 2631

In thread 7 getInstructionOffset: ip is not within compiled code for method: 0x00000000
supposed method is Lgnu/classpath/SystemProperties;.getProperty (Ljava/lang/String;)Ljava/lang/String;
code for this method starts at 0x5b26e980
and has last valid return address of 0x5b26e9dc
The requested instruction address was 0x00000000
JikesRVM: internal error: recursive use of hardware exception registers (exiting)

Hari Krishnan