src/cpu/sparc/vm/interp_masm_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8163014.01 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/interp_masm_sparc.cpp

Print this page




 342 
 343 
 344 // Known good alignment in _LP64 but unknown otherwise
 345 void InterpreterMacroAssembler::load_unaligned_long(Register r1, int offset, Register rd) {
 346   assert_not_delayed();
 347 #ifdef _LP64
 348   ldx(r1, offset, rd);
 349 #else
 350   ld(r1, offset, rd);
 351   ld(r1, offset + Interpreter::stackElementSize, rd->successor());
 352 #endif
 353 }
 354 
 355 // Known good alignment in _LP64 but unknown otherwise
 356 void InterpreterMacroAssembler::store_unaligned_long(Register l, Register r1, int offset) {
 357   assert_not_delayed();
 358 
 359 #ifdef _LP64
 360   stx(l, r1, offset);
 361   // store something more useful here
 362   debug_only(stx(G0, r1, offset+Interpreter::stackElementSize);)
 363 #else
 364   st(l, r1, offset);
 365   st(l->successor(), r1, offset + Interpreter::stackElementSize);
 366 #endif
 367 }
 368 
 369 void InterpreterMacroAssembler::pop_i(Register r) {
 370   assert_not_delayed();
 371   ld(Lesp, Interpreter::expr_offset_in_bytes(0), r);
 372   inc(Lesp, Interpreter::stackElementSize);
 373   debug_only(verify_esp(Lesp));
 374 }
 375 
 376 void InterpreterMacroAssembler::pop_ptr(Register r, Register scratch) {
 377   assert_not_delayed();
 378   ld_ptr(Lesp, Interpreter::expr_offset_in_bytes(0), r);
 379   inc(Lesp, Interpreter::stackElementSize);
 380   debug_only(verify_esp(Lesp));
 381 }
 382 




 342 
 343 
 344 // Known good alignment in _LP64 but unknown otherwise
 345 void InterpreterMacroAssembler::load_unaligned_long(Register r1, int offset, Register rd) {
 346   assert_not_delayed();
 347 #ifdef _LP64
 348   ldx(r1, offset, rd);
 349 #else
 350   ld(r1, offset, rd);
 351   ld(r1, offset + Interpreter::stackElementSize, rd->successor());
 352 #endif
 353 }
 354 
 355 // Known good alignment in _LP64 but unknown otherwise
 356 void InterpreterMacroAssembler::store_unaligned_long(Register l, Register r1, int offset) {
 357   assert_not_delayed();
 358 
 359 #ifdef _LP64
 360   stx(l, r1, offset);
 361   // store something more useful here
 362   stx(G0, r1, offset+Interpreter::stackElementSize);
 363 #else
 364   st(l, r1, offset);
 365   st(l->successor(), r1, offset + Interpreter::stackElementSize);
 366 #endif
 367 }
 368 
 369 void InterpreterMacroAssembler::pop_i(Register r) {
 370   assert_not_delayed();
 371   ld(Lesp, Interpreter::expr_offset_in_bytes(0), r);
 372   inc(Lesp, Interpreter::stackElementSize);
 373   debug_only(verify_esp(Lesp));
 374 }
 375 
 376 void InterpreterMacroAssembler::pop_ptr(Register r, Register scratch) {
 377   assert_not_delayed();
 378   ld_ptr(Lesp, Interpreter::expr_offset_in_bytes(0), r);
 379   inc(Lesp, Interpreter::stackElementSize);
 380   debug_only(verify_esp(Lesp));
 381 }
 382 


src/cpu/sparc/vm/interp_masm_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File