The main use for non-PIC code at present is JIT code, and JIT code can live anywhere in memory and reference other symbols defined anywhere in memory, so it needs to use the "large" code model. func_addr and globalsym_addr instructions were already using `movabs` to support arbitrary 64-bit addresses, so this just makes calls be legalized to support arbitrary 64-bit addresses also.
17 lines
381 B
Plaintext
17 lines
381 B
Plaintext
test legalizer
|
|
|
|
; Pre-SSE 4.1, we need to use runtime library calls for floating point rounding operations.
|
|
set is_64bit
|
|
set is_pic
|
|
isa intel
|
|
|
|
function %floor(f32) -> f32 {
|
|
ebb0(v0: f32):
|
|
v1 = floor v0
|
|
return v1
|
|
}
|
|
; check: function %floor(f32 [%xmm0]) -> f32 [%xmm0] system_v {
|
|
; check: sig0 = (f32) -> f32 system_v
|
|
; check: fn0 = sig0 %FloorF32
|
|
; check: v1 = call fn0(v0)
|