|
FFmpeg
|
#include <assert.h>#include <limits.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include "libavutil/dynarray.h"#include "libavutil/bprint.c"#include "rasm.c"#include "rasm_print.c"#include "ops_impl.h"#include "ops_entries.c"#include "ops_asmgen.c"Go to the source code of this file.
Data Structures | |
| struct | SwsAArch64OpEntry |
| Implementation parameters for all exported functions. More... | |
Macros | |
| #define | AVUTIL_AVASSERT_H |
| This file is compiled as a standalone build-time tool and must not depend on internal FFmpeg libraries. | |
| #define | AVUTIL_LOG_H |
| #define | AVUTIL_MACROS_H |
| #define | AVUTIL_MEM_H |
| #define | AV_STRINGIFY(s) |
| #define | AV_TOSTRING(s) |
| #define | av_assert0(cond) |
| #define | av_malloc(s) |
| #define | av_mallocz(s) |
| #define | av_realloc(p, s) |
| #define | av_strdup(s) |
| #define | av_free(p) |
| #define | FFMAX(a, b) |
| #define | FFMIN(a, b) |
| #define | FF_ARRAY_ELEMS(a) |
| #define | MKTAG(a, b, c, d) |
| #define | ENTRY(fname, ...) |
| #define | IMPL_PRIV(s) |
Variables | |
| static const SwsAArch64OpEntry | ops_entries [] |
| static const int | rw_gprs [] |
| Register assignment for CPS functions. | |
| #define AVUTIL_AVASSERT_H |
This file is compiled as a standalone build-time tool and must not depend on internal FFmpeg libraries.
The necessary utils are redefined below using standard C equivalents.
Definition at line 39 of file ops_static.c.
| #define AVUTIL_LOG_H |
Definition at line 40 of file ops_static.c.
| #define AVUTIL_MACROS_H |
Definition at line 41 of file ops_static.c.
| #define AVUTIL_MEM_H |
Definition at line 42 of file ops_static.c.
| #define AV_STRINGIFY | ( | s | ) |
Definition at line 43 of file ops_static.c.
| #define AV_TOSTRING | ( | s | ) |
Definition at line 44 of file ops_static.c.
| #define av_assert0 | ( | cond | ) |
Definition at line 45 of file ops_static.c.
Referenced by asmgen_setup_linear().
| #define av_malloc | ( | s | ) |
Definition at line 52 of file ops_static.c.
Referenced by a64multi_encode_init(), aac_decoder_config(), aarch64_setup_dither(), aarch64_setup_linear(), aax_read_packet(), add_entry(), add_file(), add_hdr_plus(), add_hdr_smpte2094_app5(), add_metadata(), adpcm_encode_init(), alloc_buffer(), alloc_gamma_tbl(), allocate_buffers(), allocate_frame_buffers(), decklink_allocator::AllocateBuffer(), amf_encode_init_av1(), aom_encode(), ape_decode_init(), ape_tag_read_field(), apng_encode_frame(), apply_color_indexing_transform(), apv_metadata_add_payload(), asf_deinterleave(), asf_read_content_desc(), asf_read_ext_content(), asf_read_metadata(), asf_read_metadata_obj(), asf_read_picture(), asf_read_value(), asf_write_header(), ass_decode_frame(), ass_decode_init(), ass_encode_init(), at_write_header(), audio_element_obu(), av_append_path_component(), av_asprintf(), av_buffer_alloc(), av_dynamic_hdr_plus_to_t35(), av_dynamic_hdr_smpte2094_app5_to_t35(), av_encryption_info_add_side_data(), av_encryption_init_info_add_side_data(), av_expr_parse(), av_file_map(), av_frame_alloc(), av_image_alloc(), av_malloc(), av_malloc_array(), av_mallocz(), av_memdup(), av_memdup(), av_opt_set_bin(), av_packet_alloc(), av_packet_pack_dictionary(), av_packet_side_data_new(), av_refstruct_alloc_ext_c(), av_samples_alloc(), avcodec_alloc_context3(), avfilter_graph_dump(), avi_add_ientry(), avi_read_tag(), avio_alloc_context(), avpriv_alloc_fixed_dsp(), avpriv_tempfile(), blurdetect_config_input(), cbs_jpeg_split_fragment(), check_add_bytes(), check_add_left_pred(), check_add_left_pred_16(), check_add_median_pred(), check_dcbzl_effect(), check_yuv2yuvX(), checkasm_check_av_tx(), checkasm_check_blend(), checkasm_check_vf_gblur(), cine_read_header(), cinepak_encode_init(), codec_config_obu(), compute_crc_of_packets(), config_enc_params(), config_input(), config_input(), config_input(), config_input(), config_input(), config_input(), config_input(), config_input(), config_input(), config_output(), config_output(), config_output(), config_output(), config_props(), convert_mono_buffer(), convert_str(), convolution_opencl_make_filter_params(), cookie_string(), copy_to_pbr(), cqueue_create(), create_entry(), create_rtp_muxer(), create_s337_payload(), create_vorbis_context(), cuvid_output_frame(), d3d12va_av1_decode_init(), d3d12va_encode_av1_get_coded_data(), data_open(), DECL_SETUP(), decode_dvd_subtitles(), decode_frame(), decode_frame(), decode_frame(), decode_header_trees(), decode_init(), decode_init(), decode_init(), decode_init(), decode_init(), decode_init(), decode_init(), decode_init(), decode_init(), decode_main_header(), decode_write(), der_to_pem(), dnn_execute_model_onnx(), dnn_execute_model_ov(), dnn_execute_model_tf(), dnn_execute_model_th(), doubles2str(), dshow_add_device(), dshow_cycle_formats(), dtshd_read_header(), dup_wchar_to_utf8(), dvbsub_parse_region_segment(), dvdsub_parse(), dvdsub_parse_extradata(), dvdvideo_read_header(), dxv_init(), eb_receive_packet(), eightsvx_decode_frame(), encode_apng(), encode_frame(), encode_frame(), encode_frame(), encode_frame(), encode_init(), encode_init(), encode_init(), encode_init(), encode_init(), encode_init(), encode_jpegls_init(), encode_tile(), escape130_decode_init(), exchange_sdp(), exif_decode_tag(), extract_extradata_av1(), extract_extradata_h2645(), extract_extradata_lcevc(), extract_extradata_mpeg12(), extract_extradata_mpeg4(), extract_extradata_vc1(), extract_header(), extract_lltask_from_task(), extract_lltask_from_task(), extract_lltask_from_task(), extract_lltask_from_task(), fast_malloc(), fdk_aac_decode_init(), ff_alloc_extradata(), ff_av1_filter_obus_buf(), ff_bgmc_init(), ff_bprint_finalize_as_fam(), ff_celt_pvq_init(), ff_dcaadpcm_init(), ff_dovi_rpu_generate(), ff_dshow_pin_Setup(), ff_ebur128_init(), ff_ffv1_write_extradata(), ff_gblur_init_x86(), ff_http_auth_create_response(), ff_iamf_write_audio_frame(), ff_imf_cpl_alloc(), ff_init_desc_cfmt_convert(), ff_init_desc_chscale(), ff_init_desc_fmt_convert(), ff_init_desc_hscale(), ff_init_filters(), ff_init_gamma_convert(), ff_interleave_add_packet(), ff_jpegls_decode_picture(), ff_libwebp_get_frame(), ff_mov_init_hinting(), ff_mov_write_packet(), ff_nal_unit_extract_rbsp(), ff_opencl_filter_load_program(), ff_opus_psy_init(), ff_packet_list_put(), ff_parse_fmtp(), ff_proc_from_dnn_to_frame(), ff_proc_from_frame_to_dnn(), ff_qp_table_extract(), ff_queue_create(), ff_rv34_decode_frame(), ff_safe_queue_create(), ff_sauce_read(), ff_sndio_open(), ff_sws_fill_xyztables(), ff_sws_filter_generate(), ff_sws_jit_alloc(), ff_sws_op_list_duplicate(), ff_tadd_string_metadata(), ff_tx_dct_init(), ff_tx_fft_init_naive_small(), ff_tx_fft_inplace_small_init(), ff_tx_fft_pfa_init(), ff_tx_gen_compound_mapping(), ff_tx_gen_default_map(), ff_tx_gen_pfa_input_map(), ff_tx_gen_ptwo_revtab(), ff_tx_init_subtx(), ff_tx_mdct_init(), ff_tx_mdct_pfa_init(), ff_urldecode(), ff_videotoolbox_av1c_extradata_create(), ff_videotoolbox_avcc_extradata_create(), ff_videotoolbox_hvcc_extradata_create(), ff_videotoolbox_vpcc_extradata_create(), ff_vk_exec_pool_init(), ff_vk_load_props(), ff_vmafmotion_init(), ff_vs_init(), ff_vvc_frame_thread_init(), ffat_convert_layout(), ffat_create_decoder(), ffat_get_magic_cookie(), ffat_init_encoder(), ffat_update_ctx(), ffio_ensure_seekback(), ffio_fdopen(), ffio_realloc_buf(), fft_pfa_init(), ffurl_get_multi_file_handle(), fill_codec_config(), fill_gamma_table(), fill_model_input_onnx(), fill_model_input_tf(), fill_model_input_th(), fill_timecode(), filter_frame(), find_smallest_bounding_rectangle(), fixup_color_mask(), flac_decoder_config(), flac_encode_init(), flashsv_decode_frame(), flv_append_keyframe_info(), flv_parse_mod_ex_data(), fourxm_read_header(), frame_list_add_frame(), fsync_init(), ftp_open_dir(), gen_sub_text(), get_audio_config(), get_duration(), get_input_onnx(), get_key(), get_matching_parameters(), get_meta(), get_metadata(), get_metadata(), get_stats(), get_stats(), get_tag(), get_tag(), getstr8(), gif_encode_init(), gif_image_write_image(), h264_metadata_handle_display_orientation(), h26x_prefix_aud(), hap_init(), hevc_extradata_to_annexb(), hls_init(), hls_read_header(), hw_device_default_name(), id3v2_parse(), iec61883_callback(), import_pem(), infer_completion_callback(), init(), init(), init(), init(), init_filter(), init_noise(), init_pattern_from_file(), init_subtitle_context(), inject_fake_duration_metadata(), interpolate(), interpolate_refplane(), iso88591_to_utf8(), latm_decode_audio_specific_config(), lavfi_read_header(), libjxl_av_malloc(), liboapve_init(), libopus_encode_init(), librav1e_encode_init(), libvorbis_encode_init(), libx265_encode_init(), libxeve_init(), LLVMFuzzerTestOneInput(), load_mask(), m_inv_init(), magy_encode_init(), main(), main(), main(), make_digest_auth(), mediaformat_jni_getBuffer(), mediaformat_jni_setBuffer(), mix_presentation_obu(), mjpeg_decode_app(), mjpeg_decode_com(), mkv_write_block(), mmap_read_frame(), modplug_read_header(), mov_create_chapter_track(), mov_create_dvd_sub_decoder_specific_info(), mov_create_timecode_track(), mov_init(), mov_parse_stsd_data(), mov_parse_uuid_spherical(), mov_read_cmov(), mov_read_colr(), mov_read_custom(), mov_read_dref(), mov_read_ftyp(), mov_read_hdlr(), mov_read_iprp(), mov_read_lhvc(), mov_read_pssh(), mov_read_saiz(), mov_read_sdtp(), mov_read_stsz(), mov_read_tkhd(), mov_text_tx3g(), mov_write_chan_tag(), mov_write_chnl_tag(), mov_write_eac3_tag(), mov_write_header(), mov_write_single_packet(), mov_write_stts_tag(), mpa_robust_parse_packet(), mpc8_parse_seektable(), mpc_read_header(), mpegps_read_pes_header(), mpegts_write_packet_internal(), mss3_decode_init(), mxf_read_us_ascii_string(), mxf_read_utf16_string(), mxpeg_decode_mxm(), nlmeans_plane(), nvdec_retrieve_data(), nvenc_check_codec_support(), of_add_attachments(), ogg_new_stream(), ogg_read_page(), ogg_save(), oh_encode_output_packet(), onnx_create_inference_request(), open_filter_param(), open_null_ctx(), opencl_device_init(), opencl_get_device_string(), opencl_get_platform_string(), opt_get_elem(), opt_set_array(), opus_decoder_config(), opus_encode_init(), parameter_block_obu(), parse_cinespace(), parse_MP4DecConfigDescrTag(), parse_options(), parse_playlist(), parse_setup_header(), pchip_find_derivatives(), pcx_decode_frame(), pem_to_der(), piz_uncompress(), process_ftch(), prompeg_create_bitstring(), prompeg_init(), prores_encode_init(), push_main_image_2d_sequence(), push_marker_sequence(), qsv_retrieve_enc_params(), queue_frames(), queue_frames(), rasm_print(), read_binary(), read_dist_clustering(), read_frame(), read_geobtag(), read_graph(), read_header(), read_header_gme(), read_header_openmpt(), read_header_vs(), read_priv(), read_sb_block(), read_shape_from_file(), read_string(), read_vblock(), recv_msg(), reopen_demux_for_component(), rfc4175_handle_packet(), rl2_read_header(), roq_dpcm_encode_init(), rscc_decode_frame(), rscc_init(), rtmp_calc_swfhash(), rtmp_open(), rtp_get_multi_file_handle(), rtp_parse_mp4_au(), rtp_write_header(), rtsp_read_announce(), rtsp_read_command_reply(), run_test(), rv34_decoder_alloc(), sample_queue_retain(), save_sei(), screenpresso_init(), seq_init_frame_buffers(), set_buf_size(), set_spdif(), set_string_binary(), setup_side_data_entry(), shared_open(), show_qrcode(), smjpeg_read_header(), sox_read_header(), spdif_write_header(), submit_stats(), svq3_decode_extradata(), swf_read_header(), swf_read_packet(), sws_allocVec(), sws_getDefaultFilter(), tak_read_header(), teletext_decode_frame(), tf_create_inference_request(), th_create_inference_request(), tiff_decode_tag(), tl_create(), tls_export_key_cert(), tls_gen_self_signed(), tls_handshake_loop(), tls_write(), translate_shuffle(), tscc2_decode_init(), unescape(), unescape(), unpack_codebook(), unsharp_opencl_make_filter_params(), update_block_buffers(), update_mouse_pointer(), update_size(), uri_table_map(), utvideo_encode_init(), vaapi_device_init(), vaapi_encode_h264_configure(), vaapi_encode_issue(), vaapi_encode_surface_alignment(), vaapi_frames_get_constraints(), vaapi_frames_init(), vaapi_map_frame(), vaapi_transfer_get_formats(), vanc_to_cc(), var_read_string(), vc1_decode_init_alloc_tables(), vfw_read_header(), vgs_parse_color(), vgs_parse_numeric_argument(), video_decode(), video_decode_example(), vk_h264_create_params(), vmd_read_header(), vmdvideo_decode_init(), vorbis_parse_setup_hdr_codebooks(), vorbis_parse_setup_hdr_floors(), vorbis_parse_single_comment(), vp3_decode_frame(), vp56_size_changed(), vpx_encode(), vqa_decode_init(), vqc_decode_init(), vt_dump_encoder(), vulkan_encode_h264_init(), wavesynth_init(), wc3_read_header(), webp_anim_read_packet(), webp_decode_frame(), write_ident(), write_manifest(), wtvfile_open_sector(), xan_decode_init(), xan_decode_init(), XAVS_init(), xiph_handle_packet(), xiph_parse_fmtp_pair(), xvid_encode_init(), and xvid_strip_vol_header().
| #define av_mallocz | ( | s | ) |
Definition at line 53 of file ops_static.c.
| #define av_realloc | ( | p, | |
| s ) |
Definition at line 54 of file ops_static.c.
Referenced by add_adaptation_set(), add_file(), append_extradata(), av_bprint_alloc(), av_bprint_finalize(), av_buffer_realloc(), av_calloc(), av_dict_set(), av_expr_parse(), av_fast_realloc(), av_get_token(), av_packet_add_side_data(), av_realloc_array(), av_realloc_f(), av_reallocp(), av_strdup(), av_strndup(), buf_realloc(), encode_frames(), epic_hash_add(), ff_cbs_h2645_assemble_fragment(), ff_els_decode_unsigned(), ff_h264_parse_sprop_parameter_sets(), ff_img_read_header(), ff_load_textfile(), ff_rtmp_packet_create(), ff_vk_load_props(), ff_vs_init(), ff_zlib_expand(), fixup_vorbis_headers(), flac_fifo_alloc(), flac_fifo_grow(), get_ppm(), get_ppt(), jpeg2000_decode_packet(), libjxl_encode_init(), libjxl_process_output(), main(), match_streams(), mov_fix_index(), mov_init(), parse_adaptation_sets(), parse_stream(), probe_codec(), qt_rtp_parse_packet(), and xmlescape().
| #define av_strdup | ( | s | ) |
Definition at line 55 of file ops_static.c.
Referenced by add_tracked_method(), aribcaption_trans_text_subtitle(), ass_decode_frame(), av_append_path_component(), av_calloc(), av_channel_layout_from_string(), av_dict_get_string(), av_dict_set(), av_opt_get(), av_opt_get_array(), avfilter_graph_parse(), avfilter_graph_queue_command(), avfilter_graph_segment_create_filters(), avformat_alloc_output_context2(), avformat_open_input(), avpriv_tempfile(), build_headers(), caca_write_header(), check_avoptions_used(), check_extensions(), check_layers(), cine_read_header(), config_eq_output(), config_input(), config_input(), config_input(), config_output(), config_params(), configure_filtergraph(), configure_video_filters(), copy_av_subtitle(), create_rtp_muxer(), create_streams(), curves_init(), dash_init(), dec_filter_add(), dec_open(), delimited_dict_parse(), describe_filter_link(), dnn_load_model_onnx(), draw_curves(), dshow_cycle_devices(), enc_stats_get_file(), exchange_sdp(), ff_alsa_get_device_list(), ff_boxblur_eval_filter_params(), ff_bsf_alloc(), ff_copy_whiteblacklists(), ff_decklink_list_devices(), ff_fbdev_get_device_list(), ff_filter_alloc(), ff_format_check_set_url(), ff_http_do_new_request2(), ff_http_match_no_proxy(), ff_jni_jstring_to_utf_chars(), ff_mkdir_p(), ff_tls_parse_host(), ffio_fdopen(), ffurl_connect(), fg_send_command(), filter_parse(), format_name(), ftp_connect(), ftp_current_dir(), ftp_parse_entry_mlsd(), ftp_parse_entry_nlst(), generate_sdp_offer(), geq_init(), get_cookies(), get_current_fragment(), get_opt_flags_string(), getenv_dup(), header_callback(), hls_delete_old_segments(), hls_init(), hls_mux_init(), hls_read_header(), hls_rename_temp_file(), hls_start(), hls_write_packet(), hls_write_trailer(), http_open(), http_open_cnx(), http_seek_internal(), icecast_open(), ifile_open(), ifilter_bind_dec(), ifilter_bind_ist(), imf_read_header(), init(), init(), init(), init(), init(), init_filter(), init_filters(), init_filters(), init_muxer(), initialize(), inout_add(), ist_add(), ist_filter_add(), label_string(), lavfi_read_header(), libcurl_open(), libsmbc_read_dir(), libssh_read_dir(), log_callback(), main(), main(), match_stream_specifier(), measure_text(), mediacodec_dec_get_audio_codec(), mediacodec_dec_get_video_codec(), mediacodec_ndk_getName(), mediaformat_ndk_getString(), mediaformat_ndk_toString(), mkv_write_simpletag(), mmsh_open_internal(), mpjpeg_read_packet(), mtv_read_header(), new_init_section(), new_stream_video(), nppscale_parse_expr(), of_add_attachments(), of_add_groups(), of_parse_iamf_submixes(), ofilter_bind_enc(), ofilter_bind_ifilter(), open_camera(), open_input_file(), open_output_file(), open_slave(), opt_add_vfilter(), opt_attach(), opt_codec(), opt_codec(), opt_copy_elem(), opt_filter_complex(), opt_filter_threads(), opt_get_elem(), opt_input_file(), opt_input_file(), opt_output_file_o(), opt_print_filename(), opt_vstats_file(), ost_add(), ost_get_filters(), param_init(), parse_answer(), parse_assetmap(), parse_cc_stream_mapstring(), parse_channel_expressions(), parse_device_name(), parse_device_name(), parse_fmtp(), parse_forced_key_frames(), parse_imf_asset_map_from_xml_dom(), parse_location(), parse_manifest(), parse_manifest_representation(), parse_playlist(), parse_playlist(), parse_psfile(), parse_read_interval(), parse_read_intervals(), parse_reinit_opts(), parse_set_cookie(), parse_size(), parse_speaker_pos(), parse_times(), parse_variant_stream_mapstring(), parse_video_var(), plot_freqs(), process_command(), process_command(), process_command(), process_line(), pulse_add_detected_device(), pulse_server_info_cb(), qsv_decode_init(), qsv_enc_init(), rasm_add_comment(), rasm_add_directive(), rasm_annotate(), rasm_annotate_next(), rasm_new_label(), read_channels(), read_classify_label_file(), read_custom_noise(), read_detect_label_file(), read_gains(), read_header(), read_tf_coefficients(), read_ttag(), read_zp_coefficients(), realtext_read_header(), rfc4175_parse_fmtp(), rtmp_http_open(), rtsp_read_command_reply(), run_transcription(), sami_paragraph_to_ass(), sap_read_header(), sap_write_header(), scale_parse_expr(), sch_sdp_filename(), segment_end(), set_ass_header(), set_enable_expr(), set_expr(), set_str(), set_string(), setup_curl(), show_help(), sls_flags_filename_process(), stream_open(), stream_specifier_parse(), tiff_decode_tag(), update_master_pl_info(), v4l2_get_device_list(), validate_name(), write_option(), write_packet(), xcbgrab_read_header(), and xv_write_header().
| #define av_free | ( | p | ) |
Definition at line 56 of file ops_static.c.
Definition at line 57 of file ops_static.c.
Definition at line 58 of file ops_static.c.
Referenced by asmgen_op_cps().
| #define FF_ARRAY_ELEMS | ( | a | ) |
Definition at line 59 of file ops_static.c.
Definition at line 60 of file ops_static.c.
| #define ENTRY | ( | fname, | |
| ... ) |
| #define IMPL_PRIV | ( | s | ) |
Definition at line 131 of file ops_static.c.
Referenced by asmgen_setup_clear(), asmgen_setup_dither(), asmgen_setup_linear(), asmgen_setup_max(), asmgen_setup_min(), asmgen_setup_read_bit(), and asmgen_setup_write_bit().
|
static |
Definition at line 62 of file ops_static.c.
|
static |
Definition at line 73 of file ops_static.c.
|
static |
Definition at line 86 of file ops_static.c.
|
static |
Set node where the continuation address will be loaded and impl will be incremented.
This should be done right after impl->priv has been used.
Definition at line 138 of file ops_static.c.
Referenced by asmgen_op_cps(), asmgen_setup_clear(), asmgen_setup_dither(), asmgen_setup_linear(), asmgen_setup_max(), asmgen_setup_min(), asmgen_setup_read_bit(), asmgen_setup_scale(), and asmgen_setup_write_bit().
|
static |
Definition at line 151 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 168 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 178 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
All-one values in movi only work up to 8-bit, and then at full 16- or 32-bit, but not for intermediate values like 10-bit. In those cases, we use mov + dup instead.
Definition at line 189 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
TODO
Definition at line 226 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 249 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 261 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 273 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Populate operands matrix from packed data into linear_vcoeff matrix and compute mask for rows that must be saved before being overwritten.
Save rows that need to be used as input after they have been already written to.
Definition at line 285 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 345 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 399 of file ops_static.c.
Referenced by asmgen_op_frame(), and asmgen_process_frame().
|
static |
Definition at line 414 of file ops_static.c.
Referenced by asmgen_process_cps().
|
static |
Definition at line 435 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 446 of file ops_static.c.
Referenced by asmgen_op_cps().
|
static |
Definition at line 483 of file ops_static.c.
Referenced by asmgen().
|
static |
Set up vector register dimensions and reshape all vectors accordingly.
Definition at line 507 of file ops_static.c.
Referenced by asmgen().
|
static |
Definition at line 623 of file ops_static.c.
Referenced by main().
| int main | ( | int | argc, |
| char * | argv[] ) |
Definition at line 666 of file ops_static.c.
|
static |
Definition at line 121 of file ops_static.c.
|
static |
Register assignment for CPS functions.
The entry point of the SwsOpFunc is the process function. The first kernel function is called from process, and subsequent kernel functions are chained by directly branching to the next operation, using a continuation-passing style design. The last operation must be a write operation, which returns from the call to the process function.
The GPRs used by the entire call-chain are listed below.
Function arguments are passed in r0-r5. After the parameters from exec have been read, r0 is reused to branch to the continuation functions. After the original parameters from impl have been computed, r1 is reused as the impl pointer for each operation.
Loop iterators are r6 for bx and r3 for y, reused from y_start, which doesn't need to be preserved.
The intra-procedure-call temporary registers (r16 and r17) are used as scratch registers. They may be used by call veneers and PLT code inserted by the linker, so we cannot expect them to persist across branches between functions.
The Platform Register (r18) is not used.
The read/write data pointers and padding values first use up the remaining free caller-saved registers, and only then are the callee-saved registers (r19-r29) used.
The Link Register (r30) is used when calling the first kernel, so it must be saved.
Definition at line 392 of file ops_static.c.
Referenced by asmgen_common_frame(), and asmgen_process_frame().