343 static void c_calling_convention( BasicType*, VMRegPair *, uint ); 344 // Frame pointer. The frame pointer is kept at the base of the stack 345 // and so is probably the stack pointer for most machines. On Intel 346 // it is ESP. On the PowerPC it is R1. On Sparc it is SP. 347 OptoReg::Name c_frame_pointer() const; 348 static RegMask c_frame_ptr_mask; 349 350 // !!!!! Special stuff for building ScopeDescs 351 virtual int regnum_to_fpu_offset(int regnum); 352 353 // Is this branch offset small enough to be addressed by a short branch? 354 bool is_short_branch_offset(int rule, int br_size, int offset); 355 356 // Optional scaling for the parameter to the ClearArray/CopyArray node. 357 static const bool init_array_count_is_in_bytes; 358 359 // Threshold small size (in bytes) for a ClearArray/CopyArray node. 360 // Anything this size or smaller may get converted to discrete scalar stores. 361 static const int init_array_short_size; 362 363 // Should the Matcher clone shifts on addressing modes, expecting them to 364 // be subsumed into complex addressing expressions or compute them into 365 // registers? True for Intel but false for most RISCs 366 static const bool clone_shift_expressions; 367 368 // Should constant table entries be accessed with loads using 369 // absolute addressing? True for x86 but false for most RISCs. 370 static const bool constant_table_absolute_addressing; 371 372 static bool narrow_oop_use_complex_address(); 373 374 // Generate implicit null check for narrow oops if it can fold 375 // into address expression (x64). 376 // 377 // [R12 + narrow_oop_reg<<3 + offset] // fold into address expression 378 // NullCheck narrow_oop_reg 379 // 380 // When narrow oops can't fold into address expression (Sparc) and 381 // base is not null use decode_not_null and normal implicit null check. 382 // Note, decode_not_null node can be used here since it is referenced | 343 static void c_calling_convention( BasicType*, VMRegPair *, uint ); 344 // Frame pointer. The frame pointer is kept at the base of the stack 345 // and so is probably the stack pointer for most machines. On Intel 346 // it is ESP. On the PowerPC it is R1. On Sparc it is SP. 347 OptoReg::Name c_frame_pointer() const; 348 static RegMask c_frame_ptr_mask; 349 350 // !!!!! Special stuff for building ScopeDescs 351 virtual int regnum_to_fpu_offset(int regnum); 352 353 // Is this branch offset small enough to be addressed by a short branch? 354 bool is_short_branch_offset(int rule, int br_size, int offset); 355 356 // Optional scaling for the parameter to the ClearArray/CopyArray node. 357 static const bool init_array_count_is_in_bytes; 358 359 // Threshold small size (in bytes) for a ClearArray/CopyArray node. 360 // Anything this size or smaller may get converted to discrete scalar stores. 361 static const int init_array_short_size; 362 363 // Some hardware needs 2 CMOV's for longs. 364 static const int long_cmove_cost(); 365 366 // Some hardware have expensive CMOV for float and double. 367 static const int float_cmove_cost(); 368 369 // Should the Matcher clone shifts on addressing modes, expecting them to 370 // be subsumed into complex addressing expressions or compute them into 371 // registers? True for Intel but false for most RISCs 372 static const bool clone_shift_expressions; 373 374 // Should constant table entries be accessed with loads using 375 // absolute addressing? True for x86 but false for most RISCs. 376 static const bool constant_table_absolute_addressing; 377 378 static bool narrow_oop_use_complex_address(); 379 380 // Generate implicit null check for narrow oops if it can fold 381 // into address expression (x64). 382 // 383 // [R12 + narrow_oop_reg<<3 + offset] // fold into address expression 384 // NullCheck narrow_oop_reg 385 // 386 // When narrow oops can't fold into address expression (Sparc) and 387 // base is not null use decode_not_null and normal implicit null check. 388 // Note, decode_not_null node can be used here since it is referenced |