10272 |
10272 |
10273 |
10273 |
10274 // ============================================================================ |
10274 // ============================================================================ |
10275 // inlined locking and unlocking |
10275 // inlined locking and unlocking |
10276 |
10276 |
10277 instruct cmpFastLock(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2, o7RegP scratch ) %{ |
10277 instruct cmpFastLock(flagsRegP pcc, iRegP object, o1RegP box, iRegP scratch2, o7RegP scratch ) %{ |
10278 match(Set pcc (FastLock object box)); |
10278 match(Set pcc (FastLock object box)); |
10279 |
10279 |
10280 effect(KILL scratch, TEMP scratch2); |
10280 effect(TEMP scratch2, USE_KILL box, KILL scratch); |
10281 ins_cost(100); |
10281 ins_cost(100); |
10282 |
10282 |
10283 format %{ "FASTLOCK $object, $box; KILL $scratch, $scratch2, $box" %} |
10283 format %{ "FASTLOCK $object,$box\t! kills $box,$scratch,$scratch2" %} |
10284 ins_encode( Fast_Lock(object, box, scratch, scratch2) ); |
10284 ins_encode( Fast_Lock(object, box, scratch, scratch2) ); |
10285 ins_pipe(long_memory_op); |
10285 ins_pipe(long_memory_op); |
10286 %} |
10286 %} |
10287 |
10287 |
10288 |
10288 |
10289 instruct cmpFastUnlock(flagsRegP pcc, iRegP object, iRegP box, iRegP scratch2, o7RegP scratch ) %{ |
10289 instruct cmpFastUnlock(flagsRegP pcc, iRegP object, o1RegP box, iRegP scratch2, o7RegP scratch ) %{ |
10290 match(Set pcc (FastUnlock object box)); |
10290 match(Set pcc (FastUnlock object box)); |
10291 effect(KILL scratch, TEMP scratch2); |
10291 effect(TEMP scratch2, USE_KILL box, KILL scratch); |
10292 ins_cost(100); |
10292 ins_cost(100); |
10293 |
10293 |
10294 format %{ "FASTUNLOCK $object, $box; KILL $scratch, $scratch2, $box" %} |
10294 format %{ "FASTUNLOCK $object,$box\t! kills $box,$scratch,$scratch2" %} |
10295 ins_encode( Fast_Unlock(object, box, scratch, scratch2) ); |
10295 ins_encode( Fast_Unlock(object, box, scratch, scratch2) ); |
10296 ins_pipe(long_memory_op); |
10296 ins_pipe(long_memory_op); |
10297 %} |
10297 %} |
10298 |
10298 |
10299 // The encodings are generic. |
10299 // The encodings are generic. |