src/cpu/sparc/vm/sparc.ad

changeset 3406
e9a5e0a812c8
parent 3405
5da7201222d5
child 3637
61b82be3b1ff
equal deleted inserted replaced
3405:5da7201222d5 3406:e9a5e0a812c8
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.

mercurial